1. 程式人生 > >java實現Excel壓縮成Zip匯出

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


文件及附件 下載