好的,我来帮你整理一份 Python 中 xlrd
模块详解(一),从基础概念、安装、读取 Excel 文件到常用方法讲解,适合初学者和进阶用户。
🔹 Python xlrd
模块详解(一)
1. xlrd
模块简介
xlrd
是 Python 中 读取 Excel 文件(.xls 和 .xlsx) 的第三方库。- 主要用于 读取 Excel 中的数据,不支持写入(写入需要用
xlwt
或openpyxl
)。 - 特点:
- 轻量级
- 支持读取单元格内容、公式、格式等
- 适合数据分析、自动化脚本等场景
注意:从
xlrd 2.0
版本开始 不再支持.xlsx
文件,只能读取.xls
。
读取.xlsx
推荐使用openpyxl
。
2. 安装 xlrd
pip install xlrd
- 指定版本支持
.xls
和.xlsx
:
pip install xlrd==1.2.0
3. 打开 Excel 文件
import xlrd
# 打开 Excel 文件
workbook = xlrd.open_workbook('example.xls')
# 查看所有 sheet 名称
print(workbook.sheet_names())
4. 获取 Sheet
xlrd
支持多种方式获取 Sheet:
# 通过索引获取第一个 Sheet
sheet1 = workbook.sheet_by_index(0)
# 通过名称获取 Sheet
sheet2 = workbook.sheet_by_name('Sheet1')
Sheet 常用属性
print(sheet1.name) # Sheet 名称
print(sheet1.nrows) # 总行数
print(sheet1.ncols) # 总列数
5. 读取单元格内容
# 读取第一行第一列
cell_value = sheet1.cell_value(0, 0)
print(cell_value)
# 另一种方式
print(sheet1.row(0)) # 获取整行
print(sheet1.col(0)) # 获取整列
读取单元格类型
cell_type = sheet1.cell(0,0).ctype
# 0: 空, 1: 文本, 2: 数字, 3: 日期, 4: 布尔, 5: 错误
print(cell_type)
6. 遍历 Excel 数据
for row_idx in range(sheet1.nrows):
row = sheet1.row_values(row_idx) # 获取整行数据
print(row)
7. 读取 Excel 日期
Excel 中日期是浮点数,需要转换:
import xlrd
from datetime import datetime
date_cell = sheet1.cell(1, 2).value # 获取单元格值
date_tuple = xlrd.xldate_as_tuple(date_cell, workbook.datemode)
date_obj = datetime(*date_tuple)
print(date_obj.strftime('%Y-%m-%d'))
8. 常用技巧
- 跳过表头
for row_idx in range(1, sheet1.nrows):
print(sheet1.row_values(row_idx))
- 获取指定列
col_values = sheet1.col_values(1) # 获取第 2 列
print(col_values)
- 处理多个 Sheet
for sheet in workbook.sheets():
print(sheet.name, sheet.nrows, sheet.ncols)
✅ 小结
xlrd
适合 读取 Excel 文件,轻量且快速- 常用操作:
- 打开工作簿:
xlrd.open_workbook()
- 获取 Sheet:
sheet_by_index
或sheet_by_name
- 读取单元格:
cell_value
/row_values
/col_values
- 遍历数据、处理日期、跳过表头
- 打开工作簿:
- 注意 版本问题:
xlrd >= 2.0
不支持.xlsx
,需要用openpyxl
代替
发表回复