博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多张报表导出到一个多sheet页excel
阅读量:6931 次
发布时间:2019-06-27

本文共 1168 字,大约阅读时间需要 3 分钟。



业务需求:

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

解决方案:

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

实现步骤:

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

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

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

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

  String[] ragFileName = ragFileNameTemp[0].split(“,”);
  // 构建报表引擎计算环境
  List<String> list = new ArrayList<String>();
  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,并且可以对导出的报表进行一些设置,例如增加图片等。

转载于:https://www.cnblogs.com/shiGuangShiYi/p/10117522.html

你可能感兴趣的文章
Js 冒泡事件阻止
查看>>
总结jQuery选择器
查看>>
Java的super调用案例: super.getClass()返回的是子类自己
查看>>
NYOJ 709(ZZULIOJ1481) 异 形 卵
查看>>
PHP编译支持mysqli
查看>>
使用DLL进行不同语言之间的调用(转)
查看>>
android:scaleType属性
查看>>
Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入? (转)
查看>>
UNABLE TO PURGE A RECORD(二)
查看>>
【转载】注释AFX_MSG_MAP,AFX_DATA,AFX_DATA_MAP , Afx_MSG等宏不能删除
查看>>
Spring Bean范围 示例
查看>>
What is a UINavigationTransitionView
查看>>
Solr DIH以Mysql为数据源批量创建索引
查看>>
有一个NSStirng类型,retain时尚宣言name财产setter内部方法的每一行代码的作用?
查看>>
一个非常不错的gridview 风格
查看>>
安装ejabberd2并配置MySQL为其数据库
查看>>
第1章 游戏之乐——高效率地安排见面会
查看>>
PHP 错误与异常 笔记与总结(13 )自定义异常类
查看>>
Java知多少(完结篇)
查看>>
MFC带标题栏的窗口和不带标题栏的窗口最大化
查看>>