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

相关推荐
我登哥MVP1 分钟前
【SpringMVC笔记】 - 5 - View
java·spring boot·spring·servlet·tomcat·maven·intellij-idea
毅炼4 分钟前
MyBatis 常见问题总结
java·数据库·sql·mybatis
清心歌6 分钟前
LinkedList 深入解析
java
鱼鳞_10 分钟前
Java学习笔记_Day32(IO流字符集字符流)
java·笔记·学习
Rsun0455111 分钟前
17、Java 责任链模式从入门到实战
java·python·责任链模式
GDAL12 分钟前
IntelliJ IDEA 前端开发全面教程
java·ide·intellij-idea
rabbit_pro13 分钟前
IDEA保存SSH会话信息
java·ssh·intellij-idea
Rsun0455114 分钟前
12、Java 享元模式从入门到实战
java·开发语言·享元模式
小则又沐风a19 分钟前
深剖string内部结构 手撕string
java·前端·数据库·c++
2401_8326355821 分钟前
Spring Data MongoDB 最佳实践:如何构建高效数据访问层
java·mongodb·spring