0

我正在研究将数据导出到 Excel 文件(.xls(旧版本)格式支持)的功能。

我必须将块附加到.xls文件中,而不将文件加载到内存中。该文件应为 .xls 格式。每个步骤中的块大小都可以很大,并且有数百万行。分成块。如果我在内存中加载文件,可能会出现内存溢出的情况。有人可以建议任何可以提供帮助的免费或付费 api 或 java 解决方案。

4

1 回答 1

1

更新 - 用户想要追加,我的建议是无法阅读工作簿。将其留在这里以供参考。

使用SXSSFWorkbookPOI 的 Streaming API 的一部分。它可以在写入时仅在内存中保留特定限制的行。它比使用普通工作簿要快得多。

不过,这适用于较新的格式。您应该知道,使用旧.xls格式,您的行数和列数会受到更多限制。检查更多

SXSSFWorkbook workbook = new SXSSFWorkbook(10); // 10 is the row access window. It keeps only the last 10 rows in memory, then they are removed and the next ten are loaded

有关更多信息,请查看SXSSF (流式用户模型 API)部分。

PS:别忘了workbook.dispose()

于 2021-12-21T07:34:34.073 回答