zoukankan      html  css  js  c++  java
  • 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

    文档及附件 下载

  • 相关阅读:
    Spring Cloud Hystrix Dashboard的使用 5.1.3
    Spring Cloud Hystrix 服务容错保护 5.1
    Spring Cloud Ribbon 客户端负载均衡 4.3
    Spring Cloud 如何实现服务间的调用 4.2.3
    hadoop3.1集成yarn ha
    hadoop3.1 hdfs的api使用
    hadoop3.1 ha高可用部署
    hadoop3.1 分布式集群部署
    hadoop3.1伪分布式部署
    KVM(八)使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机
  • 原文地址:https://www.cnblogs.com/agileai/p/6261977.html
Copyright © 2011-2022 走看看