Excel 后缀竟成 “拦路虎”?POI 读取报错原因大揭秘

POI读取excel报错

由于有时候上传的是xls文件有时候上传的是xlsx文件,使用POIFSFileSystem来读取文件

java 复制代码
POIFSFileSystem poifsFileSystem;
try {
    poifsFileSystem = new POIFSFileSystem(new FileInputStream(file));
} catch (IOException e) {
    LOGGER.error("open xls file failure", e);
    throw new BusinessException(1, "打不开xls文件");
}

经常会遇到

vbnet 复制代码
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)

解决方法:

使用WorkbookFactory来读取excel文件

java 复制代码
Workbook workbook;
try {
    workbook = WorkbookFactory.create(new FileInputStream(file));
} catch (IOException e) {
    LOGGER.error("open xls file failure", e);
    throw new BusinessException(1, "打不开xls文件");
}

参考文献

相关推荐
程序员鱼皮1 小时前
20 个神级 AI 编程扩展,爽爆了!
ai·程序员·编程
一晌小贪欢3 天前
Python 异步编程深度解析:从生成器到 Asyncio 的演进之路
开发语言·python·程序员·python基础·python小白·python测试
京东云开发者4 天前
如何使用wireshark进行远程抓包
程序员
京东云开发者4 天前
InheritableThreadLocal从入门到放弃
程序员
京东云开发者4 天前
🔥1篇搞懂AI通识:大白话拆解核心点
程序员
掘金安东尼4 天前
向大家介绍《开发者博主联盟》🚀
前端·程序员·github
Iqnus4 天前
WSL安装记录(自用)
程序员
陈随易4 天前
聊一聊2025年用AI的思考与总结
前端·后端·程序员
陈随易4 天前
Vue-Router v5内置文件式路由,告别手写维护的恐惧
前端·后端·程序员
SimonKing4 天前
基于Netty的WebSocket自动解决拆包粘包问题
java·后端·程序员