微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 apache poi 电子表格创建中获取一个空行作为第一行

如何解决在 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?