首页 > 解决方案 > 如何根据 slide_id Python pptx 编辑幻灯片

问题描述

问题 我一直在寻找解决方案,但找不到足够的文档来解决这个问题。我正在尝试编辑已复制到目录中的幻灯片。(我已确保清除所有数据,只留下一些徽标)我所做的是打印出幻灯片 ID,并尝试通过他们的 ID 访问幻灯片,并希望为初学者添加一些文本框。但是,我一直在

File "masterScript_2.2.py", line 7385, in <module>
title.text = "Hello, World!"
AttributeError: 'NoneType' object has no attribute 'text' 

问题 有什么解决办法吗?感谢并非常感谢。

代码

pptxDst = os.getcwd() + "/" + "test.pptx"
# Load the powerpoint in the respective month folder
prs = Presentation(pptxDst)


for slide in prs.slides:
    print(slide.slide_id)

# Get the slide by id to access it
slide_1 = prs.slides.get(256)
print(slide_1)
title = slide_1.shapes.title

title.text = "Hello, World!"
prs.save("test.pptx")

标签: pythonpython-3.xpython-pptx

解决方案


看来您已经很好地访问了幻灯片,但幻灯片没有标题占位符。

Shapes.title如果有标题占位符,或者None幻灯片没有标题,则返回标题占位符。如果您删除了除徽标之外的所有形状,则找不到标题占位符。

这将使违规行等效于:

None.text = "Hello, World!"

这解释了您的错误消息AttributeError: 'NoneType' object has no attribute 'text'


推荐阅读