java實現Excel壓縮成Zip匯出
阿新 • • 發佈:2019-02-12
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.2 功能擴充套件
1.擴充套件“匯出Excel”按鈕;在EmployeeManageList.jsp中新增按鈕,並擴充套件js方法指向Handler
2.建立匯出替換資料模板(模板是基於Freemaker語法進行變數替換);
3.3 資料拼接
1.構造匯出資料拼接,呼叫FileExportHelper-exportFile實現匯出Excel1)在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 下載對應的介質
3.啟動HotServer,將工程匯入AEAI DP並部署於HotServer
4.瀏覽器訪問http://localhost:6060/export_demo/index?Homepage登入後即可檢視效果
5 附件及說明
附件為樣例export_demo的原始碼,其中資料庫指令碼位於專案中sql資料夾下export_mysql.sql
文件及附件 下載