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

参考文献

相关推荐
Data_Adventure2 小时前
什么叫“活得明白”?
程序员
大模型教程3 小时前
用Unsloth微调一个老中医垂直领域大模型
程序员·llm·agent
AI大模型4 小时前
全网最细,Qwen3大模型极致微调与推理实战:Unsloth一站式教程
程序员·llm·agent
AI大模型4 小时前
Unsloth 的全微调之路丨从 Adapter 到 Full Fine-tuning
程序员·llm·agent
申阳5 小时前
Day 8:06. 基于Nuxt开发博客项目-我的服务模块开发
前端·后端·程序员
0和1的舞者5 小时前
《MySQL数据库进阶(九):数据库备份与恢复(二)》
数据库·mysql·oracle·程序员·策略模式·备份与恢复
IT_陈寒9 小时前
WeaveFox 全栈创作体验:从想法到完整应用的零距离
前端·后端·程序员
mapbar_front20 小时前
进入职场第三课——立足
程序员
大模型教程1 天前
从 RAG 到 CAG:AI 正在超越“检索”,学会“融会贯通”!
程序员·llm·agent