本例以一个实例来展现java报表软件FineReport离线填写报表功能。
下图为一个雇员统计表:
http://www.finereport.com/forumimages/lxtbsm1.jpg
报表设计器里的报表设计如下图:
http://www.finereport.com/forumimages/lxtbsm2.jpg
模板中报表填报属性如下:
http://www.finereport.com/forumimages/lxtbsm3.jpg
保存该模板到C:\FineReport6.2\WebReport\WEB-INF\reportlets目录下,命名为WorkBook1.cpt。
依次点击FineReport文件à输出àExcel格式à原样导出,得下图的.xls文件:
http://www.finereport.com/forumimages/lxtbsm4.jpg
填写雇员信息如下:
http://www.finereport.com/forumimages/lxtbsm5.jpg
将其另存,路径为C:\WorkSheet1.xls.。
运行如下导入程序即可将数据导入WEB报表数据库中,注意此处要特别留心程序中几个路径是否正确。
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 {
public void exe() {
// 配置系统运行环境,可以localEnv remoteEnv
com.fr.base.dav.LocalEnv env = new LocalEnv("C:\\FineReport6.5\\WebReport\\WEB-INF");
try {
// 设置
FRContext.setCurrentEnv(env);
// 读取模板
ReportTemplate tpl = env.readTemplate("WorkBook1.cpt");
// 读取Excel文件
FileInputStream file = new FileInputStream("C:\\WorkSheet1.xls");
// 调用方法,具体如下
ExcelImporter.importExcel(tpl, new HashMap(), file);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args)
{
TestUtils testUtils = new TestUtils();
testUtils.exe();
}
}
查看报表的数据库中数据见下图:
http://www.finereport.com/forumimages/lxtbsm6.jpg
至此离线填报成功。
文章转自:http://blog.vsharing.com/fanfanzheng/A1444756.html