Konvertieren von .csv in .xls in Java

8

Kennt jemand hier irgendeinen schnellen, sauberen Weg, um csv-Dateien in xls oder xlsx-Dateien in Java zu konvertieren?

Ich habe etwas, um CSV-Dateien bereits an Ort und Stelle zu verwalten, und ich brauche die zusätzliche Kompatibilität für andere Programme.

Beispielcode zusätzlich zu Paketnamen ist immer gut geschätzt.

Vielen Dank,

Justian

Hier ist mein Code soweit. Ich muss die Returns ("\ n") aus den Zeilen entfernen. Einige meiner Zellen enthalten mehrere Informationszeilen (eine Liste), so dass ich "\ n" in CSV verwenden kann, um mehrere Zeilen innerhalb einer Zelle anzugeben, aber xls behandelt diese so, als ob ich sie einfügen möchte auf einer neuen Zeile .

Der Code ist aus dem Internet modifiziert und im Moment etwas unordentlich. Möglicherweise bemerken Sie einige veraltete Methoden, wie es 2004 geschrieben wurde, und achten Sie darauf, die schrecklichen Return-Anweisungen zu ignorieren. Ich benutze S.o.p im Moment nur zum Testen und werde das später aufräumen.

%Vor%     
Justian Meyer 06.07.2010, 18:55
quelle

6 Antworten

6

Weiß nicht, ob Sie das schon wissen, aber:

  • Excel (wenn das Ihr eigentliches Ziel ist) kann .csv Dateien einfach direkt lesen, also wäre jede Konvertierung nur eine Höflichkeit für Ihre weniger "begabten" Benutzer.
  • CSV ist ein Format mit dem kleinsten gemeinsamen Nenner. Es ist unwahrscheinlich, dass ein Konverter Informationen zu dem in einer .csv -Datei gefundenen hinzufügen kann, was ihn nützlicher macht. Mit anderen Worten, CSV ist ein "dummes" Format und das Konvertieren in .xls wird (wahrscheinlich) die Dateigröße erhöhen, aber das Format nicht schlauer machen.

Curtis 'Vorschlag von POI ist das erste, was mir in den Sinn kommt.

Wenn Sie diese Konvertierung auf einem Windows-Computer durchführen, könnte eine andere Alternative Jacob sein, eine Java-COM-Brücke, die dies zulässt Sie können Excel effektiv von einem Java-Programm fernsteuern, um Dinge wie das Öffnen einer Datei und das Speichern in einem anderen Format zu erledigen, vielleicht sogar einige Formatierungsänderungen oder ähnliches.

Schließlich hatte ich auch Erfolg mit SQL INSERT s (über JDBC) in ein Excel-Arbeitsblatt, auf das über die JDBC-ODBC-Brücke zugegriffen wurde. d. h. ODBC kann eine Excel-Datei wie eine Datenbank aussehen lassen. Es ist jedoch nicht sehr flexibel, Sie können die DB nicht bitten, willkürlich benannte .XLS -Dateien zu erstellen.

BEARBEITEN:

Es sieht so aus, als würde readLine() dir nicht ganze Zeilen geben. Wie ist es zu wissen, dass Wagenrücklauf kein Leitungsabschluss ist? Sie sollten dies mit Debug-Druckanweisungen direkt nach readLine () überprüfen können.

Wenn das wirklich so ist, würde es scheiße sein, denn der Weg nach vorne wäre für Sie

  • erkennen entweder unvollständige Zeilen und fügen sie nachher zusammen,
  • oder schreibe deinen eigenen Ersatz für readLine (). Ein einfacher Ansatz wäre, Zeichen für Zeichen zu lesen, CRs in einer CSV-Zeichenfolge zu ersetzen und Text in einem StringBuilder zu sammeln, bis Sie das Gefühl haben, eine vollständige Zeile zu haben.

Beide Alternativen sind Arbeiten, auf die Sie sich wahrscheinlich nicht gefreut haben.

    
Carl Smotricz 06.07.2010, 19:14
quelle
5

Wenn Sie XLS- oder XLSX-Dateien in Java lesen oder schreiben möchten, ist Apache POI eine gute Wahl: Ссылка

    
Curtis 06.07.2010 18:57
quelle
3

Kopieren Sie das folgende Programm, ich lief das Programm und es funktioniert gut, lassen Sie mich wissen, wenn Sie irgendwelche Bedenken zu diesem Programm haben. (Sie benötigen Apache POI Jar, um dieses Programm auszuführen)

%Vor%     
user3065934 22.07.2014 13:57
quelle
0

Sie haben geschrieben:

  

Ich habe etwas, um CSV-Dateien zu verwalten   schon an Ort und Stelle und ich brauche das Extra   Kompatibilität für andere Programme.

Was sind diese anderen Programme? Müssen Sie auf Ihre Daten über Excel-Dateien zugreifen oder können sie mit einer JDBC- oder ODBC-Verbindung zu einer Datenbank arbeiten? Wenn Sie eine Datenbank als zentralen Speicherort verwenden, können Sie die Daten nach Bedarf in CSV-Dateien oder andere Formate extrahieren.

    
Alan Krueger 06.07.2010 19:26
quelle
0

Die Tools in Excel sind nicht ausreichend für das, was das OP tun möchte. Er ist dort auf dem richtigen Weg. Excel kann nicht mehrere CSV-Dateien in verschiedene Arbeitsblätter in derselben Datei importieren, weshalb Sie dies im Code tun möchten. Mein Vorschlag ist, OpenCSV zu verwenden, um die CSV zu lesen, da es automatisch Zeilenumbrüche in Daten und fehlenden Spalten korrigieren kann, und es ist frei und Open Source. Es ist tatsächlich sehr, sehr robust und kann alle Arten von verschiedenen Nicht-Standard-CSV-Dateien verarbeiten.

    
ChopperCharles 11.06.2013 19:54
quelle
0

Ich habe eine kleine Software namens csv2xls erstellt. Es benötigt Java.

    
sixro 11.07.2014 07:27
quelle

Tags und Links