java 实现Excel压缩成Zip导出
1 概述
在web项目中常见的一种场景就是将文件导出为Excel,但是当需要导出多个Excel时,使用者将频繁操作,这样就严重降低了项目的友好交互性以及易用性,那么怎么才能优雅的解决这个问题呢?笔者今天分享将Excel导出后并压缩成zip包响应到浏览器端,希望对大家有所帮助。
2 实现思路
使用AEAI DP创建样例工程export_demo,创建测试数据表employee,使用DP预置的样例功能快速创建单表操作模型,扩展添加导出按钮,扩展创建导出替换的模板EmployeeInfos.ftl,实现导出Excel的FileExportHelper-exportFile以及压缩的ZipHelper-doZip,dowmZip,deleteZip。
3 实现步骤
3.1 基础准备
1.创建样例工程export_demo,并初始化数据库(具体可参见AEAI DP开发平台技术手册,下载链接http://www.agileai.com/portal/website/01/res-share.ptml);
2.创建业务数据表,初始化sql;
3.创建单表操作模型快速生成代码,(参见 AEAIDP开发平台技术手册),在此不做过多赘述;
3.2 功能扩展
1.扩展“导出Excel”按钮;
在EmployeeManageList.jsp中添加按钮,并扩展js方法指向Handler
2.创建导出替换数据模板(模板是基于Freemaker语法进行变量替换);
3.3 数据拼接
1.构造导出数据拼接,调用FileExportHelper-exportFile实现导出Excel
1)在EmployeeManageListHandler中扩展方法exportExcelFile拼接导出Excle用到的数据
2)调用FileExportHelper-exportFile实现利用IO流将Excel导出至固定目录
2.调用ZipHelper-doZip将文件压缩为zip包,dowmZip将zip包响应到浏览器端,deleteZip将已生成的zip包删除节约服务器空间。
1)doZip将文件压缩为zip包
2)dowmZip将zip包响应到浏览器端
3)deleteZip将已生成的zip包删除节约服务器空间
3.4 演示效果
浏览器输入http://localhost:6060/export_demo/index?Homepage

输入用户名密码登录(账号admin,密码admin)
访问职工管理点击“导出Excel”
点击导出Excel将职工信息导出Zip包效果如下
打开压缩包可以查看导出的Excel
点击查看Excel
4 环境搭建
1.到数通畅联官网(http://www.agileai.com)资源分享中下载AEAI DP以及HotServer 下载对应的介质
2.使用Navicat创建数据库export,执行sql脚本export_mysql.sql
3.启动HotServer,将工程导入AEAI DP并部署于HotServer
4.浏览器访问http://localhost:6060/export_demo/index?Homepage登录后即可查看效果
5 附件及说明
附件为样例export_demo的源码,其中数据库脚本位于项目中sql文件夹下export_mysql.sql
文档及附件 下载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构