tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1699
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    bestron bestron ist offline Rookie
    Registriert seit
    Oct 2008
    Beiträge
    5
    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
    Geändert von bestron (06.10.08 um 21:34 Uhr)
     

  2. #2
    Andibert Andibert ist offline Mitglied Silber
    Registriert seit
    Sep 2006
    Ort
    Hildesheim
    Beiträge
    90
    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
     
    There are 10 kind of people, those who understand binary and those who don't.

  3. #3
    Avatar von joschi70
    joschi70 joschi70 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    143
    Hi,

    mit POI kenn ich mich nicht wirklich aus, aber ich versuch mal zu helfen

    Für POI sollte eigentlich die Datei poi-3.1-FINAL-20080629.jar in Deinem Classpath ausreichend sein.
    Die Datei befindet sich im POI ZIP File. Das File kannst Du hier herunterladen:
    http://mirror.valtech.de/apache/poi/...L-20080629.zip.

    Beispiele gibt's hier: http://poi.apache.org/hssf/quick-guide.html.

    Gruß
    joschi
     

  4. #4
    bestron bestron ist offline Rookie
    Registriert seit
    Oct 2008
    Beiträge
    5
    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?
     

  5. #5
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    zum JExcel OutOfMemoryError schau mal hier:
    http://www.tutorials.de/forum/java/3...00-zeilen.html

    WorkbookSettings setting = new WorkbookSettings();
    setting.setArrayGrowSize( 5 * (int)Math.pow( 1024, 2) );

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  6. #6
    bestron bestron ist offline Rookie
    Registriert seit
    Oct 2008
    Beiträge
    5
    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.
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 12.02.08, 18:21
  2. eine excel datei mit java auslesen
    Von rene2407 im Forum Java
    Antworten: 14
    Letzter Beitrag: 06.04.06, 13:23
  3. Antworten: 4
    Letzter Beitrag: 03.03.05, 11:47
  4. Text aus einer .dcm Datei per Makro in eine Excel-Tabelle schreiben
    Von ChrisStangl im Forum Office-Anwendungen
    Antworten: 0
    Letzter Beitrag: 30.08.04, 15:26
  5. Schreiben in Excel Datei mit C#
    Von Vasarius im Forum .NET Archiv
    Antworten: 6
    Letzter Beitrag: 21.07.04, 15:53