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 分钟前
阻塞队列-0-2-全景分析
java
TeDi TIVE6 分钟前
mysql-connector-java 和 mysql-connector-j的区别
android·java·mysql
SimonKing12 分钟前
国产开源富文本编辑器 wangEditor,本姓编辑器
java·后端·程序员
剑飞的编程思维15 分钟前
系统架构评审报告(正式交付模板)
java·系统架构
XS03010618 分钟前
Java 基础(六)封装类 Object类
java·jvm·python
2301_7926748618 分钟前
java学习day31 (docker)
java·学习·docker
Han.miracle19 分钟前
Nacos的使用快速上手
java·spring cloud
007张三丰20 分钟前
系统架构设计师-以“云服务”主题为例的范文参考
java·开发语言·网络·软考高级·云服务·软考论文·论文范文
鬼蛟22 分钟前
Sentinel
java·开发语言·数据库
GoodStudyAndDayDayUp28 分钟前
优化java加权方法
java·优化java加权方法