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

相关推荐
龙虾PRO44 分钟前
能源与股票量化核心差异,AI全链路落地实操手册
java·面试·职场和发展
llwszx1 小时前
【Java/Go后端手撸原生Agent(第九篇):Plan-and-Execute规划模式——从“走一步看一步“到“先谋后动“】
java·python·golang·agent开发·plan模式·规划执行模式
ZJH__GO1 小时前
网络编程v2--多客户端互通
java·运维·服务器·开发语言·计算机网络
霸道流氓气质1 小时前
SpringBoot中基于 AES-GCM + KMS 密钥管理的数据加解密 Starter 实践
java·数据库·spring boot
Gofarlic_OMS2 小时前
NX浮动许可调度黑名单机制,对比两款谁更合理
java·大数据·运维·开源·制造
乐观的Terry2 小时前
8、发布系统-完整流水线的核心
java·spring boot·spring·spring cloud
Alexalbb2 小时前
从角色过滤到可审计授权:单体系统数据权限设计复盘与演进
java
万亿少女的梦1682 小时前
基于Spring Boot的游戏交易管理系统设计与实现
java·spring boot·mysql·系统设计·交易管理
闲猫3 小时前
Agent工程实践:从WorkFlow到多Agent协作的落地笔记
java·服务器·前端
笨蛋不要掉眼泪3 小时前
Java虚拟机:常用参数
java·开发语言·python