Python-在已经存在的演示文稿中编辑Powerpoint幻灯片内容



我在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.

最新更新