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

时间:2015-07-01 05:57:46

标签: python python-2.7 ms-office powerpoint-2010

我在Windows 7上使用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幻灯片上没有任何内容。谷歌搜索也没有多少出现。有线索吗?

1 个答案:

答案 0 :(得分:1)

没有"开放"的概念。或"编辑" PowerPoint对象模型中的幻灯片。相反,你得到一张幻灯片的引用(我怀疑你的" Base = Presentation.Slides.Add(1,12)"行完成了。)

PowerPoint有一个分层对象模型:Presentation包含幻灯片,幻灯片包含Shapes,Shapes具有各种属性,您可以通过它们的属性和方法进行修改。

我不使用Python或知道它与PPT的通信有多充分,但是:

您的BASE对象(幻灯片,请记住)可能有一个Shapes集合。迭代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.