从入门到精通:Python OpenPyXL完整教程
Python OpenPyXL 完整教程
在日常工作中,我们常常需要处理 Excel 文件,而 Python 提供了许多优秀的库用于操作 Excel,其中 OpenPyXL 是一个非常流行且功能强大的库。通过它,我们可以轻松实现 Excel 文件的创建、读取、修改、格式化以及更多操作。
本教程将全面介绍 OpenPyXL 的基本用法和高级功能,并配以详细的代码示例和图解,帮助你快速掌握它的使用。
一、OpenPyXL 简介
1. 什么是 OpenPyXL?
OpenPyXL 是一个 Python 库,用于读取和写入 Excel 文件,支持 .xlsx
和 .xlsm
文件格式。它是纯 Python 实现的,因此不需要依赖 Excel 应用程序即可操作文件。
2. 安装 OpenPyXL
安装 OpenPyXL 非常简单,使用 pip 命令即可:
pip install openpyxl
二、基本操作
1. 创建 Excel 文件
示例代码
from openpyxl import Workbook
# 创建工作簿
wb = Workbook()
# 选择活动工作表
ws = wb.active
# 给工作表命名
ws.title = "Sheet1"
# 写入数据
ws['A1'] = "Hello"
ws['B1'] = "OpenPyXL!"
# 保存工作簿
wb.save("example.xlsx")
效果图
运行代码后,会在当前目录生成一个名为 example.xlsx
的 Excel 文件,如下所示:
A | B |
---|---|
Hello | OpenPyXL! |
2. 打开和读取 Excel 文件
示例代码
from openpyxl import load_workbook
# 打开工作簿
wb = load_workbook("example.xlsx")
# 选择工作表
ws = wb.active
# 读取单元格数据
print(ws['A1'].value) # 输出: Hello
print(ws['B1'].value) # 输出: OpenPyXL!
说明
load_workbook
用于加载现有的 Excel 文件。- 单元格数据可以通过
sheet['单元格地址']
的方式读取。
3. 写入和修改数据
示例代码
# 修改单元格数据
ws['A1'] = "Hi"
ws['B1'] = "Python OpenPyXL"
# 保存修改
wb.save("example_modified.xlsx")
三、高级操作
1. 操作单元格样式
示例代码
from openpyxl.styles import Font, Alignment
# 设置字体样式
ws['A1'].font = Font(name='Arial', bold=True, color="FF0000")
# 设置单元格对齐
ws['B1'].alignment = Alignment(horizontal='center', vertical='center')
# 保存工作簿
wb.save("styled_example.xlsx")
效果图
- A1 单元格:加粗、红色字体。
- B1 单元格:内容居中对齐。
2. 合并和拆分单元格
示例代码
# 合并单元格
ws.merge_cells('A1:C1')
ws['A1'] = "Merged Cell"
# 拆分单元格
ws.unmerge_cells('A1:C1')
# 保存工作簿
wb.save("merged_example.xlsx")
3. 插入和删除行列
示例代码
# 插入行
ws.insert_rows(2)
# 删除列
ws.delete_cols(2)
# 保存工作簿
wb.save("modified_example.xlsx")
4. 操作图表
示例代码
from openpyxl.chart import BarChart, Reference
# 添加数据
data = [
['Item', 'Quantity'],
['Apple', 50],
['Banana', 30],
['Cherry', 20]
]
for row in data:
ws.append(row)
# 创建图表
chart = BarChart()
values = Reference(ws, min_col=2, min_row=2, max_row=4, max_col=2)
chart.add_data(values, titles_from_data=True)
ws.add_chart(chart, "E5")
# 保存工作簿
wb.save("chart_example.xlsx")
效果图
生成一个柱状图,并插入到单元格 E5
位置。
5. 操作公式
示例代码
# 写入公式
ws['C1'] = "Total"
ws['C2'] = "=SUM(B2:B4)"
# 保存工作簿
wb.save("formula_example.xlsx")
效果
Excel 会自动计算公式的结果,并显示在对应单元格中。
四、常见问题与解决方法
1. OpenPyXL 无法打开 .xls
文件
OpenPyXL 仅支持 .xlsx
和 .xlsm
格式。如果需要处理 .xls
文件,可以使用另一个库 xlrd。
2. 读取大文件时内存不足
对于大文件,可以考虑使用 openpyxl.utils.cell.rows_from_range 或生成器以降低内存使用。
五、总结
通过 OpenPyXL,你可以方便地实现对 Excel 文件的创建、读取、修改和格式化等操作。它不仅适合处理简单的表格数据,还能支持图表、公式、单元格样式等复杂功能。无论是日常数据分析还是自动化办公,OpenPyXL 都是一个非常实用的工具。
希望本教程能帮助你快速掌握 OpenPyXL 的基本和高级用法。如果你有任何疑问或新的需求,欢迎进一步交流!
评论已关闭