当前位置: 技术文章>> Python 如何使用 OpenPyXL 处理 Excel?

文章标题:Python 如何使用 OpenPyXL 处理 Excel?
  • 文章分类: 后端
  • 9870 阅读

在Python中,OpenPyXL 是一个功能强大的库,专门用于读取和写入Excel 2010 xlsx/xlsm/xltx/xltm 文件。它提供了一个直观的API来操作Excel文件的各个方面,包括工作簿(Workbook)、工作表(Worksheet)、单元格(Cell)等。下面,我将详细介绍如何使用OpenPyXL来处理Excel文件,包括创建新的Excel文件、读取现有文件内容、修改单元格数据、以及添加图表和公式等高级功能。

一、安装OpenPyXL

首先,确保你的Python环境中已经安装了OpenPyXL。如果尚未安装,可以通过pip命令轻松安装:

pip install openpyxl

二、创建新的Excel文件

使用OpenPyXL创建新的Excel文件非常简单。以下是一个基本的示例,展示了如何创建一个包含单个工作表和工作表中有几个单元格数据的新Excel文件。

from openpyxl import Workbook

# 创建一个新的Workbook对象
wb = Workbook()

# 激活默认的工作表
ws = wb.active

# 修改工作表的标题
ws.title = "示例工作表"

# 向工作表中添加数据
ws['A1'] = "码小课"
ws['B1'] = "Python Excel 教程"
ws.append([1, 2, 3])  # 在下一行追加一行数据

# 保存文件
wb.save("example.xlsx")

三、读取Excel文件

读取Excel文件同样直观。你可以通过加载现有的xlsx文件,然后遍历其工作表、行和列来获取数据。

from openpyxl import load_workbook

# 加载现有的Excel文件
wb = load_workbook('example.xlsx')

# 获取工作表
ws = wb['示例工作表']

# 读取单元格数据
print(ws['A1'].value)  # 输出: 码小课

# 遍历行
for row in ws.iter_rows(min_row=2, max_row=3, min_col=1, max_col=3):
    for cell in row:
        print(cell.value, end=' ')
    print()  # 换行

# 关闭工作簿(可选,因为Python的垃圾回收机制会自动处理)
wb.close()

四、修改Excel文件

修改Excel文件涉及读取文件、修改数据然后保存文件。这可以通过前面的示例组合实现。

from openpyxl import load_workbook

# 加载Excel文件
wb = load_workbook('example.xlsx')

# 选择工作表
ws = wb['示例工作表']

# 修改单元格数据
ws['A2'] = "更新内容"

# 添加新行
ws.append([4, 5, 6])

# 保存修改后的文件,可以使用同名覆盖原文件
wb.save('example.xlsx')

五、添加图表

OpenPyXL 还支持在Excel文件中添加图表。这包括条形图、折线图、饼图等多种类型。

from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

# 创建一个新的Workbook
wb = Workbook()
ws = wb.active

# 填充一些数据
for row in range(1, 6):
    ws.append([row, 2 * row, 3 * row])

# 创建一个条形图
chart = BarChart()
data = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=5)
cats = Reference(ws, min_col=1, min_row=1, max_row=5)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)

# 将图表添加到工作表中
ws.add_chart(chart, "D1")

# 保存文件
wb.save("chart_example.xlsx")

六、使用公式和函数

OpenPyXL 支持在Excel文件中写入公式和函数。

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

# 写入一些数据
ws['A1'] = 1
ws['A2'] = 2

# 使用公式
ws['A3'] = "=SUM(A1:A2)"

# 保存文件
wb.save("formula_example.xlsx")

七、高级功能:样式和条件格式

OpenPyXL 允许你应用样式和条件格式到单元格和范围。

from openpyxl import Workbook
from openpyxl.styles import Font, Color, PatternFill, Border, Side

wb = Workbook()
ws = wb.active

# 创建一个字体样式
font = Font(name='Calibri', size=11, bold=True, italic=False, vertAlign=None,
            underline='none', strike=False, color='FF0000')

# 创建一个填充样式
fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

# 创建一个边框样式
thin = Side(border_style="thin", color="000000")
border = Border(top=thin, left=thin, right=thin, bottom=thin)

# 应用样式
ws['A1'].font = font
ws['A1'].fill = fill
ws['A1'].border = border

# 保存文件
wb.save("style_example.xlsx")

八、总结

OpenPyXL 是处理Excel文件的强大工具,它提供了丰富的API来创建、读取、修改、保存Excel文件,并支持图表、公式、样式等高级功能。通过上述示例,你应该能够掌握使用OpenPyXL进行基本和高级Excel操作的方法。记得,对于更复杂的用例,查阅OpenPyXL官方文档是获取详细信息和最新功能的好方法。

在码小课网站上,我们将继续分享更多关于Python编程和OpenPyXL库的高级技巧和实用案例,帮助你成为更高效的Python开发者。希望这篇文章能为你提供一个良好的起点,开启使用Python处理Excel文件的旅程。

推荐文章