1. 概述
1.1 應用場景
一張報表可以根據不同的條件統計出不同的數據結果,若您希望将每一種條件下的結果都保存下來如導出成 Excel 文件至磁盤,您可以在後台調用 FineReport 的導出接口 ExcelExporter 将每種情況下的結果批量保存起來。
1.2 實現思路
通過程序批量導出結果至 Excel,首先是遍曆讀取 para.txt 中的每組參數值,将該參數值組合傳入模板進行計算,然後将結果導出 Excel,循環直至最後一條參數組合。
2. 操作步驟
下面以%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\Parameter\Parameter.cpt這張報表爲例,實現後台批量導出 Excel。
2.1 參數值組合
由於不同參數組合有不同計算結果,因此需要獲得所有可能的參數值組合,可以來源於數據庫中某個表,或者某個文件。
将參數值組合保存在文本文件如 para.txt 中,将文件放到%FR_HOME%\webapps\webroot\WEB-INF\目錄下,文件的格式如下:
如果只有一個參數,格式如下圖所示:
如果模板有兩個參數,參數和參數值之間需要用逗号隔開,格式如下圖所示:
2.2 批量導出程序
完整代碼:https://code.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/io/ExportBatch.java
注1:在使用 API 導出不同類型文件時,需要導入的 JAR 包如下:
FineReport默認 JAR 包
%FR_HOME%\webroot\WEB-INF\lib目錄下的sqlite-jdbc.jar
%Tomcat_HOME%\lib目錄下的servlet-api.jar
%JAVA_HOME%\jdk\lib目錄下的tools.jar
注2:如果導出的 Excel 只有模板的格式,卻沒有數據,請确認上述代碼段中關於定義報表環境的代碼是否正确或者存在,如果不正确或者不存在,則會導緻 Excel 中沒有數據。
上述爲示例程序,其中報表運行環境與模板名稱等需要根據您實際環境進行修改。
啓動設計器,編譯運行該程序您便可以得到結果,下載目錄下将生成 2 個 Excel 文件,至此批量導出便成功了。