Python openpyxl 库使用详解
openpyxl
是一个用于读取和写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。对于需要处理 Excel 文件的 Python 开发者来说,openpyxl
是一个非常流行且强大的工具。
1. 安装 openpyxl
首先,在使用 openpyxl
之前,你需要确保已安装该库。可以通过 pip 来安装:
pip install openpyxl
2. 基本操作
2.1 创建一个 Excel 工作簿
要创建一个新的 Excel 文件,可以使用 Workbook
类:
from openpyxl import Workbook
# 创建一个工作簿
workbook = Workbook()
# 激活当前的工作表
sheet = workbook.active
# 给工作表命名
sheet.title = "示例表格"
# 在单元格中写入数据
sheet['A1'] = "姓名"
sheet['B1'] = "年龄"
sheet['A2'] = "张三"
sheet['B2'] = 30
# 保存工作簿到文件
workbook.save("示例.xlsx")
2.2 读取 Excel 文件
读取现有的 Excel 文件也很简单,通过 load_workbook
函数实现:
from openpyxl import load_workbook
# 加载 Excel 文件
workbook = load_workbook("示例.xlsx")
# 选择工作表
sheet = workbook["示例表格"]
# 读取数据
name = sheet['A2'].value
age = sheet['B2'].value
print(f"姓名: {name}, 年龄: {age}")
3. 数据处理
openpyxl
不仅可以读写单元格,还能处理数据范围、格式、样式等。
3.1 写入多行数据
我们可以使用循环来写入一系列数据:
data = [
["姓名", "年龄"],
["张三", 30],
["李四", 25],
["王五", 28]
]
for row in data:
sheet.append(row)
# 保存工作簿
workbook.save("示例.xlsx")
3.2 读取多个单元格的数据
可以使用 .iter_rows()
方法来遍历行,或者 .iter_cols()
方法遍历列:
for row in sheet.iter_rows(min_row=2, max_col=2, max_row=sheet.max_row):
for cell in row:
print(cell.value, end=" ")
print()
4. 格式化单元格
对单元格的样式进行格式化是一个关键需求:
from openpyxl.styles import Font, Color, Border, Side
# 设置字体样式
bold_font = Font(bold=True)
# 应用样式
for cell in sheet["1:1"]:
cell.font = bold_font
# 设置边框样式
thin_border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
for row in sheet.iter_rows(min_row=1, max_col=2, max_row=4):
for cell in row:
cell.border = thin_border
# 保存工作簿
workbook.save("示例.xlsx")
5. 过滤和排序数据
使用 openpyxl
同样可以实现 Excel 的数据筛选和排序功能,但这些功能相对复杂,通常需要结合Python的其他数据处理库。
总结
openpyxl
是一个功能强大的 Excel 文件处理库,适合各种数据处理需求。通过简单的 API,用户可以快速创建、读取、修改和格式化 Excel 文件。在数据科学和数据分析领域,熟练掌握 openpyxl
有助于提高工作效率。无论是生成报告、数据汇总还是复杂的数据分析,openpyxl
都能够为 Python 开发者提供强大的支持。