影刀RPA进阶教程:Excel高级操作——透视表自动化生成与多Sheet汇总
上一批讲影刀RPA与Excel的基础读写。但日常办公中,最高频的两个Excel需求是:数据透视表自动生成和多Sheet汇总。
这两个需求手动操作很繁琐——每周打开Excel、刷新透视表、多个Sheet一个个复制粘贴。用影刀RPA配合Python,几秒搞定。
Excel操作的技术路线选择
影刀RPA操作Excel有两条路线:
| 路线 | 工具 | 优点 | 缺点 |
|---|---|---|---|
| 内置指令 | 影刀的"Excel"分类指令 | 不需要代码,拖拽即可 | 功能有限,不支持透视表 |
| Python | openpyxl + pandas | 功能强大,可以做任何操作 | 需要写Python代码 |
本文推荐:日常读写用影刀内置指令(简单直观),透视表和复杂汇总用Python代码块。
店群矩阵自动化突破运营极限!
透视表自动生成
每周都要做的销售数据分析,手动操作:打开Excel → 插入透视表 → 设置行列值 → 调整格式。用pandas的pivot_table一次性搞定:
importpandasaspdfromopenpyxlimportWorkbookfromopenpyxl.utils.dataframeimportdataframe_to_rows# 1. 读取原始数据df=pd.read_excel(r'C:\数据\销售明细.xlsx')# 2. 创建透视表pivot=pd.pivot_table(df,values='销售额',# 汇总值index=['日期','商品类目'],# 行columns=['平台'],# 列aggfunc='sum',# 汇总方式fill_value=0# 空值填0)# 3. 写入新Excel,保留样式pivot.to_excel(r'C:\数据\销售透视表.xlsx')常用汇总方式:
sum:求和(销售额汇总)count:计数(订单数统计)mean:平均值(客单价分析)max/min:最大/最小值
生成多个透视表到一个工作簿
# 一个动作为不同维度生成多张报表withpd.ExcelWriter(r'C:\数据\销售分析报告.xlsx',engine='openpyxl')aswriter:# 透视表1:按商品类目汇总pivot1=pd.pivot_table(df,values='销售额',index='商品类目',aggfunc='sum')pivot1.to_excel(writer,sheet_name='类目汇总')# 透视表2:按日期趋势pivot2=pd.pivot_table(df,values='销售额',index='日期',aggfunc='sum')pivot2.to_excel(writer,sheet_name='日期趋势')# 透视表3:平台对比pivot3=pd.pivot_table(df,values='销售额',index='商品类目',columns='平台',aggfunc='sum')pivot3.to_excel(writer,sheet_name='平台对比')注意:需要安装openpyxl和pandas模块。影刀设置→Python模块→分别搜索安装。
多Sheet汇总
电商运营经常遇到:每天一个Sheet,月底要合并成一个总表。
汇总同一工作簿的多个Sheet
importpandasaspd file_path=r'C:\数据\每日数据.xlsx'# 读取所有Sheet名excel_file=pd.ExcelFile(file_path)sheet_names=excel_file.sheet_names# 逐个读取并合并all_data=[]forsheet_nameinsheet_names:df=pd.read_excel(file_path,sheet_name=sheet_name)df['来源Sheet']=sheet_name# 标记数据来源all_data.append(df)# 合并并保存result=pd.concat(all_data,ignore_index=True)result.to_excel(r'C:\数据\月度汇总.xlsx',index=False)汇总多个Excel文件
temu店群自动化报活动案例
importosimportpandasaspd folder=r'C:\数据\日报文件'all_data=[]forfilenameinos.listdir(folder):iffilename.endswith('.xlsx')andnotfilename.startswith('~'):# 跳过临时文件file_path=os.path.join(folder,filename)df=pd.read_excel(file_path)df['来源文件']=filename all_data.append(df)result=pd.concat(all_data,ignore_index=True)# 去重(按"订单号"去重,保留第一条)result=result.drop_duplicates(subset=['订单号'],keep='first')result.to_excel(r'C:\数据\全部汇总.xlsx',index=False)避坑:
- 开头带
~的是Excel打开的临时文件,必须跳过 - 列名不一致会导致合并错位,最好先统一各文件的列名
- 合并后一定要去重,不同天的数据可能有重复
带格式的Excel输出
纯数据输出不够好看,加点格式:
fromopenpyxlimportload_workbookfromopenpyxl.stylesimportFont,PatternFill,Alignment,Border,Side# 先输出数据pivot.to_excel(r'C:\数据\格式化报表.xlsx')# 再用openpyxl加载并加格式wb=load_workbook(r'C:\数据\格式化报表.xlsx')ws=wb.active# 设置表头样式header_fill=PatternFill(start_color='4472C4',end_color='4472C4',fill_type='solid')header_font=Font(color='FFFFFF',bold=True,size=11)forcellinws[1]:# 第一行cell.fill=header_fill cell.font=header_font cell.alignment=Alignment(horizontal='center')# 设置数据区域数字格式(千分位)forrowinws.iter_rows(min_row=2,max_col=ws.max_column,max_row=ws.max_row):forcellinrow:ifisinstance(cell.value,(int,float)):cell.number_format='#,##0'wb.save(r'C:\数据\格式化报表.xlsx')影刀指令 vs Python:什么时候用哪个
| 场景 | 推荐方式 | 理由 |
|---|---|---|
| 读几个单元格的值 | 影刀内置指令 | 拖拽即可,不需要写代码 |
| 追加一行数据到Excel | 影刀内置指令 | 直接"写入行数据" |
| 透视表/图表 | Python | 内置指令不支持 |
| 多Sheet/多文件合并 | Python | pandas几行代码搞定 |
| 复杂的数据清洗 | Python | 正则、条件过滤都方便 |
| 格式设置 | Python openpyxl | 可以精确控制每个单元格样式 |
#影刀RPA #RPA自动化 #Excel透视表 #数据汇总 #办公自动化
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。