2013-07-16 74 views
4

我想寫100萬行和使用Java的Excel文件(我必須創建一個xls或xlsx)。寫一百萬記錄到一個excel文件

Jxl和POI似乎都是內存中的API,即apis一次將在內存中擁有一百萬行的整個文件。 這將最終消耗Java堆空間。 如何將記錄讀入Excel文件? 在此先感謝。

+4

Excel不是爲這種情況設計的。您應該將它們導出到CSV文件。沒有這樣的限制。 –

回答

3

apache-poi有streaming api,可以處理大量數據。我用它直到500k。它可能爲你工作一百萬。

+1

注意:POI流API是隻寫的。 – user456584

1

JExcel可以在臨時文件的幫助下編寫excel文件,而不是將所有數據存儲在內存中。您可以使用以下代碼啓用它:

WorkbookSettings settings = new WorkbookSettings(); 
settings.setGCDisabled(true); 
settings.setUseTemporaryFileDuringWrite(true); 
settings.setTemporaryFileDuringWriteDirectory(tmpDir); 
Workbook wb = Workbook.createWorkbook(os, settings);