java excel压缩导出_java实现Excel压缩成Zip导出

本文介绍了一种在Java项目中优雅地处理多个Excel导出的方法,通过将Excel文件压缩成Zip包,然后直接响应到浏览器,提高了用户体验。文章详细阐述了实现思路,包括扩展导出按钮、创建数据模板、数据拼接和压缩文件的过程,并提供了环境搭建的步骤和样例源码下载链接。
摘要由CSDN通过智能技术生成

1 概述

在web项目中常见的一种场景就是将文件导出为Excel,但是当需要导出多个Excel时,使用者将频繁操作,这样就严重降低了项目的友好交互性以及易用性,那么怎么才能优雅的解决这个问题呢?笔者今天分享将Excel导出后并压缩成zip包响应到浏览器端,希望对大家有所帮助。

2 实现思路

使用AEAI DP创建样例工程export_demo,创建测试数据表employee,使用DP预置的样例功能快速创建单表操作模型,扩展添加导出按钮

cd1402cc0e9cf6e9a6140e2714db9842.png,扩展创建导出替换的模板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;

296af9f50e8165146c93a5d26604937f.png

3.创建单表操作模型快速生成代码,(参见 AEAIDP开发平台技术手册),在此不做过多赘述;

3.2 功能扩展

1.扩展“导出Excel”按钮;

在EmployeeManageList.jsp中添加按钮,并扩展js方法指向Handler

54fce6373f864c6722ea3753d41a3c60.png

2.创建导出替换数据模板(模板是基于Freemaker语法进行变量替换);

5ca796398376af9df0e6406b3f48d844.png

3.3 数据拼接

1.构造导出数据拼接,调用FileExportHelper-exportFile实现导出Excel

1)在EmployeeManageListHandler中扩展方法exportExcelFile拼接导出Excle用到的数据

02fb49a0f018012af68418651ee6305a.png

2)调用FileExportHelper-exportFile实现利用IO流将Excel导出至固定目录

a42e555c7ec5c914af51b020b8ea6d0c.png

2.调用ZipHelper-doZip将文件压缩为zip包,dowmZip将zip包响应到浏览器端,deleteZip将已生成的zip包删除节约服务器空间。

1)doZip将文件压缩为zip包

e099ee101acfa26487cd328f6233840e.png

2)dowmZip将zip包响应到浏览器端

596fe594643d65314927c341273cbaf1.png

3)deleteZip将已生成的zip包删除节约服务器空间

ce6cf2c7f469f27379c877de0bb4c28f.png

3.4 演示效果

浏览器输入http://localhost:6060/export_demo/index?Homepage

0f9df169903f9942b9a064e23a937492.png

输入用户名密码登录(账号admin,密码admin)

fb1037bfc7abfc12ee995823e3ea954b.png

访问职工管理点击“导出Excel”

9f886ccbcd5b14788773092c4a07a174.png

点击导出Excel将职工信息导出Zip包效果如下

c5a606fa295efcefdfe667c1ce9710a0.png

ecb042ea34486739880c0b7f17fd2d58.png

打开压缩包可以查看导出的Excel

57a86938f3f019bdee3d7f1bccec36f9.png

点击查看Excel

569548632696cf81a66556d119e04ded.png

4 环境搭建

1.到数通畅联官网(http://www.agileai.com)资源分享中下载AEAI DP以及HotServer 下载对应的介质

2.使用Navicat创建数据库export,执行sql脚本export_mysql.sql

3.启动HotServer,将工程导入AEAI DP并部署于HotServer

ff18f5c08f04ad31be4af755e7584bb8.png

4.浏览器访问http://localhost:6060/export_demo/index?Homepage登录后即可查看效果

f525496789d15380573f8cf04ffd321c.png

5 附件及说明

附件为样例export_demo的源码,其中数据库脚本位于项目中sql文件夹下export_mysql.sql

e61533877ed40d800b78977758cc9184.png

文档及附件 下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值