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文件");
}

参考文献

相关推荐
PC2005_cloud3 小时前
Hotspot 技术实现全解:从零搭建自动化热点追踪系统
程序员
橙某人6 小时前
深思:AI 研发范式的底层本质与长期生成法则
程序员
SamDeepThinking8 小时前
现场重构一段代码,展示什么叫「好代码,都在表达自己的意图」
java·后端·程序员
zzzzzz3109 小时前
当客户说「用AI帮我写个和Notion一模一样的,预算5000,三天上线」时,我在想什么
人工智能·程序员·产品经理
To_OC21 小时前
一次 git reset 翻车,让我彻底分清了 hard 和 soft,也想通了 Vibe Coding 的本质
git·程序员·vibecoding
进击的丸子1 天前
APP人脸识别增值版Harmony Demo实操与关键代码解析
前端·程序员·harmonyos
Hilaku1 天前
工作 5 年后,决定你薪资上限的究竟是什么?
前端·javascript·程序员
为你学会写情书1 天前
真香!NestJS + Prisma 组合拳,让后端开发效率提升 200%
程序员
程序员cxuan1 天前
A 社官方:我们删掉了 80% 的 skills
人工智能·后端·程序员
顶级自由人1 天前
【前端菜鸟的补课01】Zod 与 PostgreSQL 全栈数据工程教学
前端·后端·程序员