2016-05-30 32 views
-1

我有非常大的xls文件,其中包含兩張工作表。我想將這兩張紙合併爲一張並複製到新的工作簿中。但我得到了內存異常,當我試圖訪問這個大XLS如下:apache poi從非常大的xls複製到新的工作簿表

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

我嘗試使用事件API爲XLS:http://poi.apache.org/spreadsheet/how-to.html#event_api 但是,使用,我們只能讀取單元格的值。但在這裏,我需要複製到新的Excel表。

+1

你用'-Xms'和'Xmx'參數增加了堆大小嗎? –

+0

是的。我試過了,它不會工作。我需要一些其他的解決方案。 – Sowmya

+0

請提供一些細節。兩個工作簿的大小是多少(H×V)和兆字節(MB)。 –

回答

1

Apache POI提供了用於將數據寫入xlsx的低存儲器佔用面積SXSSF API。它不會立即加載內存中的所有內容,因此它是處理非常大的Excel文件時的解決方案。你可能想考慮這個。

+0

我想從xls文件複製,SXSSF用於xlsx – Sowmya

+0

是的,SXSSF用於excel 2007(xslx) –

相關問題