JXL生成的excel文件+JAVA文件下載功能

一個需求,用戶點擊下載按鈕,將指定的excel的報表模板使用數據庫數據渲染,然後下載到用戶本地;

通常而言,對於一個文件的下載,可以有以下幾種方式:

window.location.href=文件名稱URL全路徑;

window.open(文件名稱URL全路徑);

這種方式不友好的地方在於服務器的目錄結構直接暴露出去,而且在IE下很有可能會報錯權限問題等,甚至firefox中會觸發那個年代久遠而依然沒有解決的bug。所以這裏不推薦。

 

對於jxl生成excel文件,有兩種方式,一種是生成文件保存到磁盤,另一種是直接保存到輸出流中。

對於上述需求,如果生成的文件保存到磁盤,隨着系統運行,磁盤會主鍵被佔用,需要手動去刪除。由於文件都較小,所以這裏採用第二種方式,直接在內存中生成文件,然後提供給用戶下載的時候response回去。

 

看一個例子:

用於響應下載請求的controller

 

其中調用到的文件服務

其中的重點就在於

這句話指定了寫入的數據到輸出流中。

 

頁面調用很簡單

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章