无法使用win32com常量来自动执行powerpoint

时间:2016-08-13 09:36:39

标签: python-3.x pywin32 win32com

我是python的新手,试图使用win32com自动化powerpoint。我无法在脚本中导入或使用常量。我已经运行makepy来创建库。以下是错误消息&脚本。有人能告诉我如何导入常量吗?

脚本:

import win32com.client

Application    =win32com.client.gencache.EnsureDispatch("PowerPoint.Application")
Presentation = Application.Presentations.Add()
Base = Presentation.Slides.Add(1, ppLayoutBlank)

错误讯息:

追踪(最近一次通话):   文件“ppt.py”,第14行,in     Base = Presentation.Slides.Add(1,ppLayoutBlank) NameError:名称'ppLayoutBlank'未定义

2 个答案:

答案 0 :(得分:0)

您选择的INTEROP方法取决于您要连接的应用程序接口。

未定义通常意味着没有这样的变量,但Python在这种情况下更经常引发NameError。所以这里发生的事情有点不清楚。

因此,取决于PPoint的版本如何与之通信。

我建议您使用pywinauto代替“brute_force”,即在右键,菜单等上模拟按键和/或点击等。

因为版本的名称不太可能通过版本而不是COM接口进行更改。

微软有一个讨厌的习惯,即只更改一点接口,然后一个程序停止工作。

如果你想坚持使用win32com,你必须阅读PPoint的特定版本(或Office版本)文档,以及Python版本的win32com文档。

您应该看看是否应该启动COM客户端,或者是否需要使用其他MS调整。

答案 1 :(得分:0)

我现在在Linux下,不能在这里测试,但尝试

import win32com.client.constants

...然后查找该模块中定义的常量。 另见How to use win32com.client.constants with MS Word?