Apache POI 3.8ライブラリを使用してWebアプリケーションのXLSXファイルを読み取りました。次のコードは、Javaコンソールアプリケーションから完全に正常に動作します。Apache POIでExcel .XLSXを読み取る際にエラーが発生しました
InputStream inputFS = new FileInputStream("test.xlsx");
Workbook workbook = new XSSFWorkbook(inputFS); // below exception is thrown on this line
Sheet sheet = workbook.getSheetAt(0);
ウェブアプリケーションで使用すると「読み取りエラー」が発生します。スタックトレースの関連抽出物は、以下の貼り付けられます:
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]
次のJARが(同じ順序で)クラスパスに含まれています:
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
メモリ関連の問題があるように思えません。上記のコードを呼び出す直前にいくつかのヒープ利用統計を収集しています。 XLSXファイルのサイズは1.15 MBです。
##### Heap utilization statistics [MB] #####
Used Memory:13 MB
Free Memory:9 MB
Total Memory:23 MB
Max Memory:247 MB
は、Webアプリケーションのビュー/あなたからの読み取り、ファイルを変更することができますか? –
Webアプリケーションは、ファイルにアクセスしている場合、そのファイルにアクセスしています。読み取りのみ(変更なし)。関連するノートでは、Webアプリケーションは問題なくXLS(古いバイナリ形式)ファイルを処理します。 XLSXファイルでのみ問題が発生します。 –
は、サポートされていない新しい機能のどれですか? http://poi.apache.org/spreadsheet/index.html –