Python 自动化办公:操作 Excel 的七个示例

开发
Python能高效地处理复杂的数据任务,而openpyxl则是专门用于操作Excel文件的库,让你无需打开Excel,就能完成创建、读取、编辑等操作。

在日常工作中,Excel作为数据分析和报告制作的利器,几乎无人不知无人不晓。然而,面对大量重复的数据录入、整理、分析任务时,手动操作不仅耗时费力,还容易出错。此时,Python与它的强大库openpyxl便闪亮登场,助你轻松实现Excel自动化办公。

Python以其简洁易学的语法和丰富的数据处理库,能高效地处理复杂的数据任务,而openpyxl则是专门用于操作Excel文件的库,让你无需打开Excel,就能完成创建、读取、编辑等操作。

openpyxl库简介与安装

openpyxl是一个开源的Python库,专注于读写Microsoft Excel 2010 xlsx/xlsm/xltx/xltm文件。它支持高级功能如数据验证、图表、超链接、注释等,且性能优秀,对大型文件处理游刃有余。安装只需在命令行中输入以下命令:

pip install openpyxl

示例一:创建新Excel文件并写入数据

想在Python里“无中生有”一个Excel文件?openpyxl帮你实现!下面的代码将创建一个名为“my_data.xlsx”的文件,并在其中填入一些数据:

from openpyxl import Workbook

# 创建Workbook对象,相当于一个新的Excel文件
wb = Workbook()

# 获取默认的活跃工作表(Sheet)
ws = wb.active

# 在A1到C3单元格写入数据
for row in range(1, 4):
    for col in 'ABC':
        ws[col+str(row)] = f"Data {row} {col}"

# 保存到硬盘
wb.save("my_data.xlsx")

示例二:读取现有Excel文件数据

有了数据,自然要能读取。这段代码将打开“my_data.xlsx”,读取其内容并打印出来:

from openpyxl import load_workbook

# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")

# 获取第一个工作表(索引为0)
ws = wb.worksheets[0]

# 遍历所有单元格并打印内容
for row in ws.iter_rows():
    for cell in row:
        print(cell.value)

示例三:修改单元格内容及样式

数据错了?颜色不满意?openpyxl让你轻松调整:

from openpyxl.styles import Font, Color

# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active

# 修改A1单元格内容为"Updated Data"
ws["A1"] = "Updated Data"

# 设置A1单元格字体为红色,加粗
font = Font(color=Color(rgb='FF0000'), bold=True)
ws["A1"].font = font

# 保存更改
wb.save("my_data.xlsx")

示例四:添加/删除行与列

数据结构需要调整?openpyxl让你增删自如:

# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active

# 在第二行前插入一行
ws.insert_rows(2)

# 删除第三列(C列)
ws.delete_cols(3)

# 保存更改
wb.save("my_data.xlsx")

示例五:合并单元格与设置条件格式

表格需要更美观?合并单元格与条件格式来帮忙:

from openpyxl.formatting.rule import CellIsRule
from openpyxl.styles import PatternFill

# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active

# 合并A1到C1单元格
ws.merge_cells('A1:C1')

# 创建一个条件格式规则:当单元格值大于10时填充绿色
green_fill = PatternFill(start_color="00FF00", end_color="00FF00", fill_type="solid")
rule = CellIsRule(operator='>', formula=['10'], stopIfTrue=False, fill=green_fill)

# 应用规则到整个工作表
ws.conditional_formatting.add('A1:C5', rule)

# 保存更改
wb.save("my_data.xlsx")

示例六:利用公式计算与数据统计

数据需要计算或统计?openpyxl支持直接写入公式:

# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")
ws = wb.active

# 在D1单元格写入求和公式
ws["D1"] = "=SUM(A1:C1)"

# 在D2单元格写入平均值公式
ws["D2"] = "=AVERAGE(A2:C2)"

# 保存更改并计算公式结果
wb.save("my_data.xlsx")

示例七:批量处理多个工作表

面对多工作表的大型文件,openpyxl也能轻松应对:

# 加载已有的Excel文件
wb = load_workbook("my_data.xlsx")

# 遍历所有工作表
for sheet in wb.worksheets:
    print(f"Processing sheet: {sheet.title}")

    # 对每个工作表执行相同的操作,如数据清洗、格式化等

# 保存更改
wb.save("my_data.xlsx")

结语:进阶学习与应用场景推荐

恭喜你,通过以上7个示例,你已经掌握了openpyxl的基本操作。接下来,你可以尝试结合pandas库进行更复杂的数据分析,或者利用定时任务实现自动化报表生成。无论你是处理销售数据、财务报表,还是科研数据,openpyxl都能成为你提升工作效率的得力助手。

责任编辑:赵宁宁 来源: 手把手PythonAI编程
相关推荐

2023-01-09 15:20:16

2022-06-10 07:25:41

测试自动化趋势

2020-11-05 12:56:19

Python办公自动化

2022-03-21 10:09:08

PythonExcel邮件

2022-05-13 09:16:49

Python代码

2024-03-08 13:13:05

人工智能自动化

2022-06-13 09:12:04

PythonPDF代码

2020-04-21 10:45:47

PythonWordExcel

2024-08-16 21:51:42

2018-01-30 13:45:50

Kubernetes容器自动化管理

2024-09-24 17:20:16

Python自动化办公

2024-10-28 19:36:05

2021-07-09 07:24:47

Python自动化办公

2021-12-28 09:24:49

Python邮件Word

2022-08-04 13:27:35

Pythonopenpyxl

2024-09-25 10:00:00

Python自动化办公

2023-10-18 13:57:17

2024-09-25 08:00:00

Python文件处理

2024-10-10 15:24:50

JSONPython

2023-11-20 22:07:51

PythonPDF
点赞
收藏

51CTO技术栈公众号