2016-05-30 6 views
-1

私は2枚のシートを含む非常に大きなxlsファイルを持っています。私はこれらの2枚を1枚にまとめ、新しいブックにコピーしたいと思います。私は以下のように、この大きなxlsファイルにアクセスしようとすると、しかし、私は、メモリ例外から抜け出す:非常に大きなxlsから新しいワークブックシートへのコピーapache poiコピー

FileInputStream fis = new FileInputStream(new File("input.xls")); 
HSSFWorkbook workbook = new HSSFWorkbook(fis); 

私はXLSのイベントAPIを使用してみました:http://poi.apache.org/spreadsheet/how-to.html#event_api しかし、我々は唯一のセルの値を読み取ることができることを使用して。しかし、ここで私は新しいExcelシートにコピーする必要があります。

+1

'-Xms'と' Xmx'パラメータでヒープサイズを増やしましたか? –

+0

はい。私はそれを試み、それは動作しません。プログラムを通して他の解決策が必要です。 – Sowmya

+0

いくつかの詳細を記入してください。セル数(H x V)とメガバイト数の両方の2つのワークブックのサイズはどれくらいですか? –

答えて

1

Apache POIは、xlsxにデータを書き込むための低メモリフットプリントSXSSF APIを提供します。一度にすべてをメモリにロードするわけではありませんので、非常に大きなExcelファイルで作業する際の解決策です。あなたはこれを考慮したいかもしれません。

+0

xlsファイルからコピーしようとしています.SXSSFはxlsxです – Sowmya

+0

はい、SXSSFはExcel 2007(xslx) –

関連する問題