【问题标题】:JasperReports xlsx export error - Unreadable content - why?JasperReports xlsx 导出错误 - 内容不可读 - 为什么?
【发布时间】:2013-02-08 02:00:27
【问题描述】:

每当我的交叉表报告的结果超过 702 列(ZZ 列)时,就会从 Excel 收到“不可读的内容”错误。当少于此列数时 - 没有错误。有限制吗? XLSX 应该可以处理 16,000 多列。

我们正在使用 JasperReports v4.0.1 和 POI 3.6。我已经尝试并使用 JasperReports v4.7 和 POI 3.7 重新创建了同样的问题。

感谢任何帮助或见解。

导出代码:

JRXlsxExporter xlsExporter = new JRXlsxExporter();

File fileP = new File(_workdir + report_name + ".jrprint");
JasperPrint jasperPrint = (JasperPrint)
JRLoader.loadObject(fileP);

xlsExporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE);
xlsExporter.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN, Boolean.TRUE);

xlsExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
xlsExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, _outputName);
System.out.println("Exporting Excel Report to " + _outputName);
xlsExporter.exportReport();
System.out.println("Export Complete.");

【问题讨论】:

  • 您收到任何错误吗?结果文件真的生成了吗?
  • 另外,您可能希望提高 Jasper 的日志级别,以查看 POI 或 Jasper 本身是否抛出任何错误。
  • 报告生成或导出期间没有错误。仅在尝试打开 Excel 文件本身时。该文件已创建,但它给出了一个不可读的内容错误,并且其中几乎没有实际数据。
  • 我应该添加我们正在将输出写入文件,然后将文件通过电子邮件发送给请求者。这没有显示在浏览器中。
  • 马特,简化您要完成的工作。 (1) 首先在 iReport 中导出到 XLSX。 (2) 从 JasperReports 教程中获取一个简单的示例。 (3) 增加复杂性,直到获得空/损坏的 Excel 文件。 (4) 看看能不能改用CSV格式——大部分老板应该想到“电子表格”的时候却想到了“Excel”;对于不需要格式化的输出,CSV 通常优于 XSLX。

标签: java jasper-reports xls xlsx


【解决方案1】:

试试这个,

JRXlsxExporter jrXlsxExporter=new JRXlsxExporter();
jrXlsxExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
jrXlsxExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "export.xlsx");
jrXlsxExporter.exportReport();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 2013-01-29
    • 2015-10-17
    • 1970-01-01
    相关资源
    最近更新 更多