如何使用 Apache POI 将 300 万行写入 Excel 文件

How to write 3 Million rows to an Excel File Using Apache POI

我的数据库中有超过 200 万行的搜索条件,我必须将其导出到 xlsx 文件中。我正在使用 apache POI SXSSF 来实现这一点。

我正在从具有 130 多列的数据库中逐块获取数据,并通过创建多个 sheet 将其写入 WorkSheet,每个 sheet 有 400K 行。但是当它达到 1.1M 数据时我遇到了问题,之后我的代码没有响应也没有抛出任何错误。

基于这个问题我有2个困惑。

  1. 我们可以在单个 WorkBook 上处理超过 1 M 的数据吗?
  2. 可以 Excel 在多个 sheet 上处理超过 1M 的记录。

在excelsheet中写入200万行将是灾难性的。如果您需要写入某个文件,请选择写入 CSV 文件,因为它比 excel 轻得多。
关于允许的最大行数——2003 年为 65k,2007 年为 1,048,576+ 你也可以使用 API 传播sheetVersion.EXCEL97.getMaxRows() 和 传播sheet版本.EXCEL2007.getMaxRows()