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

参考文献

相关推荐
答案answer28 分钟前
1K+star,回顾一下我的开源之路
前端·程序员·three.js
redreamSo12 小时前
30岁后的北漂,心动是一场奢侈的内耗
程序员
李新_14 小时前
一个复杂Android工程开发前我们要考虑哪些事情?
android·程序员·架构
AI大模型14 小时前
Coze工作流实战:快速搭建网站的智能客服助手
程序员·llm·coze
Moonbit15 小时前
月报 Vol.02:新增条件编译属性 cfg、#alias属性、defer表达式,增加 tuple struct 支持
后端·程序员·编程语言
集成显卡19 小时前
Rust 实战四 | Traui2+Vue3+Rspack 开发桌面应用:通配符掩码计算器
后端·程序员·rust
Mike_小新1 天前
【Mike随想】未来更看重架构能力和业务经验,而非单纯编码能力
后端·程序员
袁煦丞1 天前
Leanote你的知识库+云脑图:cpolar内网穿透实验室第490个成功挑战
前端·程序员·远程工作
鹏多多1 天前
编辑器也有邪修?盘点VS Code邪门/有趣的扩展
前端·程序员
e黑子1 天前
GPT 让我效率提升 10 倍,但也差点毁了我的职业生涯
前端·程序员