python文本替换 数据库_Python pptx(Power Point)查找和替换文本(ctrl+H)

我知道这个问题很老,但我刚刚完成了一个使用python每天更新powerpoint的项目。基本上,每天早上运行python脚本,它从数据库中提取当天的数据,将数据放入powerpoint,然后执行powerpoint viewer来播放powerpoint。在

要回答您的问题,您必须循环浏览页面上的所有形状,并检查要搜索的字符串是否在形状.text. 您可以通过检查shape.has_text_框架是真的。这样可以避免错误。在

这是事情变得棘手的地方。如果你只是替换了形状.text对于要插入的文本,格式可能会松动。形状.text实际上是形状中所有文本的集合。这些文本可能会被分割成许多“运行”,并且所有这些运行可能具有不同的格式,如果您重写,这些格式将丢失形状.text或者更换部分绳子。在

幻灯片上有形状,形状可以有文本框,文本框有段落(至少一个)。总是这样。即使它是空白的),段落也可以有行。任何级别都可以有格式,而且您无法确定字符串被拆分的运行次数。在

在我的例子中,我确保任何要被替换的弦都是它自己的形状。您仍然需要一直深入到运行并在那里设置文本,以便保留所有格式。另外,你匹配的字符串形状.text可能实际上会分散到多个行,所以在第一行设置文本时,我也会将该段中所有其他行中的文本设置为空白。在

随机代码截图:from pptx import Presentation

testString = '{{thingToReplace}}'

replaceString = 'this will be inserted'

ppt = Presentation('somepptxfile.pptx')

def replaceText(shape, string,replaceString):

#this is the hard part

#you know the string is in there, but it may be across many runs

for slide in ppt.slides:

for shape in slide.shapes:

if shape.has_text_frame:

if(shape.text.find(testString)!=-1:

replaceText(shape,testString,replaceString)

抱歉,如果有任何打字错误。我在工作。。。。。在

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值