Ich muss eine Methode erstellen, die xls und xlsx-Dateien lesen kann. Nach meinen Recherchen wird HSSF zum Lesen von xls und XSSF zum Lesen von xlsx verwendet. Gibt es einen Teil des Apache POIs, mit dem ich beide Dateien lesen kann? Ich stieß auch auf das s.usermodel, fand aber keine ausreichenden Codes, die sowohl xls als auch xlsx unterhalten würden.Gibt es eine Möglichkeit, sowohl .xls- als auch .xlsx-Dateien mit Apache POI zu lesen?
Antwort
Ich hatte nicht viel exp mit Apache POI, aber soweit ich weiß, wenn Sie auf eine beziehen Arbeitsmappe nach Klasse "Arbeitsmappe" dann können Sie beide xls & xlsx lesen und schreiben.
Alles, was Sie tun müssen, ist, wenn das Objekt Erstellen von WTT
für .xls-
Workbook wb = new HSSFWorkbook();
für .xlsx-
Workbook wb = new XSSFWorkbook();
Sie einen Parameter für Dateityp passieren kann und erstellen das WorkBook-Objekt verwendet entsprechend die If-Anweisung.
Hallo! Ich habe auch die genannten Codes im Hinterkopf und ich plante, diese zu verwenden, wenn ich keine andere Möglichkeit finde, die Dateierweiterung zu erkennen. –
Ich empfehle Ihnen, dieses grundlegende Dienstprogramm zu überprüfen, um alle Excel-Dateien zu lesen: https://github.com/eaorak/excelr – noego
eine Option wäre, den Dateinamen mit lastIndexOf zu überprüfen. und sehen Sie, ob es .xls oder xlsx ist und verwenden Sie dann eine if-Bedingung, um entsprechend zu wechseln. war eine lange Zeit, seit ich an poi arbeitete, aber ich denke, es sind die Attribute wie HSSF für .xls und XSSF für .xlsx verweisen http://poi.apache.org/ Website, letzte Zeile unter dem Thema Warum sollte ich Apache POI verwenden?
danke für die Antwort! Ich werde versuchen, Ihre Antwort zu erwägen –
Es scheint, Sie suchen nach einer Möglichkeit, den Lesevorgang zu abstrahieren, Sie sagen, es spielt keine Rolle, ob seine XLS oder XLSX, möchten Sie Ihren Code ohne Änderung arbeiten.
Ich würde Ihnen empfehlen, sich anzuschauen, es ist eine wunderbare Bibliothek, die das Lesen von Dateien und das Parsen von Inhalten abstrahiert, POI und viele andere Bibliotheken verwendet und eine schöne Abstraktion zu allen hat.
Lesen eines PDF/XLS/XLSX ist ähnlich wie das Lesen einer Textdatei, die ganze Arbeit wird hinter der Szene getan.
lesen Sie das für mehr. http://www.searchworkings.org/blog/-/blogs/introduction-to-apache-tika
Vielen Dank für das Vorschlagen von Apache Tika, es ist das erste Mal, dass ich darüber gelesen habe. Ich werde das untersuchen und es mit Apache POI vergleichen –
Tika verwendet POI und viele andere Bibliotheken, es ist eine Abstraktion für alle, kein Ersatz. –
Ja, es gibt einen neuen Satz von Schnittstellen, die von POI bereitgestellt werden und mit beiden Typen arbeiten.
Verwenden Sie die WorkbookFactory.create() -Methode eine Arbeitsmappe zu erhalten: http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/WorkbookFactory.html
Sie für Excel-Dateien überprüfen können, ohne sich auf Dateierweiterungen (die sind unzuverlässig - viele csv-Dateien xls Erweiterungen zum Beispiel, aber kann nicht analysiert werden nach POI) unter Verwendung der folgenden:
Hallo! Danke für diesen Code, den du gepostet hast. Ich finde es besser als die langen Codes, die ich ausprobiert habe. –
.doc wird diese Prüfung bestehen – gstackoverflow
Dank Toms Antwort nur hinzufügen, verwenden Sie Foll. Code erhalten Input sonst können wir Exception in thread "main" java.io.IOException: mark/reset not supported
InputStream inputStream = new FileInputStream(new File("C:\\myFile.xls"));
if(! inputStream.markSupported()) {
inputStream = new PushbackInputStream(fileStream, 8);
}
nice one. guter Fang! – tom
Gesicht können Sie von Apache zur Verfügung stellt Gläser poi-OOXML und Poi-OOXML-Schema gelesen werden.
und Code unten verwenden: -
Workbook wb = null;
excelFileToRead = new FileInputStream(fileName);
wb = WorkbookFactory.create(excelFileToRead);
Sheet sheet = wb.getSheet(sheetName);
der obige Code wird sowohl xls lesen und XLSX-Dateien
Sie
Workbook wb = WorkBookFactory().create(inputStream);
Die Verwendung einer 'Datei' ist im Allgemeinen besser, siehe http://poi.apache.org/spreadsheet/quick-guide.html#FileInputStream – Gagravarr
- 1. Konvertieren von CSV zu xls/xlsx mit Apache poi?
- 2. Gibt es eine Möglichkeit, sowohl die Sitzung als auch das Streaming in netTcpBinding zu aktivieren?
- 3. Gibt es eine Möglichkeit, sowohl Zeichenfolge als auch Array in einzelne HashMap zu setzen?
- 4. Öffnen Sie EXISTING xls in Apache POI
- 5. Ist Apache POI XDGF auch nur
- 6. Gibt es eine Möglichkeit, "träge" zu lesen?
- 7. Java: Gibt es eine Möglichkeit, eine PDF-Datei in Eclipse mit nur Apache poi
- 8. Macht es Sinn, sowohl zu verkleinern als auch zu egglifizieren?
- 9. Gibt es eine Möglichkeit, Apache mit New Relic zu überwachen?
- 10. xlsx lesen durch apache poi
- 11. lesen Excel-Datei mit Apache POI
- 12. Gibt es eine Möglichkeit, Datei-Metadaten mit node.js zu lesen?
- 13. Update xls-Datei mit Apache POI, während es in Excel geöffnet wird
- 14. Apache POI liest Textspalte als numerisch
- 15. Programm hält an, Excel-Arbeitsmappe (Apache POI) zu lesen
- 16. Gibt es eine Möglichkeit, sowohl den Objective-C-Modus als auch den C++ - Modus gleichzeitig in Emacs zu aktivieren?
- 17. Gibt es eine Möglichkeit, alle Stile aus einer Doc-Datei mit Apache Tika zu erhalten?
- 18. Apache POI, mit XSSF und HSSF
- 19. Gibt es eine Möglichkeit, HD-Daten nach EOF zu lesen?
- 20. Gibt es eine Möglichkeit, ein Apache ANT-Ziel zu verallgemeinern?
- 21. Apache POI Bild einfügen
- 22. Ist es sinnvoll, eine Basisklassenfunktion sowohl als virtuell als auch als final zu kennzeichnen?
- 23. Apache POI Streaming (SXSSF) zum Lesen
- 24. Gibt es eine Möglichkeit, Apache langsame Anforderungen protokollieren zu lassen?
- 25. Null Zeiger Ausnahme Apache Poi
- 26. Java Apache POI Excel als PDF speichern
- 27. Apache POI Währungsdatenformat
- 28. gibt es eine Möglichkeit, Wordpress-Datenbank remote zu lesen?
- 29. Apache-POI
- 30. Pattern mit Apache poi
WorkbookFactory.create verwenden können() muss die akzeptiert werden Antworten. http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/WorkbookFactory.html –