Apache-POI(v3.15)を使用して既存のxlsxファイル(Ms-excel 2010)を追加してデータを追加しようとしています。既存のxlsxファイルをピボットテーブルで開くときにApache-POIによってスローされた "Zip bomb detected"例外
既存のXLSXファイル(サイズ700KB)がpivot tables、チャート等
File file = new File(FILE_PATH);
OPCPackage opcPackage = OPCPackage.open(file);
XSSFWorkbook wbk = new XSSFWorkbook(opcPackage);
とタブの数を含むがスローされた例外は以下の通りである、に起因
:java.io. IOException:ジップ爆弾が検出されました!ファイルは です。圧縮ファイルサイズと拡張データサイズとの比。これは、ファイルが のメモリ使用量を膨らませるために使用されていることを示している可能性があり、セキュリティ上のリスクを引き起こす可能性があります。この制限を超えるファイルを で使用する必要がある場合は、ZipSecureFile.setMinInflateRatio()を使用して、この の制限を調整できます。カウンター:819241、cis.counter:8192、 比:0.009999499536766349Limits:MIN_INFLATE_RATIO:0.01 org.apache.poi.openxml4j.util.ZipSecureFile $ ThresholdInputStream.advance(ZipSecureFile.java:257)
Iで
1.「ZipSecureFile.setMinInflateRatio()」を変更してtihを修正しようとしましたが、JVMがヒープスペースエラーでクラッシュしました(4GBを超えて割り当てても)
2. Inputsteam、Workbookfactoryを使用しようとしました。ワークブックを作成するために作成し、SXSSFとして開こうとしました。
しかし、これのどれも私のために働いていません。いずれかのアイデアがありますか?
私は悲しいことにそれをテストすることはできませんが、実際には75kbがファイルの処理にスムーズに働くので、ファイルサイズの問題と思われます – XtremeBaumer
700KBは私が見ることができるほど大きくないようですMBのサイズであってもファイルを管理できるはずです。そのことを言って、私は既存のピボットテーブル(サイズ約50Kb)のタブを1つだけ試してみたが、それでも同じ問題がある。だから、それはサイズよりもピボットテーブルとリファレンスに関するものです。 – sachinsd
ピボットテーブルはどのように「大きく」なっていますか?彼らは拡大されていますか? – XtremeBaumer