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

相关推荐
月落归舟2 分钟前
SpringMVC 多种响应返回方式
java·开发语言
吃饱了得干活9 分钟前
JVM垃圾回收:从新生代到ZGC,从理论到调优
java·jvm·后端
长不胖的路人甲15 分钟前
二叉排序树(BST)Java 完整实现 + 删除思路详解
java·开发语言·算法
大模型码小白22 分钟前
Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)
java·人工智能·python·机器学习
长不胖的路人甲24 分钟前
可达性分析法(根搜索算法)完整详解
java·jvm·算法
笨笨饿29 分钟前
#102_Codex无在VSCold无法打开
java·c语言·数据库·笔记
程序员清风36 分钟前
AI不是万能的,大家要专注实践!
java·后端·面试
青山木37 分钟前
Hot 100 --- 全排列
java·数据结构·算法·leetcode·深度优先
猫猫不是喵喵.1 小时前
认证授权【Spring Security】
java·认证授权
小罗水1 小时前
第1章 大模型、企业知识库与 RAG 平台概述
java·spring