从入门到精通: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 文件,如下所示:

AB
HelloOpenPyXL!

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 的基本和高级用法。如果你有任何疑问或新的需求,欢迎进一步交流!

最后修改于:2024年11月26日 20:47

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日