第53天:Python与Excel交互:xlrd与openpyxl的使用
·
目标:
- 理解如何使用 Python 与 Excel 文件进行交互。
- 学习使用 xlrd 和 openpyxl 库读取和写入 Excel 文件。
- 掌握常见的 Excel 操作,如读取表格数据、写入数据、修改单元格内容、保存文件等。
1. Python与Excel的交互
Excel 是一种非常常用的电子表格格式,很多数据分析和业务应用中都涉及到对 Excel 文件的操作。Python 提供了多个库来实现与 Excel 的交互,最常用的有:
- xlrd:用于读取 Excel 文件(主要是
.xls格式,后续版本不支持.xlsx文件)。 - openpyxl:用于读取和写入 Excel 文件,支持
.xlsx格式。
2. 使用 xlrd 读取 Excel 文件
2.1 安装 xlrd
pip install xlrd
2.2 读取 Excel 文件
xlrd 支持读取 .xls 和 .xlsx 文件,但从 2.0 版本开始不再支持 .xlsx 格式。如果要处理 .xlsx 文件,推荐使用 openpyxl。
以下示例展示了如何使用 xlrd 来读取 Excel 文件中的数据:
import xlrd
# 打开 Excel 文件
workbook = xlrd.open_workbook('example.xls')
# 选择第一个工作表
sheet = workbook.sheet_by_index(0)
# 获取表格的行数和列数
rows = sheet.nrows
cols = sheet.ncols
# 读取单元格的内容
for row in range(rows):
for col in range(cols):
print(sheet.cell_value(row, col)) # 输出每个单元格的内容
2.3 获取指定单元格的数据
# 获取指定行列的数据
cell_value = sheet.cell_value(0, 1) # 获取第1行第2列的内容
print(cell_value)
2.4 注意事项
- xlrd 只支持
.xls格式的文件。对于.xlsx格式,使用 openpyxl 库更为合适。
3. 使用 openpyxl 读取和写入 Excel 文件
3.1 安装 openpyxl
pip install openpyxl
3.2 读取 .xlsx 文件
from openpyxl import load_workbook
# 打开一个 Excel 文件
workbook = load_workbook('example.xlsx')
# 获取活动工作表(默认获取第一个工作表)
sheet = workbook.active
# 获取指定单元格的值
cell_value = sheet['A1'].value
print(cell_value)
# 获取某一列的所有值
for row in sheet.iter_rows(min_col=1, max_col=1, min_row=1, max_row=sheet.max_row):
for cell in row:
print(cell.value)
3.3 写入数据到 Excel 文件
from openpyxl import Workbook
# 创建一个新的 Excel 工作簿
workbook = Workbook()
# 选择默认工作表
sheet = workbook.active
# 写入数据到 A1 单元格
sheet['A1'] = 'Hello, World!'
# 保存工作簿
workbook.save('output.xlsx')
3.4 修改现有 Excel 文件
# 打开现有的 Excel 文件
workbook = load_workbook('example.xlsx')
# 获取活动工作表
sheet = workbook.active
# 修改某个单元格的内容
sheet['A1'] = 'Updated Value'
# 保存修改后的文件
workbook.save('example_updated.xlsx')
3.5 写入多行数据
# 打开现有的 Excel 文件
workbook = load_workbook('example.xlsx')
# 获取活动工作表
sheet = workbook.active
# 写入多行数据
data = [
['Name', 'Age', 'City'],
['Alice', 30, 'New York'],
['Bob', 25, 'Los Angeles'],
['Charlie', 35, 'Chicago']
]
# 使用 iter_rows 写入数据
for row in data:
sheet.append(row)
# 保存工作簿
workbook.save('example_with_data.xlsx')
4. openpyxl 高级功能
4.1 设置单元格样式
可以使用 openpyxl 设置单元格的字体、颜色、对齐方式等。
from openpyxl.styles import Font, Color, Alignment
# 打开 Excel 文件
workbook = load_workbook('example.xlsx')
sheet = workbook.active
# 设置字体样式
font = Font(size=12, bold=True, color="FF0000") # 红色、粗体、12号字体
sheet['A1'].font = font
# 设置单元格对齐方式
alignment = Alignment(horizontal="center", vertical="center")
sheet['A1'].alignment = alignment
# 保存文件
workbook.save('styled_example.xlsx')
4.2 使用公式
openpyxl 还支持在 Excel 中写入公式:
# 写入一个加法公式
sheet['A3'] = '=A1 + A2'
# 保存工作簿
workbook.save('example_with_formula.xlsx')
5. 总结
- xlrd:用于读取
.xls格式的文件,但不再支持.xlsx格式,推荐用于老式的 Excel 文件。 - openpyxl:是处理
.xlsx文件的强大库,支持读取、写入、修改、样式设置等操作。 - 读取和写入 Excel 文件时,可以使用
openpyxl中的load_workbook和Workbook类来打开和创建文件,使用sheet.append()或通过列、行索引操作来读取数据。
任务:
- 使用
xlrd读取一个 Excel 文件,并输出表格中的数据。 - 使用
openpyxl创建一个新的 Excel 文件,写入一些学生信息,并保存。 - 使用
openpyxl修改现有 Excel 文件中的某个单元格,并保存。
更多推荐
所有评论(0)