Python 读写 Excel 文件的 openpyxl 库的功能和应用

openpyxl 是一个用于读写 Excel 文件的 Python 库,它允许你在 Python 程序中操作 Excel 文件,包括创建、读取、修改和保存 Excel 工作簿(Workbooks)、工作表(Worksheets)、单元格(Cells)等。以下是 openpyxl 主要的一些功能和应用:

一、读取 Excel 文件
可以读取现有的 Excel 文件,获取工作表、单元格的值,以及相关的元数据。例如:

import openpyxl

# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
# 获取第一个工作表
sheet = workbook.active
# 获取 A1 单元格的值
value = sheet['A1'].value
print(value)

这段代码首先使用 load_workbook 函数打开一个名为 example.xlsx 的 Excel 文件,然后使用 active 属性获取活动工作表(通常是第一个工作表),最后通过 sheet['A1'].value 获取 A1 单元格的值。

二、创建和修改 Excel 文件
可以创建新的 Excel 文件,并对其进行修改,包括添加数据、修改单元格的值、设置单元格的样式等。例如:

import openpyxl

# 创建一个新的 Excel 工作簿
workbook = openpyxl.Workbook()
# 获取活动工作表
sheet = workbook.active
# 给 A1 单元格赋值
sheet['A1'] = 'Hello, World!'
# 保存工作簿
workbook.save('new_example.xlsx')

在这个例子中,使用 openpyxl.Workbook() 创建一个新的 Excel 工作簿,然后将 'Hello, World!' 写入 A1 单元格,最后使用 save 函数将工作簿保存为 new_example.xlsx

三、操作工作表
可以添加、删除、重命名工作表,以及对工作表进行排序等操作。例如:

import openpyxl

# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
# 创建一个新的工作表
workbook.create_sheet('New Sheet')
# 删除名为 Sheet2 的工作表
sheet_to_delete = workbook['Sheet2']
workbook.remove(sheet_to_delete)
# 重命名工作表
sheet = workbook['New Sheet']
sheet.title = 'Renamed Sheet'
# 保存工作簿
workbook.save('modified_example.xlsx')

在这个示例中,首先使用 create_sheet 函数创建了一个新的工作表,然后使用 remove 函数删除名为 Sheet2 的工作表,最后使用 title 属性重命名工作表并保存修改后的工作簿。

四、设置单元格样式
可以设置单元格的字体、颜色、边框、对齐方式等样式。例如:

import openpyxl
from openpyxl.styles import Font, Color, Alignment, Border, Side

# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active
# 获取 A1 单元格
cell = sheet['A1']
# 设置字体
cell.font = Font(name='Arial', size=12, bold=True)
# 设置对齐方式
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置边框
thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))
cell.border = thin_border
# 保存工作簿
workbook.save('styled_example.xlsx')

在这个例子中,导入了 FontColorAlignmentBorder 等类,然后对 A1 单元格设置了字体、对齐方式和边框等样式。

五、处理公式和图表
可以在单元格中插入公式,还可以创建简单的图表。虽然 openpyxl 对复杂的图表功能支持相对有限,但对于基本的柱状图、折线图等可以进行处理。例如:

import openpyxl
from openpyxl.chart import BarChart, Reference

# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active
# 在 A1:A5 中写入数据
for i in range(1, 6):
    sheet.cell(row=i, column=1, value=i)
# 创建一个柱状图
chart = BarChart()
data = Reference(sheet, min_row=1, max_row=5, min_col=1, max_col=1)
chart.add_data(data)
sheet.add_chart(chart, "C1")
# 保存工作簿
workbook.save('chart_example.xlsx')

在这个示例中,首先在 A1:A5 单元格中写入了 1 到 5 的数据,然后创建了一个柱状图,使用 Reference 类指定数据的范围,最后将图表添加到工作表的 C1 位置。

六、数据验证和筛选
可以为单元格添加数据验证规则,以及设置自动筛选等功能。例如:

import openpyxl
from openpyxl.worksheet.datavalidation import DataValidation

# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active
# 添加数据验证
dv = DataValidation(type="list", formula1='"Dog,Cat,Bird"', allow_blank=True)
sheet.add_data_validation(dv)
dv.add(sheet['B1'])
# 保存工作簿
workbook.save('validation_example.xlsx')

在这个例子中,为 B1 单元格添加了一个数据验证,用户只能从 DogCatBird 中选择数据。

总之,openpyxl 提供了丰富的功能,让你可以方便地使用 Python 处理 Excel 文件,在数据处理、报表生成、数据导入导出等诸多场景中都有广泛的应用,避免了手动操作 Excel 时的繁琐和易出错的问题,提高了工作效率和数据处理的准确性。

  • 天道酬勤

    与人方便,与己方便。

    Related Posts

    python练习3

    小M在工作时遇到了一个问题,他需要将用户输入的不带千分位逗号的数字字符串转换为带千分位逗号的格式,并且保留小数部分。小M还发现,有时候输入的数字字符串前面会有无用的 0,这些也需要精简掉。请你帮助小M编写程序,完成这个任务。 测试样例样例1: 输入:s = “1294512.12412”输出:’1,294,512.12412′ 样例2: 输入:s = “0000123456789.99”输出:’123,456,789.99′ 样例3: 输入:s = “987654321”输出:’987,654,321′ ②

    Python陪练2–二维数组

    小R正在计划一次从地点A到地点B的徒步旅行,总路程需要 N 天。为了在旅途中保持充足的能量,小R每天必须消耗1份食物。幸运的是,小R在路途中每天都会经过一个补给站,可以先购买完食物后再消耗今天的1份食物。然而,每个补给站的食物每份的价格可能不同,并且小R在购买完食物后最多只能同时携带 K 份食物。 现在,小R希望在保证每天食物消耗的前提下,以最小的花费完成这次徒步旅行。你能帮助小R计算出最低的花费是多少吗? **输入 ** n 总路程需要的天数k 小R最多能同时携带食物的份数data[i] 第i天补给站每份食物的价格**输出 ** 返回完成这次徒步旅行的最小花费**约束条件 ** 1 < n,k < 10001 < data[i] < 10000测试样例样例1: 输入:n = 5 ,k = 2…

    You Missed

    四大顶尖AI模型

    线上数字人体验地址

    DeepSeek在线使用平台汇总

    AI工具集

    分享目前最全AI工具合集

    python练习3