SpringBoot:EasyExcel动态字段(不创建对象)多sheet、多文件|压缩包格式导出
背景:
项目中填报业务表是动态表,需求是在某个归集分析页加导出功能,导出的数据会包含多个表,所以就有了动态字段的导出功能。
处理方式:
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、多文件|压缩包格式导出相关推荐
- SpringBoot+Hutool工具类Excel工具-ExcelUtil实现excel文件的导入导出
Hutool会用的话极大了简化了操作Excel的过程,提高开发效率,废话少说上代码. excel文件导出: public void downLoadFile(UserDto dto,HttpServl ...
- Springboot + Easyexcel读取写入数据,多头行数,多sheet,复杂表头简单实现
Springboot + Easyexcel 读取数据 简单读取excel文件 读取下图的 excel 数据 导入依赖,阿里的easyexcel插件 <dependency><gro ...
- easyexcel生成动态模板(模板支持下拉框),动态字段导出excel表格,常规字段导出excel表格
备注:动态字段导出主要是用了反射的原理,跟excel需要导出的字段一一映射.话不多说,直接上代码: 1.生成的动态模板如图: 如上图,如果下拉框里不是选择的值,会给用户提示,下拉框用来限制用户导入只能 ...
- springboot+easyexcel实现固定表头+动态表头的数据导出
/*** 固定标头的实体类*/ @Data public class BaseExportExcelStringVo implements Serializable {private static f ...
- 使用VUE+SpringBoot+EasyExcel 整合导入导出demo
导出示例: 后台: 1.引入依赖:需要引入easyExcel的依赖,但是我在使用过程中发现也是需要poi的依赖,不然会报错,就同时引入了. <dependency><groupId& ...
- EasyExcel动态导出多级表头
EasyExcel动态导出多级表头 工具类 /*** 特殊表头导出方法* @param response* @param fileName* @param sheetName* @param list ...
- easyexcel 动态列_easyexcel动态表头列导出SequenceDiagram 阅读源码事半功倍
EasyExcel简介 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢 ...
- EasyExcel 动态表头 + 数据单元格合并
前言 本文想要达到以及最终实现的效果: 要实现这种效果,包含两个部分的操作: 1. 动态表头 EasyExcel 生成 Excel 时要使表头有合并效果,可以采用**注解和非注解(动态表头)**的方法 ...
- 基于SpringBoot+EasyExcel+vue3实现excel表格的导入和导出
目录 基于SpringBoot+EasyExcel+vue3实现excel表格的导入和导出 一.导入和导出 二.导出数据为excel实现过程 三.将excel中的数据导入到数据库中 基于SpringB ...
- springboot easyexcel导出百万数据优化
说明 由于某些原因系统jvm内存最大只能给到512,但是要导出百万数据该如何实现呢?传统的一次性导出肯定是不行的 优化 Excel导出基于 springboot , easyexcel 依赖: < ...
最新文章
- python教程:深拷贝与浅拷贝的具体区别在哪里
- 图像处理之添加文字水印
- PHP常用字符串函数小结
- 【运筹与优化】单纯形法解线性规划问题(matlab实现)
- 接facebook广告_Facebook广告分析
- 前端学习(2948):webpack创建简单项目
- php爬虫js解析,Spider抓取动态内容(JavaScript指向的页面)
- java 存储过程_Java 调用存储过程
- 【转】PHP远程调试之XDEBUG
- 赛锐信息:优化SAP系统运行时的建议
- 30-算法训练 最短路 spfa
- 会声会影保存的文件在哪里
- configure: line syntax error near unexpected token `win32-dll'
- 树莓派使用autofs挂载移动硬盘 -----linux通用
- 记忆训练 0-100的110个数字对应编码
- java POI excel导出自定义分页问题
- Java8 新特性之 Stream 练习题
- 阿拉伯数字转中文大写的方法
- 折半插入排序顺序结构
- 谈谈红楼梦(第1-5回)
热门文章
- 三大语言关于负数除整数余数和商的总结
- ESP32学习笔记(29)——BLE iBeacon广播
- 网吧用计算机性能配件清单,网吧主机都是什么配置?看看清单就知道!
- 《动手学深度学习》(PyTorch版)代码注释 - 52 【World2Vec_Learning】
- 粗柳簸箕细柳斗,谁嫌爬虫男人丑 之 异步协程半秒扒光一本小说
- 如何构建可出售的Pagewiz登陆页面模板
- 计算机网络——IPv4地址概述
- redhat下软件安装
- 【年终总结】回顾我平凡且不平凡的 2021
- java毕业设计民航售票管理系统源码+lw文档+mybatis+系统+mysql数据库+调试