zoukankan      html  css  js  c++  java
  • 多张报表导出到一个多sheet页excel

    

    业务需求:

    通过勾选不同的报表名称,然后直接执行导出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,并且可以对导出的报表进行一些设置,例如增加图片等。


  • 相关阅读:
    关于s3c6410 实现opengl的分析
    ARM9和ARM11的区别
    ARM9E 和 cortex a8 NEON 优化效率的对比
    armv6 的特点
    AMBA总线新一代标准AXI分析和应用
    linux下如何模拟按键输入和模拟鼠标
    opengl es 学习
    Jlink初使用
    Allegro 制作金手指封装
    世界之窗浏览器设置google搜索[转]
  • 原文地址:https://www.cnblogs.com/shiGuangShiYi/p/10117522.html
Copyright © 2011-2022 走看看