POI从文件流生成的Excel读取数据出错!

qdltl 2008-03-13 10:41:23
我有个应用是客户从数据库中导出数据,发到供货商处询价。供货商填写价格后,再导入价格。我用文件流生成导出的excel,但导入时出现错误。将文件另存为microsoft excel表格,则可以导入。
以下是出现的错误:
java.io.IOException: Invalid header signature; read 7888090397404325948, expected -2226271756974174256
org.apache.poi.poifs.storage.HeaderBlockReader.<init>(HeaderBlockReader.java:103)
org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:90)
org.apache.jsp.commodity.import_.import_005fupdate_jsp._jspService(import_005fupdate_jsp.java:120)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

希望得到您的帮助,先谢了!
...全文
769 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
睿音 2008-03-14
  • 打赏
  • 举报
回复
有个地方需要去检查下:你的poi版本及你excel的版本。

4.0以上的excel文档POI3.0.1是无法读取的。需要另存excel的版本到3.0及以下。
老紫竹 2008-03-14
  • 打赏
  • 举报
回复
Excel 换成 2000格式的看看吧!
DiligencyMan 2008-03-14
  • 打赏
  • 举报
回复
EXCEL import的是
contentType="application/msexcel;charset=gb2312";

response.setContentType("application/x-octetstream;charset=gb2312");
response.setHeader("Content-disposition",attachment;"test.xls"));

web页面很少碰到过!
qdltl 2008-03-14
  • 打赏
  • 举报
回复
POI是3.0.2,excel是2003.另外,我将excel文件另存时,他出现的缺省格式是web页,改到microsoft excel表格格式就可以正常了。挺郁闷的!

不知道有没有人碰到过?
yuwenbao 2008-03-13
  • 打赏
  • 举报
回复
有可能是代码对字节流的处理没处理好,还有个可能是文件没关闭
qdltl 2008-03-13
  • 打赏
  • 举报
回复
EXCEL导出用的是contentType="application/msexcel;charset=gb2312";
response.setContentType("application/x-octetstream;charset=gb2312");
response.setHeader("Content-disposition",attachment;"123.xls"));

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧