Forum: PC Hard- und Software Wie kann man automatisiert Excel-Tabelle bearbeiten ?


von Jürgen W. (lovos)


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 ...

von Informatiker (Gast)


Lesenswert?

In Java gibts die POI API von Apache
http://poi.apache.org/

Damit kannst du alle möglichen Office Dokumente in Java bearbeiten

Gruß Informatiker

von Christian R. (mrrotzi)


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.

von Frank K. (fchk)


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

von asdf (Gast)


Lesenswert?

einfach mal mitten drin anfangen! ohne vorerklärung! kein wunder dass du 
hier fragen musst...

www.google.de

http://msdn.microsoft.com/de-de/library/ms173186%28v=vs.80%29.aspx

von Jürgen W. (lovos)


Lesenswert?

>einfach mal mitten drin anfangen! ohne vorerklärung! kein wunder dass du
>hier fragen musst...
>
>www.google.de

Und wie geht das mit Linux bitteschoen?
Ich habe von VBA, VB, ... KEINE Ahnung.

Excel oeffne und speichere ich mit Open Office.

von Sven P. (Gast)


Lesenswert?

Als ODF-Tabelle speichern, auspacken und mit dem XML-Werkzeugsatz deiner 
Wahl weiterbearbeiten?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Wie schon gesagt:
POI API von Apache:
 http://poi.apache.org/

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

von Art Ickel aus W. (Gast)


Lesenswert?

oder NOA für Java und OpenOffice / LibreOffice
http://ubion.ion.ag/loesungen/004niceofficeaccess/releases/2.2.3

von Jürgen W. (lovos)


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();

von Läubi .. (laeubi) Benutzerseite


Angehängte Dateien:

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...

von Jürgen W. (lovos)


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.

von Läubi .. (laeubi) Benutzerseite


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 
;)

von Sam .. (sam1994)


Lesenswert?

Jürgen G. schrieb:
> So einfach erzeugt man eine Excel-Datei:

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

von Jürgen W. (lovos)


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.

von Sam .. (sam1994)


Lesenswert?

Jürgen G. schrieb:
> oder ist dann VBA besser?
> http://msdn.microsoft.com/de-de/library/ms173186%2...
Hab ich nie behauptet.
> 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.
Für c# gibt es auch bessere Lösungen, als die eine von MS.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.