如何用python pptx替换PPP中的Text?

时间:2019-03-11 05:44:14

标签: python powerpoint python-pptx

我想用Python-pptx替换Powerpoint中文本框中的文本。 我在网上找到的所有内容都对我不起作用,并且文档对我没有帮助。

所以我有一个带有文本的文本框:

  • $$Name 1$$
  • $$Name 2$$

并且我想将$$Name1 $$更改为Tom

我该如何实现?

3 个答案:

答案 0 :(得分:0)

python-pptx中定义的TextFrame对象有助于操纵文本框的内容。您可以执行以下操作:

from python-pptx import Presentation
"""open file"""
prs = Presentaion('pptfile.pptx')
"""get to the required slide"""
slide = prs.slides[0]
"""Find required text box"""
for shape in slide.shapes:
    if not shape.has_text_frame:
        continue
    text_frame = shape.text_frame
    if "Name 1" == text_frame.text:
        text_frame.text = "Tom"
"""save the file"""
prs.save("pptfile.pptx")

答案 1 :(得分:0)

尝试一下:

import pptx

input_pptx = "Input File Path"
prs = pptx.Presentation((input_pptx))
testString = "$$Name1 $$" 
replaceString = 'Tom'

title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)

for slide in prs.slides:
    for shape in slide.shapes:
        if shape.has_text_frame:
            if(shape.text.find(testString))!=-1:
                shape.text = shape.text.replace(testString, replaceString)

        if not shape.has_table:
            continue    

prs.save('C:/test.pptx')

答案 2 :(得分:0)

好的,谢谢。我刚刚发现,我的PowerPoint示例完全被搞砸了。用空白的新PowerPoint不能正常工作