Java导入Excel模版时出现org.apache.poi.poifs.filesystem.OfficeXmlFileException异常

出现错误

导入Excel2007的文件就会报如下异常: 

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)

该错误意思是说,文件中的数据是用Office2007+XML保存的,而现在却调用OLE2 Office文档处理,应该使用POI不同的部分来处理这些数据,比如使用XSSF来代替HSSF。

分析原因

如果只是支持Excel2003的话,需要导入的poi包只需要如下jar包: 

- dom4j-1.6.1.jar 

- poi-3.8-20120326.jar 

但是如果要同时支持Excel2003和Excel2007就得需要:

dom4j-1.6.1.jar

poi-3.8-20120326.jar

poi-ooxml-3.8-20120326.jar

poi-ooxml-schemas-3.8-20120326.jar

poi-scratchpad-3.8-20120326.jar

xmlbeans-2.3.0.jar

解决方案

2013版及之前的,创建工作簿的时候使用:

HSSFWorkbook workbook = new HSSFWorkbook();

相应的之后在创建表格,行,单元格时使用:

HSSFSheet sheet 、HSSFRow row、HSSFCell cell,

2017版,创建工作簿的时候使用:  

XSSFWorkbook workbook = new XSSFWorkbook();

相应的之后在创建表格,行,单元格时使用:

Sheet sheet、Row row、Cell  cell。

参考文章: 

1.http://my.oschina.net/u/658145/blog/268112 

2.http://blog.csdn.net/mmm333zzz/article/details/7962377 

3.http://blog.csdn.net/sdfe63/article/details/20955209

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值