openpyxl
是一个用于读写 Excel 文件的 Python 库,它允许你在 Python 程序中操作 Excel 文件,包括创建、读取、修改和保存 Excel 工作簿(Workbooks)、工作表(Worksheets)、单元格(Cells)等。以下是 openpyxl
主要的一些功能和应用:
一、读取 Excel 文件
可以读取现有的 Excel 文件,获取工作表、单元格的值,以及相关的元数据。例如:
import openpyxl
# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
# 获取第一个工作表
sheet = workbook.active
# 获取 A1 单元格的值
value = sheet['A1'].value
print(value)
这段代码首先使用 load_workbook
函数打开一个名为 example.xlsx
的 Excel 文件,然后使用 active
属性获取活动工作表(通常是第一个工作表),最后通过 sheet['A1'].value
获取 A1 单元格的值。
二、创建和修改 Excel 文件
可以创建新的 Excel 文件,并对其进行修改,包括添加数据、修改单元格的值、设置单元格的样式等。例如:
import openpyxl
# 创建一个新的 Excel 工作簿
workbook = openpyxl.Workbook()
# 获取活动工作表
sheet = workbook.active
# 给 A1 单元格赋值
sheet['A1'] = 'Hello, World!'
# 保存工作簿
workbook.save('new_example.xlsx')
在这个例子中,使用 openpyxl.Workbook()
创建一个新的 Excel 工作簿,然后将 'Hello, World!'
写入 A1 单元格,最后使用 save
函数将工作簿保存为 new_example.xlsx
。
三、操作工作表
可以添加、删除、重命名工作表,以及对工作表进行排序等操作。例如:
import openpyxl
# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
# 创建一个新的工作表
workbook.create_sheet('New Sheet')
# 删除名为 Sheet2 的工作表
sheet_to_delete = workbook['Sheet2']
workbook.remove(sheet_to_delete)
# 重命名工作表
sheet = workbook['New Sheet']
sheet.title = 'Renamed Sheet'
# 保存工作簿
workbook.save('modified_example.xlsx')
在这个示例中,首先使用 create_sheet
函数创建了一个新的工作表,然后使用 remove
函数删除名为 Sheet2
的工作表,最后使用 title
属性重命名工作表并保存修改后的工作簿。
四、设置单元格样式
可以设置单元格的字体、颜色、边框、对齐方式等样式。例如:
import openpyxl
from openpyxl.styles import Font, Color, Alignment, Border, Side
# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active
# 获取 A1 单元格
cell = sheet['A1']
# 设置字体
cell.font = Font(name='Arial', size=12, bold=True)
# 设置对齐方式
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置边框
thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))
cell.border = thin_border
# 保存工作簿
workbook.save('styled_example.xlsx')
在这个例子中,导入了 Font
、Color
、Alignment
和 Border
等类,然后对 A1 单元格设置了字体、对齐方式和边框等样式。
五、处理公式和图表
可以在单元格中插入公式,还可以创建简单的图表。虽然 openpyxl
对复杂的图表功能支持相对有限,但对于基本的柱状图、折线图等可以进行处理。例如:
import openpyxl
from openpyxl.chart import BarChart, Reference
# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active
# 在 A1:A5 中写入数据
for i in range(1, 6):
sheet.cell(row=i, column=1, value=i)
# 创建一个柱状图
chart = BarChart()
data = Reference(sheet, min_row=1, max_row=5, min_col=1, max_col=1)
chart.add_data(data)
sheet.add_chart(chart, "C1")
# 保存工作簿
workbook.save('chart_example.xlsx')
在这个示例中,首先在 A1:A5 单元格中写入了 1 到 5 的数据,然后创建了一个柱状图,使用 Reference
类指定数据的范围,最后将图表添加到工作表的 C1 位置。
六、数据验证和筛选
可以为单元格添加数据验证规则,以及设置自动筛选等功能。例如:
import openpyxl
from openpyxl.worksheet.datavalidation import DataValidation
# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active
# 添加数据验证
dv = DataValidation(type="list", formula1='"Dog,Cat,Bird"', allow_blank=True)
sheet.add_data_validation(dv)
dv.add(sheet['B1'])
# 保存工作簿
workbook.save('validation_example.xlsx')
在这个例子中,为 B1 单元格添加了一个数据验证,用户只能从 Dog
、Cat
和 Bird
中选择数据。
总之,openpyxl
提供了丰富的功能,让你可以方便地使用 Python 处理 Excel 文件,在数据处理、报表生成、数据导入导出等诸多场景中都有广泛的应用,避免了手动操作 Excel 时的繁琐和易出错的问题,提高了工作效率和数据处理的准确性。