读excel报错LeftoverDataException
org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException: Initialisation of record 0x1D left 2 bytes remaining still to be read.
报错的原因
发生类似这种错误时,通常是因为生成的excel的工具和读的工具格式不兼容
本人的情况
- 本人遇到的是xls是Python生成的,用easyExcel、POI和hutool都会报这个错,因为这3个底层都是POI,这个报错是POI报的,
- 在我写这个博客时,POI那3套最新版是4.1.2,easyExcel还是报错,我单独使用5.2.2的poi和poi-ooxml(poi-ooxml-schemas最新版还是4.1.2)读这个xls时,还是这个报错。
- 把xls打开后保存,或者复制出来保存一下,POI能够正常读,所以应该就是生成xls的工具生成的格式和POI的不兼容造成的。
- 这时,我就去找找除了POI,还有什么工具可以操作excel,于是找到了这个jxl,尝试一下,成功了。
解决方法
使用jxl读
使用jxl可以参考本人的这个博客,但是这个博客只是简单使用,想要详细研究的不够用的
http://t.csdn.cn/y1hog
网上找到的其他方式
1.清除bom头
http://www.book360.cn/question/f8KzTuIU.html
https://www.cnblogs.com/powerwu/articles/9078052.html
2.改源码生成jar
https://github.com/alibaba/easyexcel/issues/1478
本人的情况上面的都不行,当然,改源码生成jar包替换的方式本人不会,也没有足够的时间慢慢研究,同时也考虑到自己生成jar的方式在非个人情况下后面可能比较麻烦。
参考博客
https://blog.csdn.net/weixin_34413103/article/details/94695092