"888"即可获得《RPA元素定位实战指南:XPath从入门到精通》电子版,直接送,无任何转发套路
*本文提及的"库存PPT模板源文件",文中自助获取~
*更多RPA自动化应用解决方案见往期分享,有RPA自动化工具定制需求的老板后台滴滴~
上周有个做电商的用户找我咨询PPT自动化,她的场景是这样的:手上100多个服装款,每个款都要做一页商品详情页。
信息分散在Excel里:品牌名称、市场价格、商品规格、材质成分、库存数量……每个款还有一张实物图。

手动做的话,并且是在有PPT模板的情况下,每张幻灯片耗时大概30秒(复制占位符、逐个粘贴商品参数数据、插入图片),100张下来,大概得花1小时左右。
算上人工手速波动、偶尔的误操作,实际耗时可能超过1小时。而且这个不是一次性动作,每次上新都要来一遍,她问我这个能自动化吗?

我说:可以,三步就能搞定。
1个Excel表格 + 一个模板PPT文件 + 1条影刀RPA"魔法指令",最快1分多钟就能生成100张幻灯片,效率提升60倍!
这是最基础的一步,也是决定成败的一步。表格结构要求见下图

几个关键点:
第一行必须是表头,而且表头名字要和PPT占位符一一对应。
图片路径要写绝对路径,比如 `D:\\图片\\001.jpg`。代码不认相对路径,也不认文件名,要完整路径。
数据要干净。表头前后不要有空格,单元格不要合并。不规范的数据会导致匹配失败。
一个Excel存100个款的数据,这就是你的"数据源"。
这一步决定最终PPT长什么样。
1. 核心概念:占位符
PPT模板不是靠"画文本框"做的。你需要在"幻灯片母版"里插入占位符——一种可以被代码识别和替换的特殊框。

2. 具体操作:
1. 打开PPT,点击「视图 → 幻灯片母版」
2. 删除多余的版式,只保留一个空白版式
3. 设计好页面布局:左边放参数表格,右边放实物图,下方放品牌简介
4. 点击「插入占位符 → 文本」,在需要填数据的位置画框
5. 按 Alt+F10 打开"选择窗格",把占位符重命名为Excel表头名称(如`品牌名称`、`市场价格`)
6. 图片位置用「插入占位符 → 图片」
7. 设置好字体、颜色、对齐方式
8. 关闭母版视图,保存为 `模板.pptx`

3. 关键提醒
一定要用"占位符",不要用普通文本框
占位符名字必须和Excel表头完全一致,多空一个空格都不行
文本占位符默认带项目符号,记得在母版里手动取消(开始 → 项目符号 → 无)
模板只做一次,后面100个款都用这一个样式。
这一步是自动化的核心。在本案例中,我并没有用影刀内置的PPT处理指令来搭建,
这是因为:影刀RPA目前相关指令数量少,场景支持有限,无法处理复杂排版需求、往往需要多条指令搭配才能解决一个问题。

我利用了影刀支持Python代码嵌入的特性,直接调用python-pptx库来实现。
# 使用此指令前,请确保安装必要的Python库:# pip install python-pptx pandas openpyxlimport pandas as pdfrom pptx import Presentationfrom pptx.util import Ptfrom typing import *try:from xbot.app.logging import trace as printexcept:from xbot import printdef generate_ppt_from_excel(excel_path: str, template_path: str, output_path: str) -> str:"""title: 基于模板批量生成商品PPTdescription: 自动匹配占位符并填充。支持特定字段("品牌简介"、"产品卖点")实现标题加粗+正文常规的富文本混合排版。inputs:- excel_path (str): 包含商品数据的Excel文件绝对路径- template_path (str): 制作好的PPT模板文件绝对路径- output_path (str): 最终生成的PPT保存路径outputs:- result_msg (str): 执行结果提示信息"""if template_path == output_path:raise Exception("【路径错误】输出路径不能和模板路径相同,否则会覆盖您的模板!")# 1. 读取并清洗Excel数据print(f"正在读取Excel文件:{excel_path}")df = pd.read_excel(excel_path)df = df.fillna("")df.columns = df.columns.astype(str).str.strip()# 2. 内存流加载PPT模板,防锁死with open(template_path, "rb") as f:prs = Presentation(f)try:slide_layout = prs.slide_layouts[0]except IndexError:raise Exception("PPT模板中没有找到版式!")# 3. 建立底层 ID 映射,防丢名idx_to_name = {}for ph in slide_layout.placeholders:idx_to_name[ph.placeholder_format.idx] = ph.name.strip()count = 0# 4. 循环遍历Excel数据并填充for index, row in df.iterrows():slide = prs.slides.add_slide(slide_layout)for shape in slide.placeholders:shape_name = idx_to_name.get(shape.placeholder_format.idx, shape.name).strip()if shape_name in df.columns:value = str(row[shape_name]).strip()if not value:continue# 4.1 图片处理if "图" in shape_name:try:shape.insert_picture(value)except Exception as e:print(f"⚠️ 第 {index+2} 行插入图片失败,路径:{value}。错误:{e}")# 4.2 【富文本特殊处理】:品牌简介 & 产品卖点elif shape_name in ["品牌简介", "产品卖点"]:shape.text = "" # 清空占位符的默认占位文本p = shape.text_frame.paragraphs[0]# 游程1:写入前缀,强制加粗run_prefix = p.add_run()run_prefix.text = f"{shape_name}:"run_prefix.font.bold = True# 游程2:写入正文内容,强制不加粗run_value = p.add_run()run_value.text = valuerun_value.font.bold = False# 4.3 常规文本处理else:shape.text = valuecount += 1# 5. 保存输出prs.save(output_path)print(f"执行完毕,已保存至:{output_path}")return f"成功生成了 {count} 页PPT!"
这里大概提一下这个库是干嘛的,Python-pptx是一个专门为PPT操作设计的Python库,可以让你用代码直接操纵PPT文件,实现影刀内置指令做不了的事情。它能:
精确识别和替换占位符
处理排版、字体、颜色等细节
支持富文本混合排版(比如标题加粗+正文常规)
批量生成格式完全一致的PPT文件

感兴趣的铁子可以看看这个文档:https://daobook.github.io/python-pptx/index.html

这个方案的本质是"数据 + 模板 = 批量输出"。只要符合这个逻辑的场景都能用,比如:自动生成数据汇报PPT、直播手卡/商品信息单自动排版等。
如果你对这套方案感兴趣,想获取上面提到的PPT模板,可以関注本公众号,后台回复「PPT电商模板」就行。
以上 。下期分享见!

你有没有算过,每天多少时间浪费在重复操作上?未来,自动化将是职场的基础能力。掌握RPA,你就能把重复的工作交给机器人,把创造力留给自己。


2. 如果你希望及时获取最新推送,请关注本公众号并标星⭐。
3. 扫描下方二维码,无套路领取《XPath元素定位指南简略版及辅助插件》。
