java使用jasperreport导出在tomact可以使用,但在websphere不行,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java使用jasperreport导出在tomact可以使用,但在websphere不行,相关的知识,希望对你有一定的参考价值。
E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: 应用程序 ASAIntranet2_war 中 servlet /PreviewReport.jsp 的某一服务方法创建了未捕获到的异常。创建的异常:com.ibm.websphere.servlet.error.ServletErrorReport: java.lang.AbstractMethodError: org/w3c/dom/Node.getTextContent()Ljava/lang/String;
java.lang.AbstractMethodError: org/w3c/dom/Node.getTextContent()Ljava/lang/String;
JasperReports xlsx 导出错误 - 内容不可读 - 为啥?
【中文标题】JasperReports xlsx 导出错误 - 内容不可读 - 为啥?【英文标题】: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。 【参考方案1】:试试这个,
JRXlsxExporter jrXlsxExporter=new JRXlsxExporter();
jrXlsxExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
jrXlsxExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "export.xlsx");
jrXlsxExporter.exportReport();
【讨论】:
以上是关于java使用jasperreport导出在tomact可以使用,但在websphere不行,的主要内容,如果未能解决你的问题,请参考以下文章
JasperReports - 导出到 Excel 时无法识别数值
jasperreports-server中的示例报表是怎么制作的