raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported') xlrd.biffh.XLRDError: Excel xlsx file; not supported
时间: 2025-06-05 12:05:34 浏览: 11
### 解决 Python 中使用 `xlrd` 导入 Excel 文件时出现的 `XLRDError: 'xlsx not supported'` 错误
当尝试使用 `xlrd` 库读取 `.xlsx` 格式的文件时,可能会遇到如下错误提示:
`XLRDError: Excel xlsx file; not supported`。这是因为从 `xlrd` 版本 2.0.0 开始,该库不再支持 `.xlsx` 文件格式[^2]。
以下是几种可行的解决方案:
#### 方案一:降级 `xlrd` 到支持 `.xlsx` 的版本
可以通过安装较低版本的 `xlrd` 来解决此问题。具体操作步骤如下:
1. 卸载当前版本的 `xlrd`:
```bash
pip uninstall xlrd
```
2. 安装指定的低版本(如 `1.2.0`),该版本仍支持 `.xlsx` 文件:
```bash
pip install xlrd==1.2.0
```
需要注意的是,这种方法虽然能暂时解决问题,但由于 `xlrd` 已经停止维护 `.xlsx` 功能,建议考虑其他长期有效的解决方案[^3]。
#### 方案二:改用 `openpyxl` 处理 `.xlsx` 文件
`openpyxl` 是专门设计用来处理 `.xlsx` 文件的库,功能强大且易于使用。以下是一个简单的例子展示如何利用 `openpyxl` 加载和访问数据:
```python
from openpyxl import load_workbook
workbook = load_workbook(filename="example.xlsx") # 打开工作簿
sheet = workbook.active # 获取活动表单
data = sheet['A1'].value # 访问单元格 A1 数据
print(data)
```
通过以上方式可以直接绕过与 `xlrd` 相关的问题,并获得更好的性能表现。
#### 方案三:借助 Pandas 结合 Openpyxl 进行高级数据分析
Pandas 提供了一个非常方便的方法来加载 Excel 表格作为 DataFrame 对象来进行进一步的数据分析或可视化等工作流集成。下面给出一段示范代码片段:
```python
import pandas as pd
df = pd.read_excel('example.xlsx', engine='openpyxl')
print(df.head())
```
这里指定了参数 `engine='openpyxl'` 明确告诉 Pandas 使用哪个引擎去解析目标文档类型。
#### 方案四:将 `.xlsx` 转换为 `.xls`
如果确实希望保留原有逻辑而无需更改太多现有程序结构的话,则可以把所有的输入源都先转存成老式 `.xls` 形态再交给原来的流程执行下去。不过这种做法通常被认为不够优雅也不够现代化[^3]。
综上所述,推荐优先采用 **方案二** 或 **方案三** ,因为它们代表了未来趋势并且更加健壮可靠。
---
###
阅读全文
相关推荐












