我在Windows7上使用Python 2.7.2和Office 2010。我有一个Powerpoint文件,它有指向目录中其他文档的链接。我想使用Python循环浏览形状标题,在目录中找到匹配的名称,并在Powerpoint文件中创建超链接。只要我能读那些形状的字幕,我就能做剩下的。
我设法做到了这一点,至少打开了Powerpoint文件:
import win32com.client
Presentation = Application.Presentations.Open("c:\path\to\stnd4.pptx")
我已经找到了很多方法来添加不存在的幻灯片,并添加形状或标题,但我似乎找不到任何方法来编辑现有的幻灯片。这让我添加一张幻灯片:
Base = Presentation.Slides.Add(1, 12)
但是,任何试图打开或编辑现有幻灯片的操作都会失败:
Base = Presentation.Slides.Open(1)
Base = Presentation.Slides.Edit(1)
我也试过
help(Presentation)
但我只得到一般的win32com
信息,在Powerpoint幻灯片上什么都没有。谷歌搜索也没怎么出现。有线索吗?
在PowerPoint对象模型中没有"打开"或"编辑"幻灯片的概念。相反,你会得到一张幻灯片的参考(我怀疑你的"Base=Presentation.Slides.Add(1/12)"行就完成了)。
PowerPoint有一个分层对象模型:演示文稿包含幻灯片,幻灯片包含形状,形状有各种属性,您可以通过它们的属性和方法进行修改。
我不使用Python,也不知道它能与PPT进行多充分的交流,但:
你的BASE对象(一张幻灯片,记住)可能有一个Shapes集合。在"形状"集合中循环,并对每个形状尝试以下操作:
If the shape's .HasTextFrame property is true then
If the shape's .TextFrame.HasText property is true then
The shape's .TextFrame.TextRange.Text property will return the text in the shape.