本例以一個實例來展示FineReport報表工具離線填寫報表功能。html
下圖爲一個僱員統計表:java
http://www.finereport.com/forumimages/lxtbsm1.jpg數據庫
FineReport報表設計器裏的報表設計以下圖:工具
http://www.finereport.com/forumimages/lxtbsm2.jpgspa
模板中報表填報屬性以下:設計
http://www.finereport.com/forumimages/lxtbsm3.jpghtm
保存該模板到C:\FineReport6.2\WebReport\WEB-INF\reportlets目錄下,命名爲WorkBook1.cpt。blog
依次點擊FineReport文件à輸出àExcel格式à原樣導出,得下圖的.xls文件:rem
http://www.finereport.com/forumimages/lxtbsm4.jpgget
填寫僱員信息以下:
http://www.finereport.com/forumimages/lxtbsm5.jpg
將其另存,路徑爲C:\WorkSheet1.xls.。
運行以下導入程序便可將數據導入數據庫中,注意此處要特別留心程序中幾個路徑是否正確。
import java.io.FileInputStream;
import java.util.HashMap;
import com.fr.base.FRContext;
import com.fr.base.dav.LocalEnv;
import com.fr.report.ReportTemplate;
import com.fr.report.io.ExcelImporter;
public class TestUtils {
publicvoid exe() {
//配置系統運行環境,能夠localEnvremoteEnv
com.fr.base.dav.LocalEnvenv = new LocalEnv("C:\\FineReport6.5\\WebReport\\WEB-INF");
try{
//設置
FRContext.setCurrentEnv(env);
//讀取模板
ReportTemplatetpl = env.readTemplate("WorkBook1.cpt");
//讀取Excel文件
FileInputStreamfile = new FileInputStream("C:\\WorkSheet1.xls");
//調用方法,具體以下
ExcelImporter.importExcel(tpl,new HashMap(), file);
}catch (Exception e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
publicstatic void main(String[] args)
{
TestUtilstestUtils = new TestUtils();
testUtils.exe();
}
}
查看FineReport報表中數據見下圖:
http://www.finereport.com/forumimages/lxtbsm6.jpg
至此離線填報成功。