跳到主要内容
Python 实战

用 Python 自动化处理 Excel:3 个实用案例

壁虎在线编程 技术团队2026-09-18阅读时间 15 分钟

为什么用 Python 处理 Excel?


手动处理 Excel 既耗时又容易出错。用 Python 可以自动化完成重复性工作,提高效率,减少错误。


准备工作


# 安装必要的库

pip install openpyxl pandas


案例 1:批量合并多个 Excel 文件


**场景**:有 10 个月度销售报表,需要合并成一个年度报表。


import pandas as pd

import glob


# 找到所有的 Excel 文件

files = glob.glob("sales_*.xlsx")


# 读取并合并

dfs = []

for file in files:

df = pd.read_excel(file)

dfs.append(df)


merged_df = pd.concat(dfs, ignore_index=True)


# 保存结果

merged_df.to_excel("annual_sales.xlsx", index=False)

print(f"已合并 {len(files)} 个文件")


案例 2:数据清洗和格式化


**场景**:导出的数据格式混乱,需要清洗和统一格式。


import pandas as pd


# 读取数据

df = pd.read_excel("raw_data.xlsx")


# 清洗数据

# 1. 删除空行

df = df.dropna()


# 2. 统一日期格式

df['日期'] = pd.to_datetime(df['日期']).dt.strftime('%Y-%m-%d')


# 3. 统一金额格式(去除货币符号,转为数字)

df['金额'] = df['金额'].str.replace('¥', '').str.replace(',', '').astype(float)


# 4. 去重

df = df.drop_duplicates()


# 保存清洗后的数据

df.to_excel("cleaned_data.xlsx", index=False)

print("数据清洗完成")


案例 3:自动生成报表


**场景**:每月需要生成销售报表,包括汇总统计和图表。


import pandas as pd

from openpyxl import Workbook

from openpyxl.chart import BarChart, Reference


# 读取数据

df = pd.read_excel("sales_data.xlsx")


# 汇总统计

summary = df.groupby('产品类别').agg({

'销售额': 'sum',

'订单数': 'count'

}).reset_index()


# 创建 Excel 文件

wb = Workbook()

ws = wb.active

ws.title = "销售汇总"


# 写入数据

ws.append(['产品类别', '销售额', '订单数'])

for _, row in summary.iterrows():

ws.append([row['产品类别'], row['销售额'], row['订单数']])


# 添加图表

chart = BarChart()

chart.title = "各类别销售额"

chart.y_axis.title = "销售额"

chart.x_axis.title = "产品类别"


data = Reference(ws, min_col=2, min_row=1, max_row=len(summary)+1)

cats = Reference(ws, min_col=1, min_row=2, max_row=len(summary)+1)

chart.add_data(data, titles_from_data=True)

chart.set_categories(cats)


ws.add_chart(chart, "E2")


# 保存

wb.save("sales_report.xlsx")

print("报表生成完成")


进阶技巧


1. 批量重命名列


df.rename(columns={

'旧列名1': '新列名1',

'旧列名2': '新列名2'

}, inplace=True)


2. 条件筛选


# 筛选销售额大于 1000 的记录

high_sales = df[df['销售额'] > 1000]


3. 透视表


pivot = pd.pivot_table(df,

values='销售额',

index='产品类别',

columns='月份',

aggfunc='sum'

)


总结


用 Python 处理 Excel 可以大大提高工作效率。掌握这几个基本操作,你就能应对大多数日常需求。


---


**壁虎在线编程** 的 Python 实战课程包含更多实用案例,从基础到进阶,帮你成为 Python 高手。现在就开始学习!


准备好开始学习了吗?

全部课程免费开放,没有关卡数限制,注册后可直接学完所有内容

免费开始学习 →