在web項目中常見的一種場景就是將文件導出為Excel,但是當需要導出多個Excel時,使用者將頻繁操作,這樣就嚴重降低了項目的友好交互性以及易用性,那麼怎麼才能優雅的解決這個問題呢?筆者今天分享將Excel導出後並壓縮成zip包響應到浏覽器端,希望對大家有所幫助。
使用AEAI DP創建樣例工程export_demo,創建測試數據表employee,使用DP預置的樣例功能快速創建單表操作模型,擴展添加導出按鈕,擴展創建導出替換的模板EmployeeInfos.ftl,實現導出Excel的FileExportHelper-exportFile以及壓縮的ZipHelper-doZip,dowmZip,deleteZip。
1.創建樣例工程export_demo,並初始化數據庫(具體可參見AEAI DP開發平台技術手冊,下載鏈接http://www.agileai.com/portal/website/01/res-share.ptml);
2.創建業務數據表,初始化sql;
3.創建單表操作模型快速生成代碼,(參見 AEAIDP開發平台技術手冊),在此不做過多贅述;
1.擴展“導出Excel”按鈕;
在EmployeeManageList.jsp中添加按鈕,並擴展js方法指向Handler
2.創建導出替換數據模板(模板是基於Freemaker語法進行變量替換);
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包刪除節約服務器空間
浏覽器輸入http://localhost:6060/export_demo/index?Homepage
輸入用戶名密碼登錄(賬號admin,密碼admin)
訪問職工管理點擊“導出Excel”
點擊導出Excel將職工信息導出Zip包效果如下
打開壓縮包可以查看導出的Excel
點擊查看Excel
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登錄後即可查看效果
附件為樣例export_demo的源碼,其中數據庫腳本位於項目中sql文件夾下export_mysql.sql
文檔及附件 下載