Как удалить пустой столбец в отчете Excel, сгенерированном JasperReports - PullRequest
0 голосов
/ 12 января 2012

Я использую 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);

Но пустой столбец все еще отображается. Есть ли способ удалить этот пустой столбец из отчета.

Ответы [ 2 ]

1 голос
/ 12 января 2012

Зависит от точного макета отчета.Эта опция хороша, когда у вас есть поля, которые не являются смежными.Но при более сложных макетах иногда встречаются столбцы, которые в основном пустые.

Самое быстрое решение, вероятно, состоит в том, чтобы лучше расположить отчет, чтобы избежать пробелов между полями.

0 голосов
/ 08 августа 2013

Если вы используете POI, он не работает.Я обошел его, используя JExcelApiExporter вместо JRXlsExporter.

JExcelApiExporter упакован в jxl банкуВ моем случае 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();
...