二次开发、java后台批量导出
一张报表可以根据不同的条件统计出不同的数据结果,若您希望将每一种条件下的结果都保存下来如导出成Excel文件至磁盘,您可以在后台调用FineReport的导出接口ExcelExporter将每种情况下的结果批量保存起来。以下我们就这种需求详细介绍其制作过程。
1. 实现原理
通过程序批量导出结果至excel,首先是遍历读取para.txt中的每组参数值,将该参数值组合传入模板进行计算,然后将结果导出excel,循环直至最后一条参数组合。
2. 实现步骤
2.1 数据集定义
每个数据集中都通过参数进行数据过滤。数据集ds1查询SQL为:
SELECT * FROM SALES_COST where销售员 = '${saler}'输入默认值陈羽
ds2查询SQL为:
SELECT * FROM SALES_BASIC where地区 = '${area}' and 销售员 = '${saler}'输入默认值saler为:陈羽,area为:江苏
2.2 模板制作
如下图多数据源报表ExportBatch.cpt
设计器预览,使用默认参数,并可以查询出对应地区相应销售员的销售记录
若切换条件,则查询结果将改变,最终我们希望将所有结果统一导出至excel文件。
2.3 参数值组合
由于我们需要对模板输入参数对应的值才能够计算得到最终的结果,因此我们需要所有可能的参数值组合,可以来源于数据库中某个表,或者某个文件。这里我们假设所需的参数值组合保存在WebReport\WEB-INF\para.txt中。如下图新建para.txt
2.4 批量导出程序
完整代码如下:
上述为示例程序,其中报表运行环境与模板名称等需要根据您实际环境进行修改。编译运行该程序您便可以得到结果,在E盘根目录下将生成3个Excel文件,如下
内容分别为
这样批量导出便成功了。
返回顶部