1、前言
突然有个比较复杂的表格导出需求,写着挺好玩的,记录一下。
需要实现的表格如图所示:
先分析一下表格,可以看出大致分了四个区域:①第2-8行,②第9行,③第10-14行,④第15行。
其中,①和③类似(需要对单元格进行合并),②和④类似(这个地方可以改成上一个区域的总结)。
初步想法是在一个sheet页面,通过多个table 解决(①②③④均为独立table)。
2、自定义合并单元格策略
2、1 初始化数据
// 模拟从数据库读取需要下载的列表信息 7个
private List<DownloadDTO> getFruitData() {
List<DownloadDTO> returnList = new ArrayList<>();
DownloadDTO d1 = new DownloadDTO();
d1.setCategory("水果");
d1.setFruit("苹果");
d1.setColor("红色");
d1.setProduceDate(new Date());
DownloadDTO d2 = new DownloadDTO();
BeanUtil.copyProperties(d1, d2);
d2.setColor("绿色");
DownloadDTO d3 = new DownloadDTO();
BeanUtil.copyProperties(d1, d3);
d2.setColor("白色");
DownloadDTO t1 = new DownloadDTO();
t1.setCategory("水果");
t1.setFruit("香蕉");
t1.setColor("黄色");
t1.setProduceDate(new Date());
DownloadDTO t2 = new DownloadDTO();
BeanUtil.copyProperties(t1, t2);
t2.setColor("青色");
DownloadDTO w1 = new DownloadDTO();
w1.setCategory("水果");
w1.setFruit("西瓜");
w1.setColor("绿色");
w1.setProduceDate(new Date());
DownloadDTO w2 = new DownloadDTO();
BeanUtil.copyProperties(w1, w2);
w2.setColor("黄色");
returnList.add(d1);
returnList.add(d2);
returnList.add(d3);
returnList.add(t1);
returnList.add(t2);
returnList.add(w1);
returnList.add(w2);
return returnList;
}
参考文档:
https://www.cnblogs.com/monianxd/p/16359369.html
https://www.jianshu.com/p/1bc1b9dccc52/
标签:表格,returnList,EasyExcel,t1,add,new,20220827,DownloadDTO,d1 From: https://www.cnblogs.com/MerryRose/p/16631008.html