Ich möchte eine Excel-Datei aus Java mit 3 Spalten und N Zeilen lesen und schreiben und in jeder Zelle eine Zeichenfolge drucken. Kann mir jemand dafür ein einfaches Code-Snippet geben? Muss ich eine externe Bibliothek verwenden oder hat Java eine integrierte Unterstützung dafür?
Ich möchte Folgendes tun:
for(i=0; i <rows; i++)
//read [i,col1] ,[i,col2], [i,col3]
for(i=0; i<rows; i++)
//write [i,col1], [i,col2], [i,col3]
ExcelCell.getValue()
jede auf. Zum Beispiel finden Sie in diesem Lese Beispiel auch für das Schreiben Sie überprüfen können , um dieses Beispiel.Antworten:
Probieren Sie den Apache POI HSSF aus . Hier ist ein Beispiel zum Lesen einer Excel-Datei:
Auf der Dokumentationsseite finden Sie auch Beispiele zum Schreiben in Excel-Dateien.
quelle
HSSFSheet
diegetPhysicalNumberOfRows()
Methode die Anzahl der nicht leeren Zeilen zurückzugeben schien (es war mir nicht klar, was "physisch" bedeutet). Wenn Ihre Excel-Datei viele leere Zeilen enthält (z. B. aus Formatierungsgründen), haben Sie möglicherweise mehr Glück bei der Verwendungrows = sheet.getLastRowNum();
. Dies sollte auch bedeuten, dass Sie den Trick (siehe Kommentar) aus der ersten Schleife entfernen können:for(int i = 0; i <= rows; i++) {
(beachten Sie den Wechsel von<
zu<=
).Apache POI kann dies für Sie tun. Speziell das HSSF- Modul. Die Kurzanleitung ist am nützlichsten. So machen Sie, was Sie wollen - erstellen Sie speziell ein Blatt und schreiben Sie es aus.
quelle
Fügen Sie zuerst alle diese JAR-Dateien in Ihren Projektklassenpfad ein:
Code zum Schreiben in eine Excel-Datei:
Code zum Lesen aus der Excel-Datei
quelle
Sie können auch JExcelApi in Betracht ziehen . Ich finde es besser gestaltet als POI. Es gibt ein Tutorial hier .
quelle
Es gibt ein neues einfaches und sehr cooles Tool (10x zu Kfir): Xcelite
Schreiben:
Lesen:
quelle
Zum Lesen einer XLSX-Datei können wir Apache POI- Bibliotheken verwenden. Versuchen Sie Folgendes :
quelle
.csv oder POI werden es sicherlich tun, aber Sie sollten Andy Khans JExcel kennen . Ich denke, es ist bei weitem die beste Java-Bibliothek für die Arbeit mit Excel, die es gibt.
quelle
und stellen Sie sicher, dass Sie die Gläser poi und poi-ooxml (org.apache.poi) zu Ihrem Projekt hinzugefügt haben
quelle
Eine einfache CSV-Datei sollte ausreichen
quelle
Zum Lesen von Daten aus XLSX-Arbeitsmappen müssen XSSFworkbook-Klassen verwendet werden.
XSSFWorkbook xlsxBook = new XSSFWorkbook(fis);
XSSFSheet sheet = xlsxBook.getSheetAt(0);
etc.Wir müssen Apache-poi 3.9 @ http://poi.apache.org/ verwenden.
Detaillierte Informationen mit Beispiel finden Sie unter: http://java-recent.blogspot.in
quelle
Sicher, Sie finden den folgenden Code nützlich und einfach zu lesen und zu schreiben. Dies ist eine
util
Klasse, die Sie in Ihrer Hauptmethode verwenden können, und dann können Sie alle folgenden Methoden verwenden.quelle
mit Frühling Apache Poi Repo
quelle
Ich habe die am meisten gewählte ein wenig bearbeitet, weil sie leere Spalten oder Zeilen nicht vollständig gezählt hat. Hier ist mein Code, den ich getestet habe und der jetzt jede Zelle in einem beliebigen Teil einer Excel-Datei abrufen kann. Auch jetzt können Sie leere Spalten zwischen gefüllten Spalten haben und es werden sie gelesen
quelle
Wenn die Spaltennummer variiert, können Sie dies verwenden
Die entsprechende Mavendependenz finden Sie hier
quelle
Sie benötigen eine Apache POI-Bibliothek und dieser Code unten sollte Ihnen helfen
quelle
Eine andere Möglichkeit zum Lesen / Schreiben von Excel-Dateien ist die Verwendung von Windmill . Es bietet eine fließende API zur Verarbeitung von Excel- und CSV-Dateien.
Daten importieren
Daten exportieren
quelle
Sie können dieselbe Datei nicht parallel lesen und schreiben ( Lese- / Schreibsperre ). Wir können jedoch parallele Operationen an temporären Daten ausführen (dh Eingabe- / Ausgabestream). Schreiben Sie die Daten erst nach dem Schließen des Eingabestreams in die Datei. Die folgenden Schritte sollten befolgt werden.
Apache POI - Lesen / Schreiben des gleichen Excel-Beispiels
quelle
Bitte verwenden Sie Apache POI libs und versuchen Sie dies.
quelle
Bei Verwendung des Apache Poi 4.1.2. Der Zelltyp ändert sich etwas. Unten ist ein Beispiel
quelle
Wenn Sie mehr mit Office-Dokumenten in Java tun müssen, wählen Sie wie erwähnt POI.
Zum einfachen Lesen / Schreiben eines Excel-Dokuments, wie Sie es angefordert haben, können Sie das CSV-Format verwenden (auch wie erwähnt):
quelle
Dadurch wird eine JTable in eine durch Tabulatoren getrennte Datei geschrieben, die problemlos in Excel importiert werden kann. Das funktioniert.
Wenn Sie ein Excel-Arbeitsblatt als XML-Dokument speichern, können Sie auch die XML-Datei für EXCEL mit Code erstellen. Ich habe dies mit Word gemacht, damit Sie keine Pakete von Drittanbietern verwenden müssen.
Dies könnte dazu führen, dass die JTable herausgenommen wird und dann einfach eine in eine beliebige Textdatei getrennte Registerkarte geschrieben und dann in Excel importiert wird. Ich hoffe das hilft.
Code:
quelle