Python自动化Excel超详细教程:从零基础到实战,每月节省10天工作量
现在很多职场人每天都要和Excel打交道,做报表、统计数据、合并表格,重复的操作特别费时间。其实用Python写几行代码就能自动处理Excel,几分钟就能搞定别人一天的工作量,学会了真的能省超多时间。今天我就把最实用的Python自动化Excel教程分享给你,零基础也能学会。
一、环境准备,5分钟搞定
1. 安装Python
去Python官网下载最新的3.12版本,安装的时候勾选”Add Python to PATH”,一直下一步就安装好了。
打开cmd输入python --version,显示版本号就说明安装成功了。
2. 安装需要的库
推荐用openpyxl,是现在最流行的Excel处理库,支持xlsx格式,功能全,简单易用。
打开cmd执行:
pip install openpyxl pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
几秒钟就安装好了。
二、基础操作,看完就会
我把最常用的操作都整理好了,直接复制代码就能用。
1. 读取Excel文件
from openpyxl import load_workbook
# 加载Excel文件
wb = load_workbook('销售数据.xlsx')
# 获取所有工作表名称
print(wb.sheetnames)
# 选中第一个工作表
ws = wb.active
# 读取A1单元格的值
print(ws['A1'].value)
# 读取第2行数据
for cell in ws[2]:
print(cell.value)
2. 写入Excel文件
from openpyxl import Workbook
# 创建新的工作簿
wb = Workbook()
ws = wb.active
# 给A1单元格赋值
ws['A1'] = '姓名'
ws['B1'] = '销售额'
# 写入多行数据
data = [
['张三', 12000],
['李四', 15000],
['王五', 9000]
]
for row in data:
ws.append(row)
# 保存文件
wb.save('销售报表.xlsx')
print('文件保存成功!')
3. 修改Excel格式
from openpyxl.styles import Font, Alignment, PatternFill
# 设置字体:微软雅黑,12号,加粗
font = Font(name='微软雅黑', size=12, bold=True)
# 设置对齐方式:水平垂直居中
alignment = Alignment(horizontal='center', vertical='center')
# 设置背景颜色:黄色
fill = PatternFill('solid', fgColor='FFFF00')
# 应用到表头
for cell in ws[1]:
cell.font = font
cell.alignment = alignment
cell.fill = fill
# 设置列宽
ws.column_dimensions['A'].width = 20
ws.column_dimensions['B'].width = 15
wb.save('格式化后的报表.xlsx')
三、实战案例,直接能用
案例1:批量合并多个Excel文件
很多时候我们需要把同一个文件夹里的多个Excel文件合并成一个,手动复制粘贴太麻烦,用Python几行代码搞定:
import os
import pandas as pd
# 文件夹路径
folder_path = '销售报表/'
# 获取所有Excel文件
files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
# 合并所有文件
df_all = pd.DataFrame()
for file in files:
df = pd.read_excel(os.path.join(folder_path, file))
df_all = pd.concat([df_all, df], ignore_index=True)
# 保存合并后的文件
df_all.to_excel('合并后的销售报表.xlsx', index=False)
print(f'合并完成,共{len(df_all)}条数据')
案例2:自动统计销售数据,生成报表
每个月都要统计销售数据,计算总销售额、环比、同比,用Python自动算:
import pandas as pd
# 读取数据
df = pd.read_excel('3月销售数据.xlsx')
# 计算总销售额
total_sales = df['销售额'].sum()
# 计算每个销售的业绩
sales_by_person = df.groupby('销售')['销售额'].sum().sort_values(ascending=False)
# 计算每个产品的销量
sales_by_product = df.groupby('产品')['销量'].sum()
# 生成统计报表
with pd.ExcelWriter('3月销售统计报表.xlsx') as writer:
sales_by_person.to_excel(writer, sheet_name='员工业绩')
sales_by_product.to_excel(writer, sheet_name='产品销量')
# 写入总销售额
summary = pd.DataFrame({'指标': ['总销售额'], '数值': [total_sales]})
summary.to_excel(writer, sheet_name='汇总', index=False)
print('统计报表生成完成!')
案例3:批量给1000个客户发对账单
财务每个月要给客户发对账单,手动做太费时间,用Python自动生成:
from openpyxl import load_workbook
# 客户名单
customers = pd.read_excel('客户名单.xlsx')
# 对账单模板
template = load_workbook('对账单模板.xlsx')
for _, customer in customers.iterrows():
ws = template.active
# 替换模板里的内容
ws['A2'] = customer['客户名称']
ws['B3'] = customer['本月消费']
ws['B4'] = customer['上月欠款']
ws['B5'] = customer['总欠款']
# 保存每个客户的对账单
template.save(f'对账单/{customer["客户名称"]}3月对账单.xlsx')
print('所有对账单生成完成!')
四、实用技巧,效率翻倍
1. 大文件处理
如果Excel文件特别大(超过100M),用pandas的read_excel的时候加chunksize参数,分块读取,不会内存溢出:
for chunk in pd.read_excel('超大文件.xlsx', chunksize=10000):
# 分块处理数据
process(chunk)
2. 结合AI生成代码
不知道代码怎么写的时候,直接把需求告诉AI,比如”用Python写一段代码,读取Excel的A列和B列,计算B列大于100的行的平均值,保存到新的Excel里”,AI直接给你生成可运行的代码,零编程基础也能用。
3. 常用快捷键
- 写代码用VSCode,有代码补全和提示,写起来很快
- 运行代码按F5,看输出结果
- 报错了把错误信息复制给AI,马上就能得到解决方案
五、避坑指南
- 文件格式问题:openpyxl只支持xlsx格式,不支持旧的xls格式,如果是xls文件可以用pandas读取,或者转成xlsx格式。
- 数据备份:处理Excel前一定要备份原文件,避免代码写错把原文件弄坏了,找不回来。
- 公式问题:openpyxl读取带公式的单元格,默认读取的是公式计算后的结果,如果要读取公式本身,要加
data_only=False参数。 - 中文乱码:保存文件的时候用utf-8编码,就不会出现中文乱码的问题。
最后总结
Python自动化Excel真的是职场人必备技能,学会了能节省大量的时间,以前一天的工作量现在几分钟就能搞定。不用怕编程难,常用的代码就那几段,复制粘贴改改就能用,多练几次就会了。
我把常用的代码模板都整理好了,需要的可以在评论区留言,我发给你~
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...