Mit Java in eine Excel Datei schreiben

bestron

Grünschnabel
Hallo, ich bin neu im Forum und hoffe ich habe den Thread ins richtige Unterforum getan.

Ich suche schon seit ein paar Tagen eine API um mit Java in Excel-Files zu schreiben. Ich will bloss in etwa 30 Felder reinschreiben, nichts auslesen und auch kein neues File erstellen.

Ich habe unter anderem hier im Forum die POI-HSSF Java-API (http://poi.apache.org/hssf/index.html) gefunden. Ich hab mir mal hier die ZIP-Datei runtergeladen und dann die 3 JAR-Files aus dem "lib" Ordner meinem Projekt hinzugefügt. Danach habe ich z.B. versucht auf die Klasse HSSFWorkbook zuzugreifen, die war aber laut Eclipse unbekannt und ich konnte sie auch nicht importieren.
Kann es nun sein, dass ich eine falsche Datei heruntergeladen oder die falschen libs hinzugefügt habe?

Jedenfalls habe ich es noch mit jexcel(http://jexcelapi.sourceforge.net/) probiert. Damit konnte ich auch neue Excel-Files erstellen und bereits existierende verändern. Meine Excel-Datei ist aber relativ gross und ich bekomme immer die Meldung "java.lang.OutOfMemoryError" da jexcel erst eine Kopie der Datei erstellen muss, um sie zu verändern.

Als letztes habe ich noch Jxcell (http://www.jxcell.net/) gefunden - jedoch keine Anleitung dazu.

Gut nun zurück zur eigentlichen Frage: Kann mir gerade noch jemand eine andere API nennen die nur in Excel-Files schreibt und am besten sehr klein ist. Ich brauche wirklich nur die Funktion zum Schreiben und keine sonstige.
Wenn nicht, könnte mir jemand mit der POI-HSSF helfen?:)

Bin noch relativ neu in der Javaprogrammierung, ich hoffe ich habe die richtigen Begriffe verwendet.


Gruss bestron
 
Zuletzt bearbeitet:
Exel stellt eine COM (Component Objekt Moddel) Schnittstelle zur Verfügung.

Da die aber eine native Bibliothek ist musst du über eine Bridge dran.
Am besten für dich dürfte com4j passen. Damit kannst du dir für die dll Wrapperklassen generieren und wie eine normale java Bibliothek verwenden.

MfG

Andibert
 
Danke euch beiden. Ich habe mich für die Variante von joschi entschieden, bei der anderen habe ich nicht wirklich durchgeblickt.
Das Schreiben in eine bereits existierende Datei funktioniert ganz gut, nur die Excel-Datei in die ich schreiben will, ist 15000kb gross und ich erhalte immer den Fehler "java-lang.OutOfMemoryError" was auch verständlich ist bei einer solchen Grösse.
Als Lösung habe ich gedacht, ich schreibe die Daten in eine andere Datei und hole sie dann mittels Makro, das beim öffnen der Arbeitsmappe ausgeführt wird, aus der Datei, sofern das möglich ist.
Oder gibt es da noch eine andere Möglichkeit?
 
Unterdessen habe ich alles mit diese HSSF-POI Api gemacht und es funktioniert auch ganz gut, nur halt das Schreiben in die 15MB grosse Excel-Datei klappt verständlicherweise nicht.

Gibt es sowas wie Thomas für JExcel gepostet hat auch bei HSSF-POI?
Ich habe die Quick Guide und das HOWTO (http://poi.apache.org/hssf/index.html angeschaut, jedoch nichts dazu gefunden, bloss das die Performance bezüglich RAM-Verbraucht bald verbessert werden soll.

Trotzdem schonmal danke für die Hilfe.
 

Neue Beiträge

Zurück