图片 1

java利用poi读取excel异常问题

By admin in 百科 on 2019年10月9日

   
最近一个web工程需要完成一个小功能,利用文件上传然后读取文件内容写入到数据库,这里是操作的excel文件,excel文件分两种后缀,03版本的xls和之后的xlsx,现在大家一般都拿非常好用的插件直接过来用就可以了,我这里用的是java
poi相关资源包。

   1,首先要能够读取带xlsx的excel文件,必须要导入如下的jar包

 图片 1

 
然后遇到的问题是在本地工程下建立的一个测试类测试没有异常,两种excel的文件都能读取,但是一旦发布到web工程下,我的工程是在tomcat下跑的。这里就出现了问题,总是报这个异常:

Exception in thread “main” org.apache.poi.poifs.filesystem.OfficeXmlFileException:
The supplied data appears to be in the Office 2007+ XML. You are calling
the part of POI that deals with OLE2 Office Documents. You need to call
a different part of POI to process this data (eg XSSF instead of HSSF)

 
然后随着异常仔细的往上看,最后发现说有一个xbean.jar是否是正确的版本,这个时候我就知道可能是jar包冲突了,但是这时候对web工程的结构有点不是很明确了,为什么在测试类下没有问题,但为啥在web下跑的时候会产生这个异常呢,究其原因,这里要弄明白,在web下跑的时候,在webRoot下下面的WEB-INF下面的lib放的jar才是工程跑的时候用用到的jar,所以这时候我去找,果然发现有一个xbean.jar跟java
poi的xmlbeans-2.3.0.jar冲突了,果断删掉低版本的xbean.jar,问题解决。

所以从遇到这个问题上来看,首先要学会从异常中找原因,其次知道原因了之后如何去解决。异常往往能够暴露出能够解决问题的关键所在。希望能帮到遇到此类似问题的朋友。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 大奖888网页版登陆 版权所有