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

参考文献

相关推荐
一不小心扯到淡6 小时前
键盘演奏:我写了一个键盘音效引擎
程序员·github
清风微拂6 小时前
别再用记事本看日志了:我给程序员做了个大日志查看器
程序员
kyriewen6 小时前
别再用防抖做懒加载了:120 张图只加载出 4 张
前端·javascript·程序员
一只爱撸猫的程序猿7 小时前
当任何人都能生成一万行代码:什么变得稀缺
人工智能·后端·程序员
LeoLi6387 小时前
随机应变,不是见招拆招:AI 干 6 倍工时之后,我把它做成了三层降级链路
人工智能·程序员
SimonKing11 小时前
又找到一个纯Java的OCR项目,识别的格式还挺多
java·后端·程序员
陈随易12 小时前
副业搞钱点子之赛事与活动
前端·后端·程序员
楠风测开12 小时前
接口工具 + AI 文档生成
程序员
会开车的鸟哥12 小时前
编写测试序列与测试评估完整示例
程序员
codigger16 小时前
别再手动催 AI 干活了:一文读懂 Loop Engineering(循环工程)
ai·程序员·编程语言·#人工智能