我正在尝试使用Java编写100万行和excel文件(我必须创建一个xls或xlsx)。
Jxl和POI似乎都是内存中的API,即两者都会在内存中同时拥有100万行的整个文件。 这将最终消耗Java堆空间。 如何将记录读入excel文件? 提前谢谢。
答案 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);