EasyExcel-实战-大数据量导入导出与样式处理

EasyExcel 实战:大数据量导入导出与样式处理

文章目录

导出怎么写才稳

大数据导出别一口气把所有数据查出来再写。比较稳的做法是分页查询、分批写入、及时释放临时对象。这样做的好处是内存曲线会平很多。

java 复制代码
for (int page = 1; ; page++) {
    List<UserExportRow> rows = userService.pageQuery(page, 5000);
    if (rows.isEmpty()) break;
    EasyExcel.write(outputStream, UserExportRow.class)
            .sheet("用户数据")
            .doWrite(rows);
}

导入怎么处理更像样

导入通常分三步:读取、校验、落库。不要在 invoke() 里做太重的事情,最好先收集,再批量校验,最后批量入库。

样式怎么做

如果只是标题加粗、列宽自适应、表头居中,直接用自定义 WriteHandler 就够了。复杂一点的合并单元格、固定表头、条件样式,也建议拆成单独的 handler。

这几个坑最常见

  • 一个表导出时样式和数据耦合太紧
  • 导入时一行一条 SQL,性能很差
  • 重复数据没先做去重
  • 文件大了以后忘了控制下载超时

经验结论

EasyExcel 真正好用的地方,不是"写起来更短",而是它能把导入导出做成一条可控的流水线。