Wie kann man automatisiert Excel-Tabelle bearbeiten ?

OP #2184195
Lesenswert?

Normalerweise wuerde ich die als *.csv speichern und als Text-Array 
mittels C oder Java Programm bearbeiten.
Heute habe ich eine Excel-Datei zum bearbeiten vorliegen, wo ein paar 
Reihen farblich dargestellt sind und ein paar Spalten rechts- und mittig 
formatiert sind.
Koennte man einer Zwischen-Konvertierung zu *.csv wieder hinkriegen.

Aber gibt es einfachere Moeglichkeiten zum automatisierten Bearbeiten?

Z.b. sollen in den Reihen 500-1000 Texte eingetragen werden, die ich 
bereits aus dem automatisierten Befragen von whois als Datei vorliegen 
habe.
500x Copy und Paste ist nicht so erprickelnd ...
#2184206
Lesenswert?

Ich verwende eine html table :)
Und dazu Excel spezifische tags für die Formatierung!

Speichere mal das Excel sheet als html ab, schau dir den
Erzeugten html Code an und verändere die Inhalte nach
Deinen Wünschen.
Geht super einfach.

Oder du verwendest Open xml. Dazu gibt's ein paar APIs und
Du kannst damit xslx erzeugen.
#2184237
Lesenswert?

Normal gibts VBA (Visual Basic for Applications) dafür. Das ist bei Dir 
mit Sicherheit auch alles schon installiert. Ggf musst Du im 
Office-Setup die Hilfe-Dateien nachinstallieren.

Dann kannst Du direkt auf die Zellen und die Formatierungen zugreifen.
Es gibt sogar ActiveX Controls, mit denen Du HTTP, FTP und MAIL aus VBA 
heraus machen kannst.

fchk
OP #2185351
Lesenswert?

Ich optiere nun doch fuer C#, weil ich das Konvertieren und 
Zurueck-Konvertieren von MS-Files in schlechter Erinnerung habe.
C# ist natuerlich nicht Sprache meiner Wahl, aber in diesem Fall kann 
man mein Problem ganz einfach loesen.
So einfach erzeugt man eine Excel-Datei:
1
Excel.Application xlApp;
2
Excel.Workbook xlWorkbook = null;
3
Excel.Worksheet xlWorksheet = null;
4
object misValue = System.Reflection.Missing.Value;
5

6
xlApp = new Excel.ApplicationClass();
7
xlWorkbook = xlApp.Workbooks.Add(misValue);
8
xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.get_Item(1);
9
xlWorksheet.Cells[1, 1] = "csharp.net-informations.com";
10

11
xlWorkbook.SaveAs("C:\\tmp\\1.xls",
12
  Excel.XlFileFormat.xlWorkbookNormal,
13
  misValue, misValue, misValue, misValue,
14
  Excel.XlSaveAsAccessMode.xlExclusive,
15
  misValue, misValue, misValue, misValue, misValue);
16

17
xlWorkbook.Close(false, misValue, misValue);
18
xlApp.Quit();
Persönliche Seite #2185573
Lesenswert?

Jürgen G. schrieb:
> weil ich das Konvertieren und Zurueck-Konvertieren
> von MS-Files in schlechter Erinnerung habe
Bei diesen APIs wird normal auch nicht hin und her konvertiert sondern 
direkt auf der Exceldatei gearbeitet.

Jürgen G. schrieb:
> So einfach erzeugt man eine Excel-Datei
... und so einfach mit JExcel
1
WritableWorkbook workbook = Workbook.createWorkbook(new File("test.xls"));
2
WritableSheet sheet = workbook.createSheet("Test", 0);
3
sheet.addCell(new Label(0, 0, "TestCell"));
4
workbook.write();
5
workbook.close();
Je nachdem wie ausgefeilt deine Änderungswünsche sind kann es in C# 
natürlich besser gehen da näher an MS drann...
Angehängte Dateien:
OP #2185610
Lesenswert?

>Bei diesen APIs wird normal auch nicht hin und her konvertiert sondern
>direkt auf der Exceldatei gearbeitet.

Du meinst wahrscheinlich dieses: (?)

>Oder Java Excel API:
> http://jexcelapi.sourceforge.net/

Da wird tatsaechlich direkt in die Excel-Datei geschrieben.
Aber bei diesem Tool habe ich wenig Vertrauen, da das letzte Update 2009 
war.
Oft gibt es in sourceforge Projekte, die mal gut angefangen haben, aber 
dann halbfertig liegengelassen wurden und vor sich hin tuempeln.



> kann es in C# natürlich besser gehen da näher an MS drann

So sehe ich das auch:
MS Windoofs ist nicht mein Wunsch-OS, C# schon gar nicht meine Favorite 
Language. Aber manchmal MUSS man mit MS-Formaten arbeiten, wenn man 
seine Broetchen verdienen will.
Persönliche Seite #2185617
Lesenswert?

Jürgen G. schrieb:
> Aber bei diesem Tool habe ich wenig Vertrauen,
> da das letzte Update 2009 war
Nun gut man muss ja nicht auf Krampf Updates raus bringen, ich nutz' das 
schon länger und bisher funktionierts ganz gut.

Jürgen G. schrieb:
> Da wird tatsaechlich direkt in die Excel-Datei geschrieben
Bei dem Apache POI müßte das auch so sein, ich hab das allerdings noch 
nicht verwendet da es für meine Anfordwerung (einfaches lesen/schreiben) 
schon zu mächtig ist, dafür ist das Projekt "up-to-date" und kann auch 
sehr viel mehr als nur XLS lesen.

Jürgen G. schrieb:
> Aber manchmal MUSS man
Man sollte das nicht so sehr als Zwang sehen dann geht vieles einfacher 
;)
OP #2187072
Lesenswert?

>Nimm das auf keinem Fall! Das funktioniert nur dann wenn jeder Nutzer
>genau dieselbe Excel-Version auf dem jeweiligen PC installiert hat.

oder ist dann VBA besser?
http://msdn.microsoft.com/de-de/library/ms173186%28v=vs.80%29.aspx


Mittlerweile sehe ich Vorteile von der java-Lösung,
http://jexcelapi.sourceforge.net/
da man KEIN Excel braucht, das ganze auch unter Linux möglich ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren