好的,我来帮你整理一份 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. 常用技巧

  1. 跳过表头
for row_idx in range(1, sheet1.nrows):
    print(sheet1.row_values(row_idx))

  1. 获取指定列
col_values = sheet1.col_values(1)  # 获取第 2 列
print(col_values)

  1. 处理多个 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 代替