【JAVA】excel读取常见问题(涉及格式:xls、xlsx)

异常

org.apache.poi.EncryptedDocumentException: Default password is invalid for salt/verifier/verifierHash

报错截图:
在这里插入图片描述

问题原因:
有密码的文档,密码错误


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)

报错截图:
在这里插入图片描述
问题原因:
文件后缀为xls后缀,其实是xlsx文件

解决方案:
使用XSSF代替HSSF,使用读取xlsx的方法读取该文件


org.apache.poi.poifs.filesystem.NotOLE2FileException: Invalid header signature; read 0xBF09C5BACCB3CEBF, expected 0xE11AB1A1E011CFD0 - Your file appears not to be a valid OLE2 document

问题原因:
文件后缀为xls后缀,其实是xlsx文件

解决方案:
打开源文件,另存为xlsx文件,再读取


java.lang.IndexOutOfBoundsException: Position 28672 past the end of the file

问题原因:
文件错误


其它知识

HSSF、XSSF、SXSSF 的区别

POI提供了HSSF、XSSF以及SXSSF三种方式操作Excel。他们的区别如下:
HSSF:是操作Excel97-2003版本,扩展名为.xls。
XSSF:是操作Excel2007版本开始,扩展名为.xlsx。
SXSSF:是在XSSF基础上,POI3.8版本开始提供的一种支持低内存占用的操作方式,扩展名为.xlsx。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尤成军军军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值