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