目标:
  • 理解如何使用 Python 与 Excel 文件进行交互。
  • 学习使用 xlrdopenpyxl 库读取和写入 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_workbookWorkbook 类来打开和创建文件,使用 sheet.append() 或通过列、行索引操作来读取数据。

任务:

  1. 使用 xlrd 读取一个 Excel 文件,并输出表格中的数据。
  2. 使用 openpyxl 创建一个新的 Excel 文件,写入一些学生信息,并保存。
  3. 使用 openpyxl 修改现有 Excel 文件中的某个单元格,并保存。
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐