1. 概述
1.1 版本
報表伺服器版本 | 插件版本 | 功能變更 |
---|---|---|
11.0 | V1.0.0 | - |
11.0.10 | V1.1.16 | 1)插件名稱變更為:大數據集匯出插件 |
1.2 應用場景
大批量資料匯出的時候,會對伺服器、網路傳輸、資料庫造成一定的壓力。為了防止這樣的風險,FineReport 推出「大數據集匯出」的功能,可直接根據資料集結果進行匯出。
1.3 功能描述
「大數據集匯出」是一種佔用資源少且速度快的 Excel 匯出方式,無需前臺資料展示即可進行後臺流式匯出。
透過「大數據集匯出 Excel」插件,使用者可以自訂大數據集匯出事件,跨越報表計算直接取數匯出。
實現原理如下:
1)使用 SXSSFWorkbook 流式列匯出,速度快。
2)使用生產者消費者模式,一個執行緒用於取數,把資料列存在佇列中,另一執行緒讀取列匯出。
注:FineReport 設計器支援使用 JavaScript 代碼實現大數據集匯出 Excel,詳情請參見:JS 實現大數據集匯出 Excel 。
1.4 注意事項
1)此功能只支援關系型資料庫。且 SQL Server 資料庫需要把游標設定為伺服器游標。
2)此功能無法直接匯出 date/datetime 型空值,需要在 JDBC 資料連結的 URL 後新增 zeroDateTimeBehavior=convertToNull 參數,如果是 Oracle 資料無需加參數。
3)如果範本有多個參數,且匯出時需要設定參數,那麼這些參數都要設定,不要只設定其中幾個,否則會導緻資料無法匯出。
4)建議匯出的資料量不超過「1000W 列 * 20 欄」,資料量超大可能會導緻僅匯出部分資料。
5)匯出的 Excel 是透過 SQL 語句直接從資料庫中獲取的資料,並非報表中的資料,因此報表中設定的資料格式等無法被匯出。
6)此功能不支援行動端。
7)插件版本在 V1.1.10 及之後時,匯出超過 5s 時顯示進度條。
8)支援儲存過程,但是必須按下圖的方式呼叫:
2. 插件介紹
2.1 插件安裝
點選下載插件:大數據集匯出
設計器插件安裝方法參照:設計器插件管理
伺服器安裝插件方法參照:伺服器插件管理
2.2 插件簡介
插件安裝後,在元件事件/範本頁面事件中新增「大數據集匯出」事件型別,如下圖所示:
具體設定和功能如下表所示:
設定項 | 簡介 | 注意事項 |
---|---|---|
匯出檔案名稱 |
|
|
匯出格式 |
| - |
資料集 |
| - |
參數 |
|
|
匯出資料欄 |
|
|
3. 範例一:大數據集匯出固定參數值
3.1 設定範本
開啟%FR_HOME%\webapps\webroot\WEB-INF\reportlets\GettingStartedTW.cpt
編輯參數面板,新增一個「按鈕元件」,元件名稱和按鈕名稱修改為「匯出」,如下圖所示:
3.2 設定元件事件
選中「匯出」按鈕元件,點選「元件設定>事件」,新增「點選事件」,設定事件型別為「大數據集匯出」,如下圖所示:
「大數據集匯出」事件的具體設定如下圖所示:
匯出檔案名稱為「匯出範例1」
格式為「excel」
資料集為「ds1」
參數地區型別為「字串」,值為「華東」
匯出資料欄為「地區、銷售員、產品型別」
3.3 效果預覽
儲存範本,點選「分頁預覽」,點選「匯出按鈕」,即可匯出地區為「華東」的「匯出範例1.xlsx」檔案,如下圖所示:
4. 範例二:大數據集匯出動態參數值
4.1 設定範本
開啟%FR_HOME%\webapps\webroot\WEB-INF\reportlets\GettingStartedTW.cpt
編輯參數面板,新增一個「按鈕元件」,元件名稱和按鈕名稱修改為「匯出」,如下圖所示:
4.2 設定元件事件
選中「匯出」按鈕元件,點選「元件設定>事件」,新增「點選事件」,設定事件型別為「大數據集匯出」,如下圖所示:
「大數據集匯出 Excel」事件的具體設定如下圖所示:
匯出檔案名稱為「匯出範例2」
格式為「excel」
資料集為「ds1」
參數地區型別為「公式」,值為「$地區」,此時匯出Excel的參數值由另一個參數元件決定。
匯出資料欄為「地區、銷售員、產品型別」

儲存範本,點選「分頁預覽」。匯出 Excel 的參數值由下拉框元件的參數值決定。
下拉框元件選擇「華北」,即可匯出地區為「華北」的「匯出範例2.xlsx」檔案,如下圖所示: