本文提供一個基於ADF Face組件開發樣例工程,工程的實現過程分爲3個部分以應對Excel導出開發中常見的處理。瀏覽器
1.空模版文件下載:將Excel文件視爲普通文件提供下載操做。ide
2.數據文件輸出,將數據內容輸出爲Excel文件,目標文件盡在服務端內存中存在,這種方式須要對Excel文件的內容處理,須要引入響應的類庫。spa
3.模版文件填充數據後下載,基於服務端的物理文件爲模板,將業務數據填入約定位置後提供下載,在實現方面須要爲工做簿對象指定源文件輸入流,並完成後續內容處理。orm
實現的基本思路,由ADF Faces組件觸發文件下載事件,將輸出流引致ManagedBean的事件處理方法中,由ManagedBean實現找到目標文件,組織數據內容,並輸出文件流數據,瀏覽器客戶端接到文件流後會完成剩餘的下載過程。:對象
第一階段:空模版文件下載
blog
新創建工程名爲:DemoExcelExp事件
建立一個JSP頁面。內存
拖入一個按鈕資源
爲按鈕增長客戶端事件:文件下載。開發
操做以後頁面的代碼內容中,增長了沒有設定屬性的按鈕事件標籤。
在「結構」視圖中能夠選中事件節點,並在屬性Tab面板設定下載文件類型和文件名稱。
點擊「Method」輸入框旁邊的下箭頭,能夠在IDE的輔助下創建管理Bean,並生成下事件的處理方法。
操做完成後,JSP頁面的代碼爲
如今能夠準備一個目標模版文件,將其放置在管理Bean源代碼所在的文件夾內便可。模板文件有1行數據,分別是Demo1,Demo2,Demo3,Demo4
注意:這裏須要檢查JDeveloper的工程設定,確保編譯過程會將Excel文件一併拷貝到輸出目錄中。
修改管理Bean的事件處理代碼,經過類加載資源的方式找到並讀取模板文件,而後將文件內容輸出至事件導入的輸出流對象中。
在JSP頁面右鍵選擇「Run」運行頁面。
點擊「模板下載」按鈕,便可下載以前的模板文件了。
第二階段:數據文件輸出
加入第二個按鈕:
輸出數據文件,須要涉及到對Excel文件內容的處理,須要引入相應的類庫,此處引用POI庫完成Excel內容處理。
修改管理Bean中的事件處理方法。
而後便可執行看效果了,點擊第二個按鈕所下載的文件,就是由管理Bean建立並輸出的內容了。
第三階段:模版文件填充數據後下載
增長第三個按鈕
修改管理Bean的事件處理代碼
運行看到下載的文件有2行內容,第一行是模板默認寫入的內容,第二行是由程序控制寫入的內容。