2012-01-12 5 views
0

iReport를 사용하여 JasperReports를 디자인하고 있습니다. 엑셀 보낸 보고서 나는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); 

일을 시도하지만 빈 열이 계속 표시지고, 여분의 빈 열이 포함되어 있습니다. 이 빈 열을 보고서에서 제거 할 수 있습니까?

답변

1

정확한 보고서 레이아웃에 따라 다릅니다. 이 옵션은 인접하지 않은 필드가있을 때 유용합니다. 그러나 더 복잡한 레이아웃의 경우 가끔 비어있는 열이 있습니다.

가장 빠른 해결책은 필드 간의 간격을 피하기 위해 보고서를 더 잘 레이아웃하는 것입니다.

+0

에 나는 어떤 기사에서,이 때문에 – n92

+0

예, 당신이 사용하는 옵션이 유효하고 유용 설계하면서 그리드를 사용하지 않는 것으로 나타났습니다 ... 모든 경우에 충분하지는 않습니다. 레이아웃을 수동으로 수정하면 항상 문제를 해결할 수 있습니다 (단, 더 많은 작업이 필요할 수 있습니다). – mdahlman

+0

예, 귀하의 답변, 답장을 보내 주셔서 감사합니다. – n92

0

POI를 사용중인 경우 작동하지 않습니다. JRXlsExporter 대신 JExcelApiExporter를 사용하여 주위를 둘러 봤습니다.

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(); 
관련 문제