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) 为存放表头参数

相关推荐
子非鱼@Itfuture14 小时前
ThreadLocal 是什么?如何用?以及最佳使用场景
java·开发语言·spring
杨凯凡14 小时前
【024】JVM 参数入门:堆、栈、元空间与典型模板
java·开发语言·jvm
invicinble14 小时前
java集合的设计思路
java·开发语言·python
A_aspectJ14 小时前
【Java基础开发】 基于Swing GUI 组件实现图书管理系统
java·开发语言
陌殇殇14 小时前
004 Spring AI Alibaba框架整合百炼大模型平台 — MCP服务
java·spring·ai
014-code14 小时前
JUC 常用工具类:CountDownLatch、CyclicBarrier、Semaphore
java
William Dawson14 小时前
【一文吃透 Spring Boot 面向切面编程(AOP):实例\+实现\+注意事项】
java·spring boot
fengxin_rou15 小时前
JVM 核心笔记:对象创建、生命周期与类加载器详解
java·jvm·笔记
one_love_zfl15 小时前
java面试-JVM篇
java·jvm·面试
skiy15 小时前
Spring之DataSource配置
java·后端·spring