优化前:优化大量数据导出到Excel的内存消耗_大文件异步导出 内存占用高-CSDN博客
写Excel文件报错:Invalid row number (1048576) outside allowable range (0..1048575)
写入Excel时遇到`IllegalArgumentException`,原因是超出允许的最大行数。文章提供了解决方案,即使用多个sheet并将数据分批写入以避免此问题。
数据导出优化:如果数据超出Excel单表上限,Excel单表最多可以存储1048576条数据(1024的平方,2的20次方),如果数据超出Excel单表上限,则进行分表。
public void writeExcel(OutputStream os, String sheetName, Map<String, String> header, List<Map<String, Object>> datas) {
logger.info("导入数据到excel==========> 开始");
long startTime = System.currentTimeMillis(); // 记录开始时间
int rowAccessWindowSize = 100; // 设置适当的行访问窗口大小
SXSSFWorkbook wb &#