写点什么

已解决 xlrd.biffh.XLRDError: Excel xlsx file; not supported 异常的正确解决方法,亲测有效!!!

  • 2024-02-20
    上海
  • 本文字数:1082 字

    阅读完需:约 4 分钟

已解决 xlrd.biffh.XLRDError:  Excel xlsx file; not supported 异常的正确解决方法,亲测有效!!!

文章目录

    问题分析

    报错原因

    解决思路

    解决方法

 总结

问题分析

在处理 Excel 文件时,特别是当我们使用 Python 的 xlrd 库来读取.xlsx 格式的文件,偶尔会遇到这样一个错误:“xlrd.biffh.XLRDError: Excel xlsx file; not supported”。这个错误明确地告诉我们,尝试操作的.xlsx 文件不被支持。此时,你可能会感到困惑,因为.xlsx 是 Excel 中非常常见的一种格式。

报错原因

错误的根本原因在于 xlrd 库的一个重要更新。从版本 2.0.0 开始,xlrd 库默认只支持旧的.xls 格式,而不再支持较新的.xlsx 格式。这个更改主要是出于安全和维护的考虑,但它确实给很多依赖 xlrd 处理.xlsx 文件的开发者带来了挑战。

解决思路

针对这一问题,我们可以采取以下策略:

1.退回旧版本:暂时将 xlrd 库降级到 1.2.0 版本,该版本仍然支持.xlsx 格式。

2.使用 openpyxl 库:对于.xlsx 文件格式,openpyxl 是一个更合适的选择,因为它专门用于处理.xlsx 文件。

3.使用 pandas 库:如果你已经在使用 pandas 进行数据分析,那么可以直接通过 pandas 来读取.xlsx 文件,pandas 背后会使用 openpyxl 或其他库作为引擎。

解决方法

1. 退回旧版本 xlrd:如果你的项目临时无法迁移到其他库,可以考虑将 xlrd 库退回到支持.xlsx 的最后一个版本(通常是 1.2.0),记住,长期依赖过时的库可能会带来安全和兼容性风险。

pip uninstall xlrdpip install xlrd==1.2.0
复制代码

2. 使用 openpyxl 库,openpyxl是处理.xlsx文件的理想选择。首先,需要安装openpyxl

pip install openpyxl
复制代码

 读取.xlsx文件:

from openpyxl import load_workbook workbook = load_workbook(filename='your_file.xlsx')sheet = workbook.activefor row in sheet.iter_rows(values_only=True):    print(row)
复制代码

3. 使用 pandas 库,pandas提供了一个高级接口来读取.xlsx文件,背后可以选择多种引擎,包括openpyxl

pip install pandas openpyxl
复制代码

读取.xlsx文件:

import pandas as pd df = pd.read_excel('your_file.xlsx', engine='openpyxl')print(df)
复制代码

总结

面对 xlrd.biffh.XLRDError: Excel xlsx file; not supported 异常,我们有多种解决方案可选。虽然直接降级 xlrd 库看似是快速解决问题的方式,但考虑到长期维护和安全性,迁移到 openpyxl 或通过 pandas 操作.xlsx 文件会是更加稳妥和前瞻的选择。希望以上介绍的方法能够帮助你顺利解决问题,优化你的数据处理流程。


以上是此问题报错原因的解决方法,欢迎评论区留言讨论是否能解决,如果本文对你有帮助 欢迎 关注 、点赞 、收藏 、评论,博主才有动力持续记录遇到的问题!!!


用户头像

InfoQ签约作者/技术专家/博客专家 2020-03-20 加入

🏆InfoQ签约作者、CSDN专家博主/后端领域优质创作者、阿里云专家/签约博主、华为云专家、51CTO专家/TOP红人 📫就职某大型金融互联网公司高级工程师 👍专注于研究Liunx内核、Java、源码、架构、设计模式、算法

评论

发布
暂无评论
已解决xlrd.biffh.XLRDError: Excel xlsx file; not supported异常的正确解决方法,亲测有效!!!_小明Java问道之路_InfoQ写作社区