java excel 多sheet页_多张报表导出到一个多sheet页excel

业务需求:

通过勾选不同的报表名称,然后直接执行导出excel。并且这些报表需要统一导入到一个excel的多个sheet页中,并且对某些报表可能需要增加一些类似’已审核’之类的图片(展现时并没有这些图片或者文字)

解决方案:

润乾的报表展现后导出excel都是导到单独的excel中,将多个报表导入到同一个excel里可以使用api进行导出,通过创建excel的实例来决定是否导多个sheet.增加审核之类的图片只需要通过参数来控制一个图片文件或者字段即可.

实现步骤:

首先以两个报表为例,其中一张增加一个审核的图片,并通过参数来控制是否展现.

imgServlet?fileID=a76e84b8-7880-49c8-b8fb-041bc2f07a94

然后在api中将此参数传递到报表中即可。

对于导入到同一个excel中,将报表名称以字符串组形式接收到,然后只要在循环计算报表时不再次实例化 ExcelReport即可,具体代码如下:

String[] ragFileNameTemp = req.getParameterValues(“raqFileName”);

String[] ragFileName = ragFileNameTemp[0].split(“,”);

// 构建报表引擎计算环境

List list = new ArrayList();

for (int i = 0; i < ragFileName.length; i++) {

list.add(ragFileName[i]);

}

ExcelReport er = new ExcelReport();//ExcelReport实例化的位置很关键,会取决于是否是一个excel

for (int num = 0; num < list.size(); num++) {

Context cxt = new Context();

ReportDefine rd = null;

try {

rd = (ReportDefine) ReportUtils.read(list.get(num));

Engine engine = new Engine(rd, cxt); // 构造报表引擎

IReport iReport = engine.calc(); // 运算报表

// ReportUtils.exportToExcel(“D://aa.xls”, iReport, false);

er.export(ragFileName[num], iReport);

} catch (Exception e) {

}

最终将多张报表导入到一个excel,并且可以对导出的报表进行一些设置,例如增加图片等。

imgServlet?fileID=e5915e70-46e9-4539-990c-1da42c2a00ef

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值