在web項目中常見的一種場景就是將文件導出爲Excel,可是當須要導出多個Excel時,使用者將頻繁操做,這樣就嚴重下降了項目的友好交互性以及易用性,那麼怎麼才能優雅的解決這個問題呢?筆者今天分享將Excel導出後並壓縮成zip包響應到瀏覽器端,但願對你們有所幫助。mysql
使用AEAI DP建立樣例工程export_demo,建立測試數據表employee,使用DP預置的樣例功能快速建立單表操做模型,擴展添加導出按鈕,擴展建立導出替換的模板EmployeeInfos.ftl,實現導出Excel的FileExportHelper-exportFile以及壓縮的ZipHelper-doZip,dowmZip,deleteZip。web
1.建立樣例工程export_demo,並初始化數據庫(具體可參見AEAI DP開發平臺技術手冊,下載連接http://www.agileai.com/portal/website/01/res-share.ptml);sql
2.建立業務數據表,初始化sql;數據庫
3.建立單表操做模型快速生成代碼,(參見 AEAIDP開發平臺技術手冊),在此不作過多贅述;瀏覽器
1.擴展「導出Excel」按鈕;服務器
在EmployeeManageList.jsp中添加按鈕,並擴展js方法指向Handlerjsp
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包刪除節約服務器空間
spa
瀏覽器輸入http://localhost:6060/export_demo/index?Homepageblog
輸入用戶名密碼登陸(帳號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
文檔及附件 下載