使用POI时的错误低级错误
rg.apache.poi.openxml4j.exceptions.OpenXML4JException: The part /docProps/core.xml fail to be saved in the stream with marshaller org.apache.poi.openxml4j.opc.internal.marshallers.ZipPackagePropertiesMarshaller@38bcdeda
at org.apache.poi.openxml4j.opc.ZipPackage.saveImpl(ZipPackage.java:482)
查了半天,也没有可以匹配的答案,最后发现:
错误:
response.setHeader("content-Disposition","attachment,filename=report.xlsx");
把;写成了,
正确:
response.setHeader("content-Disposition","attachment;filename=report.xlsx");
后记: POI的构造方法要使用一个已有表格文件时,传入InputStream流与传入文件路径效果一样.
String excel = request.getSession().getServletContext().getRealPath("template") + File.separator + "report_template.xlsx";
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File(excel)));
XSSFWorkbook workbook = new XSSFWorkbook(excel);