Python 第三方库:OpenPyXL(Excel 文件读写与操作)

OpenPyXL 是一个功能强大的第三方 Python 库,用于读取、写入与编辑 Excel 文件(.xlsx 格式)。

它可以创建新工作簿、修改单元格内容、设置样式、合并单元格、插入图表等,是进行 Excel 自动化处理的核心工具之一。

安装:

nginx 复制代码
pip install openpyxl

常见应用场景:

(1)创建与编辑 Excel 文件

从零创建工作簿,编写表格数据,保存为 .xlsx 文件。

(2)数据读取与分析

读取指定单元格、行列数据或整张表的内容。

(3)格式化与样式控制

支持字体、颜色、边框、对齐方式、合并单元格、行高列宽等格式调整。

(4)公式与图表支持

可在单元格中写入公式,插入折线图、柱状图等。

(5)批量报表与数据导出

常用于报表生成、数据统计或自动导出 Excel 文件。

◆ ◆

核心概念

1、工作簿(Workbook)

Excel 文件的整体对象,可包含多个工作表。

2、工作表(Worksheet)

每个工作表是一张表格,通过 wb.active 或 wbsheet_name 获取。

3、单元格(Cell)

Excel 的最小数据单元,可通过 ws"A1" 或 ws.cell(row, column) 访问。

4、数据读写

写入:cell.value = ...

读取:value = cell.value

5、样式与格式

使用 openpyxl.styles 模块设置字体、颜色、对齐方式等。

6、保存与加载

使用 Workbook.save() 保存文件,load_workbook() 打开已有文件。

◆ ◆

应用举例

例 1:创建 Excel 文件并写入数据

go 复制代码
from openpyxl import Workbook
wb = Workbook()ws = wb.active
ws.title = "学生成绩"ws["A1"] = "姓名"ws["B1"] = "成绩"ws.append(["张三", 90])ws.append(["李四", 85])
wb.save("students.xlsx")

生成文件 students.xlsx,包含表头与两行数据。

例 2:读取已有 Excel 文件

python 复制代码
from openpyxl import load_workbook
wb = load_workbook("students.xlsx")ws = wb["学生成绩"]
for row in ws.iter_rows(values_only=True):    print(row)

输出:

javascript 复制代码
('姓名', '成绩')('张三', 90)('李四', 85)

例 3:设置单元格样式

python 复制代码
from openpyxl import Workbookfrom openpyxl.styles import Font, Alignment
wb = Workbook()ws = wb.active
ws["A1"] = "标题"ws["A1"].font = Font(size=16, bold=True, color="0070C0")ws["A1"].alignment = Alignment(horizontal="center")
wb.save("styled.xlsx")

单元格 A1 将以蓝色加粗大号字体居中显示。

例 4:合并单元格与设置列宽

apache 复制代码
from openpyxl import Workbook
wb = Workbook()ws = wb.active
ws.merge_cells("A1:C1")ws["A1"] = "销售报表"ws.column_dimensions["A"].width = 20ws.column_dimensions["B"].width = 15ws.column_dimensions["C"].width = 15
wb.save("merged.xlsx")

例 5:写入公式与插入图表

makefile 复制代码
from openpyxl import Workbookfrom openpyxl.chart import BarChart, Reference
wb = Workbook()ws = wb.active
ws.append(["月份", "销售额"])data = [("1月", 3000), ("2月", 4200), ("3月", 5000)]for row in data:    ws.append(row)
# 写入公式ws["C5"] = "=SUM(B2:B4)"
# 创建柱状图chart = BarChart()chart.title = "销售趋势"values = Reference(ws, min_col=2, min_row=1, max_row=4)cats = Reference(ws, min_col=1, min_row=2, max_row=4)chart.add_data(values, titles_from_data=True)chart.set_categories(cats)ws.add_chart(chart, "E2")
wb.save("chart.xlsx")

◆ ◆

常用函数与类速览

Workbook()

创建一个新的工作簿对象。

返回:Workbook 实例对象。

Workbook.active

获取当前活动工作表。

返回:Worksheet 对象。

Workbook.create_sheet(title=None)

创建新的工作表。

参数:

title:工作表名称(可选)。

返回:新创建的 Worksheet 对象。

Workbook.save(filename)

将工作簿保存为指定文件。

参数:

filename:输出文件名(含路径)。

返回:无。

load_workbook(filename)

加载一个现有的 Excel 文件。

参数:

filename:Excel 文件路径。

返回:Workbook 对象。

Worksheet.append(iterable)

在工作表末尾追加一行数据。

参数:

iterable:可迭代对象(如列表、元组)。

返回:无。

Worksheet.iter_rows(values_only=False)

按行迭代工作表内容。

参数:

values_only:若为 True,仅返回单元格值。

返回:生成器对象。

Worksheet.merge_cells(range_string)

合并指定区域的单元格。

参数:

range_string:合并范围(如 "A1:C1")。

返回:无。

Worksheet.column_dimensions

设置列宽或访问列属性。

返回:DimensionHolder 对象。

Cell.value

访问或设置单元格的值。

参数:无(属性访问)。

返回:单元格中的内容。

openpyxl.chart.BarChart()

创建柱状图对象,可用于插入 Excel 图表。

返回:BarChart 实例对象。

◆ ◆

补充说明

1、OpenPyXL 仅支持 Excel 2007 及以上版本的 .xlsx 格式,不支持旧版 .xls。

2、它支持 Pandas DataFrame 导出(通过 df.to_excel() 内部调用 openpyxl)。

3、当需要操作大型文件时,可使用 read_only=True 模式优化性能。

4、若需写入超大数据量,可结合 write_only=True 模式逐行写入,节省内存。

📘 小结

OpenPyXL 是 Python 操作 Excel 的事实标准库,集数据处理、格式控制与可视化于一体。

无论是办公自动化、报表生成还是科学计算,OpenPyXL 都能提供稳定而强大的支持。

"点赞有美意,赞赏是鼓励"

相关推荐
金銀銅鐵12 小时前
[Python] 扩展欧几里得算法
python·数学·算法
Duckdblab12 小时前
DuckDB 性能调优终极指南:打造闪电般的分析体验
python
带派擂总13 小时前
Python全栈开发精华版最全合集(包含各种面试题) Day24_异常和错误
python
金銀銅鐵16 小时前
n^5 和 n 的个位数是否总相等?
python·数学
aqi0019 小时前
15天学会AI应用开发(九)利用Chroma持久化向量数据
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵19 小时前
借助 Pygame 探索最大公约数的规律
python·数学·游戏
ServBay2 天前
9 个 Python 第三方库推荐,不用 AI 都好像多出一个团队
后端·python
用户8356290780512 天前
如何使用 Python 添加和管理 Excel 批注(完整示例)
后端·python
用户8356290780512 天前
使用 Python 管理 Excel 工作表:创建、复制、删除与重命名
后端·python