java 實現Excel壓縮成Zip導出

1 概述

在web項目中常見的一種場景就是將文件導出爲Excel,可是當須要導出多個Excel時,使用者將頻繁操做,這樣就嚴重下降了項目的友好交互性以及易用性,那麼怎麼才能優雅的解決這個問題呢?筆者今天分享將Excel導出後並壓縮成zip包響應到瀏覽器端,但願對你們有所幫助。mysql

2 實現思路

使用AEAI DP建立樣例工程export_demo,建立測試數據表employee,使用DP預置的樣例功能快速建立單表操做模型,擴展添加導出按鈕,擴展建立導出替換的模板EmployeeInfos.ftl,實現導出Excel的FileExportHelper-exportFile以及壓縮的ZipHelper-doZip,dowmZip,deleteZip。web

3 實現步驟

3.1 基礎準備

1.建立樣例工程export_demo,並初始化數據庫(具體可參見AEAI DP開發平臺技術手冊,下載連接http://www.agileai.com/portal/website/01/res-share.ptml);sql

2.建立業務數據表,初始化sql;數據庫

3.建立單表操做模型快速生成代碼,(參見 AEAIDP開發平臺技術手冊),在此不作過多贅述;瀏覽器

3.2 功能擴展

1.擴展「導出Excel」按鈕;服務器

在EmployeeManageList.jsp中添加按鈕,並擴展js方法指向Handlerjsp

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包刪除節約服務器空間
spa

3.4 演示效果

瀏覽器輸入http://localhost:6060/export_demo/index?Homepageblog

輸入用戶名密碼登陸(帳號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

文檔及附件 下載

相關文章
相關標籤/搜索