如何解决在 apache poi 电子表格创建中获取一个空行作为第一行
最近从 poi-2.5.1 升级到 poi-4.1.2,结果是在生成的 .xls 文件中插入了一个空行作为第一行。这是通过比较从 poi-2.5.1 创建的文件与从 poi-4.1.2 生成的文件确定的。手动删除第一行时,我可以正常打开电子表格,文件中的第一行出现错误,文件格式和扩展名不匹配。
我的应用程序在 weblogic-12.2.1.4 中运行,它获取向用户显示的表格,并在下载给用户的 jsp 中创建一个 excel 电子表格。
我已经尝试寻找这个问题,但我能找到的只是如何在阅读电子表格时删除该行。
OutputStream output = response.getoutputStream();
response.setHeader("Expires","0");
response.setHeader("Pragma","private");
response.setHeader("Content-disposition","attachment;filename=" + tableId + "xls");
response.setContentType("application/x-download; charset=UTF-8");
Workbook book = new hssfWorkbook();
CreationHelper createHelper = book.getCreationHelper();
Sheet sheet = book.createSheet();
...
...
...
book.write(output);
output.close();
我在代码片段前添加了 out.clear()
和 response.reset()
,但没有帮助。
我也试过在之后评论所有内容
Workbook book = new hssfWorkbook();
然后执行 book.write(output);
并且我仍然得到空行。
这是带有 Workbook book = new hssfWorkbook();
的输出
在记事本++中查看
What the output looks like in Notepad++
解决方法
经过一个多月的搜索和尝试不同的事情后,我确定问题是我已将长行切换到可以轻松查看所有导入的地方,
正确的方法
<%@page import = "java.util.*,java.net.URLDecoder,org.apache.poi.hssf.usermodel.*,org.apache.poi.hssf.util.HSSFColor,org.apache.log4j.Logger"%>
不正确的方式 - 导致问题。我已将其更改为这种方式,以便可以轻松查看所有正在导入的文件。有 20 个文件被导入。对于这个例子,我只是将它减少到 5。
<%@page import = "java.util.*,org.apache.log4j.Logger"%>
由于某种原因,当导入语句不在一行中时,它会将一个空白作为输出流中的第一行
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。