2016-09-21 39 views
0

POIを使用してExcelファイルを作成しようとしています。私は約70000のレコードを持っています。しかし、ファイルに書き込もうとすると、結果はヒープメモリ不足例外です。Java POIヒープメモリ不足 - バッチ処理

バッチでデータを書き込むことが可能かどうかは疑問でした。これを行うために私はどのようなアプローチをとるべきですか?

+0

試してみるファイルタイプxlsにxlsやxlsxを作成するには、xlsに約65000件のレコード数に制限があるので、この質問を見てください:http://superuser.com/questions/366468/what-is-the-maximum-allowed-rows-in-a- Microsoft Excel-xls-or-xlsx – esprittn

+0

私はxlsxで書いています –

+0

あなたは[Apache POI FAQを読んでみてくださいopic on memory use](http://poi.apache.org/faq.html#faq-N10165)?あなたは[そこのアドバイスに従ってみてください](http://poi.apache.org/faq.html#faq-N10165)でしたか? – Gagravarr

答えて

2

Apache POIは、Microsoft Excel 2007(xlsx)用のXSSF.SXSSFの上に構築されたメモリ不足のフットプリントSXSSF APIを提供します。これを使用してxlsファイルを書き込むことはできません。ヒープスペースが制限されている場合は、その行の指定された限られた行数を保持しています。すでにディスクに書き込まれている行はアクセスできなくなります。documentation