Python RPA解放Excel生产力

一、环境准备:3行代码搭建自动化工具箱

1. 核心库安装

必装3件套

  • pandas:数据处理"瑞士军刀",1行代码完成数据清洗;
  • openpyxl:轻量级Excel写入工具,适合生成基础报表;
  • xlwings:控制Excel进程的"遥控器",支持格式设置、图表生成。

安装命令

复制代码
bash

pip install pandas openpyxl xlwings # 3个库一次安装,5分钟搞定

2. 为什么选择Python而非VBA?
  • 跨平台:Windows/Mac都能用,VBA仅限Windows Excel;

  • 生态强:Pandas处理百万行数据无压力,VBA面对大数据卡顿崩溃;

  • 扩展性:可对接数据库、邮件、爬虫,实现"数据采集→处理→报表→发送"全流程自动化。

二、数据处理:Pandas让清洗效率提升10倍

1. 3行代码完成数据清洗

场景 :销售数据CSV文件中存在缺失值、重复行和格式错误,手动处理需1小时。
Pandas自动化方案

复制代码
python

import pandas as pd # 读取CSV数据(自动识别表头,比Excel导入快3倍) df = pd.read_csv('销售数据.csv') # 数据清洗三板斧(1行代码=10步手动操作) df_clean = df.dropna() # 删除缺失值 .drop_duplicates() # 去重 .astype({'销售额': 'int'}) # 修正数据类型 # 分组汇总(比Excel数据透视表更灵活) sales_summary = df_clean.groupby('地区')['销售额'].sum().reset_index()

关键优势

  • dropna()/drop_duplicates():替代Excel的"定位缺失值""删除重复项"手动操作;
  • groupby():一行代码实现数据透视表功能,支持多维度聚合。
2. 智优达Python Pandas数据清洗技巧:处理复杂表头

场景 :原始数据表头混乱(合并单元格、多行列标题),直接读取会报错。
解决方案:跳过无效行+自定义表头

复制代码
python

# 跳过前2行无效数据,用第3行作为表头 df = pd.read_csv('混乱数据.csv', skiprows=2, header=0) # 重命名混乱的列名 df.rename(columns={'Unnamed: 0': '日期', '销售金额_元': '销售额'}, inplace=True)

三、报表生成:从"空白文件"到"精美图表"

1. openpyxl生成基础报表

适用场景 :快速生成数据表格,无需复杂格式。
代码示例

复制代码
python

from openpyxl import Workbook # 创建Excel工作簿 wb = Workbook() ws = wb.active # 获取当前工作表 # 写入表头(Pandas列名直接复用) ws.append(sales_summary.columns.tolist()) # ['地区', '销售额'] # 写入数据(遍历DataFrame行) for row in sales_summary.values.tolist(): ws.append(row) # 自动填充每行数据 # 保存文件 wb.save('销售汇总表.xlsx')

效率对比

  • 手动粘贴100行数据:5分钟;
  • Python脚本:0.1秒,且零错误。
2. xlwings实现高级格式与图表

场景 :生成带表头加粗、柱状图的正式报表。
代码示例

复制代码
python

import xlwings as xw # 启动Excel进程(visible=False表示后台运行,不弹窗) app = xw.App(visible=False) wb = app.books.open('销售汇总表.xlsx') ws = wb.sheets[0] # 选择第一个工作表 # 设置表头格式(加粗+背景色) ws.range('A1:B1').api.Font.Bold = True # 表头加粗 ws.range('A1:B1').api.Interior.Color = 65535 # 黄色背景(RGB值65535=黄色) # 生成柱状图(1行代码替代Excel手动插入图表) chart = ws.charts.add(left=100, top=50) # 图表位置 chart.set_source_data(ws.range('A1:B5')) # 数据区域 chart.chart_type = 'column' # 柱状图类型 chart.api[1].SetElement(2) # 添加图表标题 chart.api[1].ChartTitle.Text = '各地区销售额汇总' # 保存并关闭(全程后台运行,不干扰其他操作) wb.save() wb.close() app.quit()

四、自动化流程:让报表"自己跑起来"

1. 整合为单个函数

代码示例

复制代码
python

def auto_generate_report(): # 1. 数据处理 df = pd.read_csv('销售数据.csv') df_clean = df.dropna().drop_duplicates().astype({'销售额': 'int'}) sales_summary = df_clean.groupby('地区')['销售额'].sum().reset_index() # 2. 生成基础报表 wb = Workbook() ws = wb.active ws.append(sales_summary.columns.tolist()) for row in sales_summary.values.tolist(): ws.append(row) wb.save('销售汇总表.xlsx') # 3. 美化格式与图表 app = xw.App(visible=False) wb = app.books.open('销售汇总表.xlsx') ws = wb.sheets[0] ws.range('A1:B1').api.Font.Bold = True chart = ws.charts.add() chart.set_source_data(ws.range(f'A1:B{len(sales_summary)+1}')) chart.chart_type = 'column' wb.save() wb.close() app.quit() # 直接运行函数,生成报表 auto_generate_report()

2. 设置定时任务

Windows任务计划程序

  1. 创建基本任务,设置"每天早上8点执行";
  2. 操作选择"启动程序",程序路径选择python.exe,参数填脚本路径(如D:\auto_report.py)。
相关推荐
淮北49433 分钟前
pip虚拟环境包的问题
开发语言·python·pip
m0_706653231 小时前
用Python批量处理Excel和CSV文件
jvm·数据库·python
Yvonne爱编码1 小时前
JAVA数据结构 DAY5-LinkedList
java·开发语言·python
witAI1 小时前
**AI漫剧制作工具2025推荐,零成本实现专业级动画创作*
人工智能·python
qq_423233902 小时前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
林深现海2 小时前
【刘二大人】PyTorch深度学习实践笔记 —— 第四集:反向传播(凝练版)
pytorch·python·numpy
菩提树下的凡夫3 小时前
Python 环境管理工具
开发语言·python
索荣荣3 小时前
JavaToken实战指南:从原理到应用
开发语言·python
Albert Edison3 小时前
【Python】函数
java·linux·python·pip
2401_836563183 小时前
用Python读取和处理NASA公开API数据
jvm·数据库·python