OpenPyXL 是一个功能强大的第三方 Python 库,用于读取、写入与编辑 Excel 文件(.xlsx 格式)。
它可以创建新工作簿、修改单元格内容、设置样式、合并单元格、插入图表等,是进行 Excel 自动化处理的核心工具之一。
安装 :
pip install openpyxl常见应用场景:
(1)创建与编辑 Excel 文件
从零创建工作簿,编写表格数据,保存为 .xlsx 文件。
(2)数据读取与分析
读取指定单元格、行列数据或整张表的内容。
(3)格式化与样式控制
支持字体、颜色、边框、对齐方式、合并单元格、行高列宽等格式调整。
(4)公式与图表支持
可在单元格中写入公式,插入折线图、柱状图等。
(5)批量报表与数据导出
常用于报表生成、数据统计或自动导出 Excel 文件。
◆ ◆ ◆
核心概念
1、工作簿(Workbook)
Excel 文件的整体对象,可包含多个工作表。
2、工作表(Worksheet)
每个工作表是一张表格,通过 wb.active 或 wb[sheet_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 文件并写入数据
wb.save("students.xlsx")生成文件 students.xlsx,包含表头与两行数据。
例 2:读取已有 Excel 文件
print(row)输出:
('李四', 85)例 3:设置单元格样式
单元格 A1 将以蓝色加粗大号字体居中显示。
例 4:合并单元格与设置列宽
wb.save("merged.xlsx")例 5:写入公式与插入图表
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 都能提供稳定而强大的支持。
![]()
“点赞有美意,赞赏是鼓励”
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.