运维侠职场日记30:用DeepSeek三天通关详解新手必看!保姆级教学用Python给PPT打螺丝!PPT文字批量替换:几行代码拯救发际线秘籍(附完整代码)

一. 痛点

运维侠小白有下面烦恼,听说deepseek可以帮助提升学习python的效率,可是deepseek给的代码也报错,怎么办?

在这里插入图片描述
在这里插入图片描述

deepseek生成的代码也有可能报错,例如:

⏰执行报错:由提示得知,是少导入需要的模块,但是补全,还是报错,这就是deepseek的局限性。需要继续发问,才能解决。

多尝试,困难才会被克服

学习就像追妹子,你只能看到背影,但只要坚持日积月累的付出,迟早她整个人属于你❤。
在这里插入图片描述

二.准备工作

⚠️避免报错:

  1. 文件路径 没有写绝对路径默认是处理python代码所在路径的文件,因此需要把代码文件放到这个处理的文件同一文件夹里。

(1)安装 python-pptx模块

💻 代码:在命令行终端执行

# 安装必要库(命令行执行)
# pip install python-pptx

在这里插入图片描述

(2)PPT结构

元素代码关键字作用说明
母版prs.slide_master控制全局样式
版式集合prs.slide_layouts所有预定义版式
母版占位符slide_master.placeholders控制全局占位符样式
标题占位符slide.placeholders[0]通常位于页面顶部
内容占位符slide.placeholders[1]支持多级列表
页脚占位符]slide.placeholders[2]底部固定信息区域

(3)结构解剖图

在这里插入图片描述

三.基础:常用方法详解

⚠️避免报错:

  1. 文件路径 没有写绝对路径默认是处理python代码所在路径的文件,因此需要把代码文件放到这个处理的文件同一文件夹里。
  2. 修改部分代码 可以举一反三。

(1)新建空白版式ppt

✅ 元素定位之后我们有其他操作,比如,输入文字、点击搜索,为简化方便理解只展示定位。
💻 代码:

from pptx import Presentation

# 创建新工地
prs = Presentation()  # 相当于新建PPT文件

# 选择毛坯房户型(内置版式)
title_slide_layout = prs.slide_layouts[0]  # 0号是标题页版式
content_slide_layout = prs.slide_layouts[1]  # 1号是内容页版式

# 盖新楼层
slide = prs.slides.add_slide(title_slide_layout)  # 添加指定版式的幻灯片

prs.save(r"C:\Users\ZHAOY\PycharmProjects\1\整理后的文件\文档\新建PPT-1.pptx")

如图:

(2)创建标题、副标题

💻 代码:

from pptx import Presentation

文件 = Presentation()  # 创建一个PPT容器
幻灯片 = 文件.slides.add_slide(文件.slide_layouts[0])
标题 = 幻灯片.shapes.title
副标题 = 幻灯片.placeholders[1]
标题.text = '技术职场教练'
副标题.text = 'python 办公自动化'

文件.save(r"C:\Users\ZHAOY\PycharmProjects\1\整理后的文件\文档\百页宝典.pptx")  # 功德圆满

如图:
在这里插入图片描述

(3)创建正文

💻 代码:

from pptx import Presentation
# 1.创建一个PPT容器
文件 = Presentation()
幻灯片 = 文件.slides.add_slide(文件.slide_layouts[1])
标题 = 幻灯片.shapes.title
正文 = 幻灯片.shapes.placeholders[1]

# 2.添加内容
标题.text = '年度KPI回顾'
文本框 = 正文.text_frame
文本框.text = "重点项目"

# 3.保存
文件.save(r"C:\Users\ZHAOY\PycharmProjects\1\整理后的文件\文档\年度KPI回顾_添加段落.pptx")

📦如图:
在这里插入图片描述

(4)添加段落

💻 代码:

from pptx import Presentation
# 1.创建一个PPT容器
文件 = Presentation()
幻灯片 = 文件.slides.add_slide(文件.slide_layouts[1])
标题 = 幻灯片.shapes.title
正文 = 幻灯片.shapes.placeholders[1]

# 2.添加内容
标题.text = '年度KPI回顾'
文本框 = 正文.text_frame
文本框.text = "重点项目"
段落 = 文本框.add_paragraph()
段落.text = "长坂坡项目:成功用嗓门吓退83万曹军(达成率1000%)"
段落 = 文本框.add_paragraph()
段落.text = "入川战役:暴揍严颜后收获迷弟一枚(现为VIP快递员)"

# 3.保存
文件.save(r"C:\Users\ZHAOY\PycharmProjects\1\整理后的文件\文档\年度KPI回顾_添加段落1.pptx")

📦如图:
在这里插入图片描述

(5)添加层级关系

💻 代码:

from pptx import Presentation
# 1.创建一个PPT容器
文件 = Presentation()
幻灯片 = 文件.slides.add_slide(文件.slide_layouts[1])
标题 = 幻灯片.shapes.title
正文 = 幻灯片.shapes.placeholders[1]

# 2.添加内容
标题.text = '年度KPI回顾'
文本框 = 正文.text_frame
文本框.text = "重点项目"
文本框.level = 1
段落 = 文本框.add_paragraph()
段落.text = "长坂坡项目:成功用嗓门吓退83万曹军(达成率1000%)"
段落.level = 2
段落 = 文本框.add_paragraph()
段落.level = 2
段落.text = "入川战役:暴揍严颜后收获迷弟一枚(现为VIP快递员)"

# 3.保存
文件.save(r"C:\Users\ZHAOY\PycharmProjects\1\整理后的文件\文档\年度KPI回顾_添加层级段落.pptx")

📦如图:
在这里插入图片描述
💡 扩展性:朋友们!实际中,我们可能需要添加多个层级,只要按照此种方法,增加代码即可!

(6)设置样式

💻 代码:

from pptx import Presentation
from pptx.util import Cm,Pt
# 1.创建一个PPT容器
文件 = Presentation()
幻灯片 = 文件.slides.add_slide(文件.slide_layouts[6])

# 2.设置样式
left = top = width = height =Cm(4)
文本框对象 = 幻灯片.shapes.add_textbox(left,top,width,height)
文本框 = 文本框对象.text_frame
文本框.text = '未达标项'
段落 = 文本框.add_paragraph()
段落.text = '戒酒计划失败(误砸张郃家水壶后,被军师罚写《酒与蛇矛的平衡之道》3000字)'
段落.font.bold = True
段落.font.size = Pt(40)
段落.font.name = '微软雅黑'

# 3.保存
文件.save(r"C:\Users\ZHAOY\PycharmProjects\1\整理后的文件\文档\年度KPI回顾_设置样式.pptx")

📦如图:
在这里插入图片描述

四.实战案例集锦:

实战综合示例:PPT文字批量替换:3行代码拯救发际线

💻 代码:

# 文字批量替换
from pptx import Presentation

def replace_text_preserve_format(ppt_path, old_text, new_text):
    prs = Presentation(ppt_path)  # 打开PPT保险柜

    # 三层嵌套精准定位
    for slide in prs.slides:  # 第一层:翻页
        for shape in slide.shapes:  # 第二层:扫描元素
            if shape.has_text_frame:  # 发现文本框!
                for paragraph in shape.text_frame.paragraphs:  # 第三层:段落级
                    for run in paragraph.runs:  # 第四层:文字块级
                        if old_text in run.text:
                            run.text = run.text.replace(old_text, new_text)  # 外科手术式替换

    prs.save(f"format_keep_{ppt_path}")  # 安全保存
    print("✓ 格式保卫战胜利!获得成就:Tony老师")


# 使用示例(把"老板"改为"最帅的领航员")
replace_text_preserve_format("年度KPI回顾_设置样式.pptx", "误砸张郃家水壶后,被军师罚写《酒与蛇矛的平衡之道》3000字", "罚写《酒与蛇矛的平衡之道》")

源ppt图:

在这里插入图片描述

效果图:
在这里插入图片描述

📒避坑指南:

  1. 实际开发中建议多次测试修改,某些函数,可能新老版本ppt软件不兼容。
  2. 特殊区域处理:
    `# 处理表格单元格
    if shape.has_table:
    for cell in shape.table.iter_cells():
    for paragraph in cell.text_frame.paragraphs:
    # 同上处理逻辑
    处理图表标题
    if shape.has_chart:
    shape.chart.chart_title.text_frame.text = “新标题”

💡 调试技巧:先测试单个文档生成,再扩展为批量处理
💡在评论区告诉我,下期教你用Python搞定!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术职场教练

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值