【发布时间】:2015-10-17 10:37:25
【问题描述】:
我有以下将 xlsx 导出到流的代码。它有效,我得到了 xlsx 文件,但它说 excel 在“...”中找到了不可读的内容,并询问我是否要恢复工作簿的内容。当我这样做时,我会根据需要在正确的位置获得包含正确数据的 xlsx 文件。如何避免或抑制此错误?
try {
ServletOutputStream servletOutputStream = resp.getOutputStream();
JasperReport jasperReport = JasperCompileManager
.compileReport(path
+ "Template/Instructions_with_CHGFOX_Template/testeXlsx2.jrxml");
JasperPrint print = JasperFillManager.fillReport(jasperReport,
parameters, new JRBeanCollectionDataSource(list));
JRXlsxExporter xlsxExporter = new JRXlsxExporter();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
xlsxExporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
xlsxExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,
title + ".xlsx");
xlsxExporter.setParameter(JRExporterParameter.OUTPUT_STREAM,
servletOutputStream);
xlsxExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outStream);
xlsxExporter.exportReport();
resp.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
resp.setHeader("Content-Disposition", "attachment; filename="
+ title + ".xlsx");
servletOutputStream.write(outStream.toByteArray());
resp.getOutputStream().write(outStream.toByteArray());
resp.getOutputStream().flush();
resp.getOutputStream().close();
resp.flushBuffer();
} catch (JRException e) {
e.printStackTrace();
}
使用 JasperReports v4.7.1
[更新] 当没有数据类型时尝试以下选项 无页、空白页、所有部分 无详细信息和无数据部分 他们都没有工作
还尝试将内容添加到我的 web.xml
<mime-mapping>
<extension>xlsx</extension>
<mime-type>application/vnd.openxmlformats- officedocument.spreadsheetml.sheet</mime-type>
</mime-mapping>
终于尝试关闭我的 outStream 也没有用,excel 仍然显示不可读的内容
【问题讨论】:
标签: java stream jasper-reports xlsx