【问题标题】:How to remove empty column in excel report generated by JasperReports如何删除 JasperReports 生成的 Excel 报告中的空列
【发布时间】:2013-08-09 00:16:28
【问题描述】:

我正在使用 iReport 来设计 JasperReports。 Excel 导出的报告包含额外的空列,我尝试过

<property name="net.sf.jasperreports.export.xls.remove.empty.space.between.columns" value="true"/> 

excelExporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE);

但空列仍在显示。有没有办法从报告中删除这个空列。

【问题讨论】:

    标签: java jasper-reports ireport export-to-excel


    【解决方案1】:

    这取决于确切的报告布局。当您有不相邻的字段时,该选项非常有用。但是对于更复杂的布局,有时会有大部分是空白的列。

    最快的解决方案可能是更好地布局报表以避免字段之间的任何空间。

    【讨论】:

    • 我从一些文章中发现,是因为在设计时没有使用网格
    • 是的,您使用的选项是有效且有用的......但在所有情况下都不够。手动修改布局应该总能解决它(但可能需要更多的工作)。
    【解决方案2】:

    如果您使用的是 POI,则它不起作用。我使用 JExcelApiExporter 而不是 JRXlsExporter 绕过它。

    JExcelApiExporter 封装在一个 jxl jar 中。在我的例子中 jxl-2.6.10 用于 jasperreports 4.0.2

            // Ejecucion de jasper report por ResultSet
            ResultSet rs = rsvp.sql.MyConnection.getConnection().execQuery(m_query);
            JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(rs);
    
            // Parametros del reporte
            m_param.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE);
    
            JasperPrint print = JasperFillManager.fillReport(m_reportFileName, m_param, resultSetDataSource);
    
            // Crea Excel Exporter
            //JRExporter exporter = new JRXlsExporter();  // Este es de POI, no funciona bien
            JRExporter exporter = new JExcelApiExporter();
    
            // Configura el exporter
            exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, outFileName);
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
            exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE); 
            exporter.setParameter(JRXlsExporterParameter.IGNORE_PAGE_MARGINS, Boolean.TRUE); 
            exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE); 
            exporter.setParameter(JRXlsExporterParameter.IS_IGNORE_GRAPHICS, Boolean.TRUE); 
            exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE);
            exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
    
            // Exporta a Excel
            exporter.exportReport();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多