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博客

相关推荐
xuzhiqiang07247 小时前
Java进阶之路,Java程序员职业发展规划
java·开发语言
时艰.7 小时前
订单系统历史数据归档方案
java
一只叫煤球的猫9 小时前
ThreadForge v1.1.0 发布:让 Java 并发更接近 Go 的开发体验
java·后端·性能优化
014.9 小时前
2025最新jenkins保姆级教程!!!
java·运维·spring boot·spring·jenkins
浣熊8889 小时前
天机学堂虚拟机静态ip无法使用(重启后ip:192.168.150.101无法使用连接Mobaxterm数据库等等,或者无法使用修改之后的Hosts域名去访问nacos,jenkins)
java·微服务·虚拟机·天机学堂·重启之后静态ip用不了
心 -10 小时前
java八股文IOC
java
I_LPL11 小时前
day34 代码随想录算法训练营 动态规划专题2
java·算法·动态规划·hot100·求职面试
亓才孓11 小时前
【MyBatis Exception】Public Key Retrieval is not allowed
java·数据库·spring boot·mybatis
J_liaty12 小时前
Java设计模式全解析:23种模式的理论与实践指南
java·设计模式
Desirediscipline12 小时前
cerr << 是C++中用于输出错误信息的标准用法
java·前端·c++·算法