背景:

项目中填报业务表是动态表,需求是在某个归集分析页加导出功能,导出的数据会包含多个表,所以就有了动态字段的导出功能。

处理方式:

1.多文件以压缩包格式导出
2.多sheet(工作表),一个文件导出

@@当然,这里用poi一样可以实现,相比EasyExcel不是很方便,其次,当数据量较大会有性能问题, POI方式可参考 >> SpringBoot 动态生成多个Excel文件以压缩包.zip格式下载 这里就以EasyExcel为例:

1.引入依赖

        <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.8</version></dependency>

2. 代码实现

2.1 写入多个sheet表

官方参考文档:重复多次写入写到单个或者多个sheet

  response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8");response.setCharacterEncoding("utf-8");// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系String fileName = URLEncoder.encode("部门归集数据", "UTF-8").replaceAll("\\+", "%20");response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");ExcelWriter writer = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();// 多个sheet表这个循环
for (遍历多个模板){ List<List<String>> heads = new LinkedList<>(); // 表头要设置为这种格式// 设置表头WriteSheet mainSheet0 = EasyExcel.writerSheet(i, templateVo.getTemplateTitle().replace("表", "") + "_" + i).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();mainSheet0.setHead(heads);// 写入数据writer.write(dataList, mainSheet0);
}
// 最后 finish
if (null != writer) {writer.finish();
}

2.2 多个文件以压缩包导出

可参考 >> 动态生成多个Excel文件以压缩包.zip格式下载
这以下地方修改就可以 ↓

                                                 END

SpringBoot:EasyExcel动态字段(不创建对象)多sheet、多文件|压缩包格式导出相关推荐

  1. SpringBoot+Hutool工具类Excel工具-ExcelUtil实现excel文件的导入导出

    Hutool会用的话极大了简化了操作Excel的过程,提高开发效率,废话少说上代码. excel文件导出: public void downLoadFile(UserDto dto,HttpServl ...

  2. Springboot + Easyexcel读取写入数据,多头行数,多sheet,复杂表头简单实现

    Springboot + Easyexcel 读取数据 简单读取excel文件 读取下图的 excel 数据 导入依赖,阿里的easyexcel插件 <dependency><gro ...

  3. easyexcel生成动态模板(模板支持下拉框),动态字段导出excel表格,常规字段导出excel表格

    备注:动态字段导出主要是用了反射的原理,跟excel需要导出的字段一一映射.话不多说,直接上代码: 1.生成的动态模板如图: 如上图,如果下拉框里不是选择的值,会给用户提示,下拉框用来限制用户导入只能 ...

  4. springboot+easyexcel实现固定表头+动态表头的数据导出

    /*** 固定标头的实体类*/ @Data public class BaseExportExcelStringVo implements Serializable {private static f ...

  5. 使用VUE+SpringBoot+EasyExcel 整合导入导出demo

    导出示例: 后台: 1.引入依赖:需要引入easyExcel的依赖,但是我在使用过程中发现也是需要poi的依赖,不然会报错,就同时引入了. <dependency><groupId& ...

  6. EasyExcel动态导出多级表头

    EasyExcel动态导出多级表头 工具类 /*** 特殊表头导出方法* @param response* @param fileName* @param sheetName* @param list ...

  7. easyexcel 动态列_easyexcel动态表头列导出SequenceDiagram 阅读源码事半功倍

    EasyExcel简介 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢 ...

  8. EasyExcel 动态表头 + 数据单元格合并

    前言 本文想要达到以及最终实现的效果: 要实现这种效果,包含两个部分的操作: 1. 动态表头 EasyExcel 生成 Excel 时要使表头有合并效果,可以采用**注解和非注解(动态表头)**的方法 ...

  9. 基于SpringBoot+EasyExcel+vue3实现excel表格的导入和导出

    目录 基于SpringBoot+EasyExcel+vue3实现excel表格的导入和导出 一.导入和导出 二.导出数据为excel实现过程 三.将excel中的数据导入到数据库中 基于SpringB ...

  10. springboot easyexcel导出百万数据优化

    说明 由于某些原因系统jvm内存最大只能给到512,但是要导出百万数据该如何实现呢?传统的一次性导出肯定是不行的 优化 Excel导出基于 springboot , easyexcel 依赖: < ...

最新文章

  1. python教程:深拷贝与浅拷贝的具体区别在哪里
  2. 图像处理之添加文字水印
  3. PHP常用字符串函数小结
  4. 【运筹与优化】单纯形法解线性规划问题(matlab实现)
  5. 接facebook广告_Facebook广告分析
  6. 前端学习(2948):webpack创建简单项目
  7. php爬虫js解析,Spider抓取动态内容(JavaScript指向的页面)
  8. java 存储过程_Java 调用存储过程
  9. 【转】PHP远程调试之XDEBUG
  10. 赛锐信息:优化SAP系统运行时的建议
  11. 30-算法训练 最短路 spfa
  12. 会声会影保存的文件在哪里
  13. configure: line syntax error near unexpected token `win32-dll'
  14. 树莓派使用autofs挂载移动硬盘 -----linux通用
  15. 记忆训练 0-100的110个数字对应编码
  16. java POI excel导出自定义分页问题
  17. Java8 新特性之 Stream 练习题
  18. 阿拉伯数字转中文大写的方法
  19. 折半插入排序顺序结构
  20. 谈谈红楼梦(第1-5回)

热门文章

  1. 三大语言关于负数除整数余数和商的总结
  2. ESP32学习笔记(29)——BLE iBeacon广播
  3. 网吧用计算机性能配件清单,网吧主机都是什么配置?看看清单就知道!
  4. 《动手学深度学习》(PyTorch版)代码注释 - 52 【World2Vec_Learning】
  5. 粗柳簸箕细柳斗,谁嫌爬虫男人丑 之 异步协程半秒扒光一本小说
  6. 如何构建可出售的Pagewiz登陆页面模板
  7. 计算机网络——IPv4地址概述
  8. redhat下软件安装
  9. 【年终总结】回顾我平凡且不平凡的 2021
  10. java毕业设计民航售票管理系统源码+lw文档+mybatis+系统+mysql数据库+调试