EasyExcel 实战:大数据量导入导出与样式处理
文章目录
- EasyExcel 实战:大数据量导入导出与样式处理
- 导出怎么写才稳
- 导入怎么处理更像样
- 样式怎么做
- 这几个坑最常见
- 经验结论
导出怎么写才稳
大数据导出别一口气把所有数据查出来再写。比较稳的做法是分页查询、分批写入、及时释放临时对象。这样做的好处是内存曲线会平很多。
for(intpage=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 真正好用的地方,不是“写起来更短”,而是它能把导入导出做成一条可控的流水线。