Fehler beim Lesen von Excel .XLSX mit Apache POI

Bin ich mit Apache POI 3.8 Bibliotheken zum Lesen von XLSX-Datei in eine web-Anwendung. Der folgende code funktioniert einwandfrei, aus einem Java-console app:

InputStream inputFS = new FileInputStream("test.xlsx");
Workbook workbook = new XSSFWorkbook(inputFS); //below exception is thrown on this line
Sheet sheet = workbook.getSheetAt(0);

wirft aber ein "read error", wenn in der web-Anwendung. Einen entsprechenden Auszug aus dem stack trace ist eingefügt unter:

java.io.IOException: Read error
at java.io.FileInputStream.readBytes(Native Method) ~[na:1.6.0_31]
at java.io.FileInputStream.read(Unknown Source) ~[na:1.6.0_31]
at java.io.FilterInputStream.read(Unknown Source) ~[na:1.6.0_31]
at java.io.PushbackInputStream.read(Unknown Source) ~[na:1.6.0_31]
at java.util.zip.ZipInputStream.readFully(Unknown Source) ~[na:1.6.0_31]
at java.util.zip.ZipInputStream.readLOC(Unknown Source) ~[na:1.6.0_31]
at java.util.zip.ZipInputStream.getNextEntry(Unknown Source) ~[na:1.6.0_31]
at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.<init>(ZipInputStreamZipEntrySource.java:51) ~[poi-ooxml-3.8-20120326.jar:3.8]
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:83) ~[poi-ooxml-3.8-20120326.jar:3.8]
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:228) ~[poi-ooxml-3.8-20120326.jar:3.8]
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39) ~[poi-ooxml-3.8-20120326.jar:3.8]
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:187) ~[poi-ooxml-3.8-20120326.jar:3.8]
at com.corp.ReportManager.parseExcelReport(ReportManager.java:575) [ReportManager.class:na]

Die folgenden jar-Dateien enthalten sind, die in der classpath (in der gleichen Reihenfolge):

poi-3.8-20120326.jar
poi-ooxml-3.8-20120326.jar
poi-ooxml-schemas-3.8-20120326.jar
xbean.jar
dom4j-1.6.1.jar

Scheint es nicht zu sein, eine Speicher-bezogene Probleme, da sammelte ich einige heap-Auslastung stats nur vor dem Aufruf der obige code. Die XLSX-Datei 1,15 MB in der Größe.

##### Heap utilization statistics [MB] #####
Used Memory:13 MB
Free Memory:9 MB
Total Memory:23 MB
Max Memory:247 MB
  • können Sie Ihre web-app ansehen/modifizieren der Datei, die Ihre Lektüre aus?
  • Die web-app Zugriff auf die Datei, wenn es das ist, was Sie Fragen. Sie liest nur (no modify). Auf einem verwandten beachten, die web-app verarbeitet XLS (die älteren binären format) - Dateien ohne Problem. Es ist nur mit XLSX-Dateien, die es läuft in ein problem.
  • sind die neuen features verwendet werden, die es nicht unterstützen? poi.apache.org/spreadsheet/index.html
InformationsquelleAutor Web User | 2012-06-21
Schreibe einen Kommentar