gpt4 book ai didi

java - Jasper 和 .xlsx 的内容消息不可读

转载 作者:行者123 更新时间:2023-11-30 03:19:41 25 4
gpt4 key购买 nike

我有以下代码将 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 仍然显示内容不可读

最佳答案

我在使用 XLSX(但不是 xls)导出器时遇到了同样的问题

  1. 没有数据时,报表不打印任何页面
  2. 数据列表为空。

检查您的数据列表并将报告设置为打印“无页面”以外的内容(例如,没有数据部分或所有部分都没有详细信息)。

关于java - Jasper 和 .xlsx 的内容消息不可读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31649772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com