要看下这个拆分你那是怎么拆分,比如一个报表中数据量大,想每个 excel 里导出一部分数据,那么可以在报表中增加两个参数,一个 begin,一个 end,在报表数据集参数那里有个起始行和结束行设置,那里分别设上这两个参数,这样报表动态给这两个参数传值就能每次取不同的数据。 然后批量导出要通过 api 去做,在设计器安装目录 D:\report2018\report\doc\zh 下有个程序员教程在第 10 章 10.1 中有相关代码可以通过 api 计算报表并将保存保存成 excel,这里涉及到产分,先做个循环,每次循环动态传递 begin 和 end 的值,循环计算生成多个 excel 到某个目录里,然后 java 程序中有命令可以将目录打成 zip 文件,这样就可以了。具体代码可以参考文档中的 api 计算报表,然后在搜下 java 打 zip 的方法就行。
要看下这个拆分你那是怎么拆分,比如一个报表中数据量大,想每个 excel 里导出一部分数据,那么可以在报表中增加两个参数,一个 begin,一个 end,在报表数据集参数那里有个起始行和结束行设置,那里分别设上这两个参数,这样报表动态给这两个参数传值就能每次取不同的数据。
然后批量导出要通过 api 去做,在设计器安装目录 D:\report2018\report\doc\zh 下有个程序员教程在第 10 章 10.1 中有相关代码可以通过 api 计算报表并将保存保存成 excel,这里涉及到产分,先做个循环,每次循环动态传递 begin 和 end 的值,循环计算生成多个 excel 到某个目录里,然后 java 程序中有命令可以将目录打成 zip 文件,这样就可以了。具体代码可以参考文档中的 api 计算报表,然后在搜下 java 打 zip 的方法就行。
谢谢您的答复,我还有一个问题,我这边是打算通过 IReport iReport = enging.calc() 获取到报表之后 再根据报表数据中某个字段进行业务分组,把分完之后的导出 excel 再上传到服务器,之后再进行压缩。支持这种获取到 IReport 对象之后再处理数据吗
这个 IReport 就是计算后的报表对象,也就是最终的报表结果,他可以通过行列去循环去控制,可以获取数据,更改数据,但是这个比较难获取到分组信息。
如果你这个报表是按照地区进行分组,然后要求每个地区生成一个 excel,可以将地区作为一个条件传入,然后在程序中按照地区循环,这样循环计算生成 excel 就能达到要求