将100万条记录写入excel文件

时间:2013-07-16 12:53:57

标签: java apache-poi jxl

我正在尝试使用Java编写100万行和excel文件(我必须创建一个xls或xlsx)。

Jxl和POI似乎都是内存中的API,即两者都会在内存中同时拥有100万行的整个文件。 这将最终消耗Java堆空间。 如何将记录读入excel文件? 提前谢谢。

2 个答案:

答案 0 :(得分:3)

apache-poi有一个streaming api,可以使用大数据。我用它直到500k。它可能对你有百万。

答案 1 :(得分:1)

JExcel可以借助临时文件编写excel文件,而不是将所有数据存储在内存中。您可以使用以下代码启用它:

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