EasyExcel 动态表头+表头合并

EasyExcel 动态表头+表头合并

​ 最终呈现效果:

​ 以前对EasyExcel的使用都是一个实体类字段对应一列,通过以下来一一对应即可。

复制代码
@ExcelProperty(index = 0,value = "姓名" )
private String xm;

​ 所以此中出现的两个问题:

  1. 表头合并,第一行是合并的汇总

  2. 动态表头,下载的几月的汇总表头就要出现202x年x月销售部门员工·····

​ 在本例中,需要在controller中如下设置

复制代码
HashMap<String, String> replaceMap = new HashMap<>();
replaceMap.put("currentDate", month+"销售部门员工出差效果考核情况汇总");
sheetNameMap.put("出差效果统计",sheetNameList);
AnnotationUtils.changeAnnotationValueToDealProcess(CcxgtjInfo.class, ExcelProperty.class, "value", AnnotationUtils.AttrTypeEnum.STRING_ARR, replaceMap, new AnnotationUtils.DealProcess() {
            @Override
            public void deal() {   FileDownloadUtils.downLoadMoreSheetFile(response,fileName,sheetNameMap,classMap,dataMap);
            }
        });

方法共五个参数,参数解释已于配置类中注释。例中,

1.注解所在实体类为CcxgtjInfo.class。2.注解类为easysxcel注解类。

3.要修改的注解属性名为value。4.要修改的注解属性AnnotationUtils.AttrTypeEnum.STRING_ARR,即{}字符串集合形式。

5.要替代的字符串replaceMap.put("currentDate", month+"销售部门员工出差效果考核情况汇总");

在deal()方法中,将自己的业务逻辑放入即可,例子中为一个多sheet页的导出方法,此处不再展示详情。

本文参考如下:

easyExcel - 动态复杂表头的编写_easyexcel 动态表头-CSDN博客

相关推荐
想进大厂的小徐5 分钟前
maven的子模块和子pom的区别
java·maven
pengles10 分钟前
基于RuoYi-Vue-Plus项目实现移动端项目
java·vue.js·uni-app
希望永不加班10 分钟前
SpringBoot 编写第一个 REST 接口(Get/Post/Put/Delete)
java·spring boot·后端·spring
菜菜小狗的学习笔记19 分钟前
Java SE(一)内部类、Lambda表达式、Stream流
java·开发语言
码云数智-园园20 分钟前
Java中的重载(Overload)与重写(Override):本质区别、场景与注意事项
java·开发语言
yxm263366908120 分钟前
洛谷P1217回文质数
java·开发语言
金斗潼关21 分钟前
java反序列化入口方法介绍
java·开发语言·jvm·序列化·反序列化
一直都在57225 分钟前
Java并发面经(二)
java·开发语言·spring
小雷君31 分钟前
SpringBoot 接口开发5个高频踩坑总结
java·spring boot·后端·面试
aloha_78934 分钟前
软考高项-第二章-信息技术发展
java·人工智能·python·学习