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 分钟前
自动拨号换ip软件简单实现。aardio版。
java·网络·aardio·adsl·换ip·rasphone.exe·rasdial.exe
anzhxu10 分钟前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端
lUie INGA11 分钟前
快速在本地运行SpringBoot项目的流程介绍
java·spring boot·后端
探险的机器猫18 分钟前
使用 java 搭建一个基于 StreamableHTTP 的 MCP 服务
java·mcp
likerhood18 分钟前
Map的keySet()方法和entrySet()方法(java学习)
java
乐之者v30 分钟前
AI编程-- codex并行开发需求
java
weixin_5206498734 分钟前
C#线程底层原理知识
java·开发语言
xieliyu.39 分钟前
Java手搓数据结构:从零模拟实现单向无头非循环链表
java·数据结构·学习·链表