需求概述
项目中需要导出的Excel如下所示:
目前的列表是查询出所有行的数据,前端再去按主键进行合并的。所以,导出时只要Excel下一行的主键相同,就合并上一行框红的列。
目前网上找到的EasyExcel自定义合并单元格都是ExcelFillCellMergeStrategy,这个工具类只要下一行的cell和上一行的cell内容相同就会合并,不符合目前的需求。本例也是在此基础上进行逻辑修改。 参考链接。
测试代码
引入相关依赖:
1 | <dependencies> |
ExcelModel类:
1 |
|
ExcelFillCellMergeStrategy类(核心):
1 | /** |
ExportTest测试类:
1 | public class ExportTest { |
测试代码运行结果
其中序号列是隐藏的。另外,CellWriteHandler接口方法的执行顺序为beforeCellCreate()->afterCellCreate()->afterCellDataConverted()->afterCellDispose()。