2016-04-07 6 views
0

の.xlsxファイルを読むことができますが、大Excelは私が</p> <pre><code>org.xml.sax </code></pre> <p>ライブラリをしようとしているライブラリに</p> <pre><code>org.apache.poi XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream); </code></pre> <p>を使用してい

NOTEブックにないこと変換、それを:最終結果に私はXSSFWorkbookが返されるようにします

上記のコードは、メモリから外れます、どんな助けてもらえます ThankQ i​​n advance

+1

"注:最終結果でXSSFWorkbookを返すようにしてください":これは不可能です。 XSSFWorkbookは完全にメモリ内にある必要があります。 SXSSFWorkbook https://poi.apache.org/spreadsheet/how-to.html#sxssfを使用してみてください。 –

+0

どのSXSSFWorkbookについて書いているのではなく、読んでいるかどうかについての質問です。 – centic

答えて

1

入力データが利用可能なメモリに対して大きすぎる場合、2つのオプションがあります。

a)の-XmxのJavaコマンドラインオプション

B)Streaming-API of POIを使用を通じて、より多くのメモリを提供します。

オプションa)はファイルが最終的にメモリに収まる場合は簡単に実行できます。ファイルが利用可能な物理メモリに対して大きすぎる場合は、ストリーミングオプション、特にサンプルXLSX2CSVは、複数のファイルにアクセスする必要があるいくつかの機能があるにもかかわらず、任意の大きな.xlsxファイルからデータを読み取る方法を示しますセルはすぐに使用できません。

関連する問題