EasyExcel动态实现表头以及数据封装

EasyExcel动态实现表头以及数据封装

实现方法

复制代码
  public void exportSelfRanking(HttpServletResponse response, ButtonStatisticsParam buttonStatisticsParam) throws IOException {
        //表头参数
        List<List<String>> titleList = queryButtonExportTitle();
        //数据
        List<List<String>> dataList = queryButtonExportData(buttonStatisticsParam, titleList);
        //导出
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        // 这里URLEncoder.encode可以防止中文乱码
        String fileName = URLEncoder.encode("使用情况数据"+DateUtil.format(new Date(),"yyyyMMddHHmmssSSS"), "UTF-8").replaceAll("\\+", "%20");
        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
        EasyExcel.write(response.getOutputStream())
                .head(titleList)
                .registerWriteHandler(new SimpleColumnWidthStyleStrategy(25))
                .sheet("功能意向使用情况").doWrite(dataList);
    }

注:buttonStatisticsParam为导出的检索条件,response为请求头参数

List<List> titleList 为封装的动态表头参数, List<List> dataList 为动态封装的数据参数,registerWriteHandler(new SimpleColumnWidthStyleStrategy(25)) 为设置表格参数,head(titleList) 为存放表头参数

相关推荐
殷紫川1 分钟前
CAS 无锁并发深度解析:从 CPU 原语、JDK 源码到生产实战与避坑指南
java
2301_810154555 分钟前
CVE-2019-6341 漏洞复现
java·开发语言
SimonKing9 分钟前
IDEA 2026.1重磅发布:AI智能体全面开放,编程进入“万能插座”时代
java·后端·程序员
chushiyunen11 分钟前
langchain的流式事件监听astream_event()、todo运行机制
java·数据库·langchain
老虎062713 分钟前
数据结构09(Java)-- 二分查找模板
java·开发语言·数据结构
赫瑞19 分钟前
Java中的图论2——Kruskal算法
java·算法·图论
weixin_4334314421 分钟前
Centos Stream9 + Docker 配置 OpenClaw完整流程
java·开发语言
gelald23 分钟前
Spring - IoC 容器原理
java·后端·spring
她说..23 分钟前
排查接口响应慢问题
java·jvm·spring boot·spring cloud·java-ee