我的 java 应用程序在启用下载 XLSX 文件时遇到问题。
按照此链接中显示的示例:使用 Apache POI 创建 excel 文件供用户下载,我尝试了两种配置来下载/保存电子表格。
首先使用 .XLS 文件:
response.setContentType("application/ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=testxls.xls");
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue("Some text");
ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
wb.write(outByteStream);
byte[] outArray = outByteStream.toByteArray();
OutputStream outStream = response.getOutputStream();
outStream.write(outArray);
outStream.flush();
这有效。
然后我尝试使用 XLSX 文件:
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=testxls.xlsx");
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet();
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("Some text");
ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
wb.write(outByteStream);
byte[] outArray = outByteStream.toByteArray();
OutputStream outStream = response.getOutputStream();
outStream.write(outArray);
outStream.flush();
当我尝试此操作时,我收到消息:“Excel 在“testxls.xlsx”中发现不可读的内容。您想恢复该工作簿的内容吗? ...."
尽管有此消息,电子表格仍可以正常打开,但我真的想删除此消息。
有任何想法吗?
我知道这是一个非常古老的(6 年),但我在更新一些旧代码以从 HSSF 移动到 XSSF 后来到这里,我的问题是缺少 jar xmlbeans-3.1.0.jar。错误已写入 TomCat 本地主机日志“java.lang.ClassNotFoundException:org.apache.xmlbeans.XmlObject”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)