
基础准备(只需2分钟)
安装必要工具
# 在命令行输入(Windows用户按Win+R,输入cmd)
pip install pandas openpyxl
准备你的第一个Excel文件
创建一个名为 data.xlsx 的Excel文件,包含以下数据:
|
姓名 |
销售额 |
部门 |
日期 |
|
张三 |
5000 |
销售部 |
2026-01-1 |
|
李四 |
7800 |
技术部 |
2026-01-1 |
|
王五 |
3200 |
销售部 |
2026-01-1 |
______
核心操作演示(6分钟掌握)
1️⃣ 读取Excel文件(1分钟)
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx')
print(“原始数据:”)
print(df)
2️⃣ 数据筛选(1分钟)
# 筛选销售部员工
sales_dept = df[df['部门'] == '销售部']
print(”
销售部员工:”)
print(sales_dept)
# 筛选销售额大于4000的员工
high_sales = df[df['销售额'] > 4000]
print(”
高销售额员工:”)
print(high_sales)
3️⃣ 数据计算(1分钟)
# 计算总销售额和平均销售额
total_sales = df['销售额'].sum()
avg_sales = df['销售额'].mean()
print(f”
总销售额:{total_sales}元”)
print(f”平均销售额:{avg_sales:.2f}元”)
# 按部门汇总
dept_summary = df.groupby('部门')['销售额'].sum()
print(”
各部门销售额汇总:”)
print(dept_summary)
4️⃣ 新增列数据(1分钟)
# 添加绩效评级
def get_performance_level(sales):
if sales >= 7000:
return '优秀'
elif sales >= 4000:
return '良好'
else:
return '待改善'
df['绩效评级'] = df['销售额'].apply(get_performance_level)
print(”
添加绩效评级后:”)
print(df)
5️⃣ 数据排序与筛选(1分钟)
# 按销售额降序排列
sorted_df = df.sort_values('销售额', ascending=False)
print(”
按销售额排序:”)
print(sorted_df)
# 获取Top2员工
top2 = df.nlargest(2, '销售额')
print(”
销售额Top2:”)
print(top2)
6️⃣ 保存结果(1分钟)
# 保存到新Excel文件
df.to_excel('processed_data.xlsx', index=False)
# 保存多个工作表
with pd.ExcelWriter('分析报告.xlsx') as writer:
df.to_excel(writer, sheet_name='原始数据', index=False)
sales_dept.to_excel(writer, sheet_name='销售部数据', index=False)
dept_summary.to_excel(writer, sheet_name='部门汇总')
print(“✅ 处理完成!已生成新文件:”)
print(“- processed_data.xlsx”)
print(“- 分析报告.xlsx”)
______
实战案例:自动生成月度报表(2分钟)
import pandas as pd
from datetime import datetime
def generate_monthly_report():
# 读取数据
df = pd.read_excel('sales_data.xlsx')
# 1. 计算关键指标
total = df['销售额'].sum()
avg = df['销售额'].mean()
top_salesman = df.loc[df['销售额'].idxmax()]
# 2. 部门分析
dept_stats = df.groupby('部门').agg({
'销售额': ['sum', 'mean', 'count']
})
# 3. 创建报告DataFrame
report_data = {
'统计项目': ['总销售额', '平均销售额', '销售冠军', '日期'],
'数值': [total, f”{avg:.2f}”, top_salesman['姓名'], datetime.now().strftime('%Y-%m-%d')]
}
report_df = pd.DataFrame(report_data)
# 4. 保存报告
with pd.ExcelWriter(f'月度报告_{datetime.now().strftime(“%Y%m”)}.xlsx') as writer:
report_df.to_excel(writer, sheet_name='关键指标', index=False)
dept_stats.to_excel(writer, sheet_name='部门分析')
df.to_excel(writer, sheet_name='原始数据', index=False)
print(” 月度报告生成成功!”)
# 运行函数
generate_monthly_report()
______
实用技巧锦囊
批量处理多个文件
import os
# 批量处理当前文件夹所有Excel文件
for file in os.listdir('.'):
if file.endswith('.xlsx'):
df = pd.read_excel(file)
# 你的处理代码…
处理复杂表格
# 读取特定工作表
df = pd.read_excel('data.xlsx', sheet_name='Sheet2')
# 读取特定范围(A1到D10)
df = pd.read_excel('data.xlsx', usecols='A:D', nrows=10)
# 处理多个工作表
all_sheets = pd.read_excel('data.xlsx', sheet_name=None) # 读取所有
常见问题解决
# 1. 处理中文乱码
df = pd.read_excel('data.xlsx', engine='openpyxl')
# 2. 处理日期格式
df['日期'] = pd.to_datetime(df['日期'])
# 3. 填充空值
df.fillna(0, inplace=True) # 用0填充
df.fillna(method='ffill', inplace=True) # 用前一个值填充
______
下一步学习提议
- 扩展学习:
- 学习 openpyxl 库进行更精细的格式控制
- 尝试用 matplotlib 将数据可视化
- 了解如何使用 schedule 库实现定时自动运行
- 实战项目:
- 将重复的周报/月报自动化
- 批量整理多个Excel文件的数据
- 自动从数据库导出数据生成报表
______
福利:完整脚本模板
“””
Excel自动处理脚本模板
保存为 process_excel.py 即可使用
“””
import pandas as pd
import sys
def main():
# 1. 读取文件
try:
df = pd.read_excel(sys.argv[1] if len(sys.argv) > 1 else 'data.xlsx')
except FileNotFoundError:
print(“❌ 请将Excel文件放在同一目录下”)
return
# 2. 数据处理(按需修改)
print(f”共读取到 {len(df)} 条数据”)
# 示例:筛选并计算
result = df.groupby('部门')['销售额'].sum()
# 3. 保存结果
output_file = 'result.xlsx'
result.to_excel(output_file)
print(f”✅ 处理完成!结果已保存到 {output_file}”)
if __name__ == “__main__”:
main()
______
使用提示:
- 将以上代码复制到VSCode、PyCharm或Jupyter Notebook中运行
- 确保Excel文件与Python脚本在同一目录
- 遇到报错时,复制错误信息到搜索引擎查找解决方案

目前,你已经掌握了用Python自动化处理Excel的核心技能!从今天起,告别繁琐的手工操作吧!
