【三十一】springboot+easyExcel实现多文件导出压缩包

互相交流入口地址

整体目录:

【一】springboot整合swagger

【二】springboot整合自定义swagger

【三】springboot整合token

【四】springboot整合mybatis-plus

【五】springboot整合mybatis-plus

【六】springboot整合redis

【七】springboot整合AOP实现日志操作

【八】springboot整合定时任务

【九】springboot整合redis实现启动服务时热点数据保存在全局和缓存

【十】springboot整合quartz实现定时任务优化

【十一】springboot整合异步调用并获取返回值

【十二】springboot整合WebService

【十三】springboot整合WebService关于传参数

【十四】springboot整合WebSocket

【十五】springboot整合WebSocket实现聊天室

【十六】RabbitMQ基础篇(下载安装并基础使用,内含各种坑问题)

【十七】RabbitMQ基础篇(延迟队列和死信队列实战)

【十八】springboot实现自定义全局异常处理

【十九】初学Kafka并实战整合SpringCloudStream进行使用

【二十】springboot整合ElasticSearch实战(万字篇)

【二十一】springboot整合过滤器实战

【二十二】springboot整合拦截器实战并对比过滤器

【二十三】springboot整合activiti7(1)实战演示篇

【二十四】springboot整合spring事务详解以及实战

【二十五】springboot使用EasyExcel和线程池实现多线程导入Excel数据

【二十六】springboot整合jedis和redisson布隆过滤器处理缓存穿透

【二十七】springboot实现多线程事务处理

【二十八】springboot之threadLocal参数解析器实现session一样保存当前登录功能

【二十九】springboot整合logback实现日志管理

【三十】springboot项目上高并发解决示例

【三十一】springboot+easyExcel实现多文件导出压缩包

目录

1、测试数据

[2、 项目引入依赖](#2、 项目引入依赖)

3、代码

4、效果


场景:现在有一个需求,要求某公司将人员的简历信息批量导出成excel,以压缩包形式输出,例如筛选出1000个员工,并将他们的简历1000份导出,压缩成压缩包。

本文以一个简化的操作来进行demo演示,本文就以普通的列表导出为例。

1、测试数据

2、 项目引入依赖

<!--   excel处理     -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.2.1</version>
        </dependency>

3、代码

此处demo我假设的是一个人会有多条集合的数据,也或与是一个对象结构的数据(比如简历填充)。根据实际情况改造一下即可。

先模拟查出假数据。

创建临时压缩文件,获取该文件的ZipOutputStream流。

再通过easyExcel的Workbook方式(可以采用多种方式),创建一个ByteArrayOutputStream,通过easyExcel将数据写入ByteArrayOutputStream,再将ByteArrayOutputStream写入ZipOutputStream。最后关闭ZipOutputStream。再将本地临时文件通过response.getOutputStream()的ServletOutputStream流输出,最后在删除本地缓存zip。

4、效果

如果有其他场景有疑问的欢迎评论区讨论。

相关推荐
计算机学长felix10 分钟前
基于SpringBoot的“校园交友网站”的设计与实现(源码+数据库+文档+PPT)
数据库·spring boot·毕业设计·交友
Re.不晚13 分钟前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
雷神乐乐19 分钟前
Maven学习——创建Maven的Java和Web工程,并运行在Tomcat上
java·maven
码农派大星。22 分钟前
Spring Boot 配置文件
java·spring boot·后端
顾北川_野29 分钟前
Android 手机设备的OEM-unlock解锁 和 adb push文件
android·java
江深竹静,一苇以航32 分钟前
springboot3项目整合Mybatis-plus启动项目报错:Invalid bean definition with name ‘xxxMapper‘
java·spring boot
confiself1 小时前
大模型系列——LLAMA-O1 复刻代码解读
java·开发语言
Wlq04151 小时前
J2EE平台
java·java-ee
XiaoLeisj1 小时前
【JavaEE初阶 — 多线程】Thread类的方法&线程生命周期
java·开发语言·java-ee
杜杜的man1 小时前
【go从零单排】go中的结构体struct和method
开发语言·后端·golang