Python 如何将win32com.client.constants与MS Word一起使用?
这个代码有什么问题?为什么win32com.client.constants没有属性WDWindowsStateMimizePython 如何将win32com.client.constants与MS Word一起使用?,python,python-3.x,win32com,Python,Python 3.x,Win32com,这个代码有什么问题?为什么win32com.client.constants没有属性WDWindowsStateMimize >>> import win32com.client >>> w=win32com.client.Dispatch("Word.Application") >>> w.WindowState = win32com.client.constants.wdWindowStateMinimize Traceback (mos
>>> import win32com.client
>>> w=win32com.client.Dispatch("Word.Application")
>>> w.WindowState = win32com.client.constants.wdWindowStateMinimize
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
w.WindowState = win32com.client.constants.wdWindowStateMinimize
File "C:\Python34\lib\site-packages\win32com\client\__init__.py", line 170, in __getattr__
raise AttributeError(a)
AttributeError: wdWindowStateMinimize`
>>导入win32com.client
>>>w=win32com.client.Dispatch(“Word.Application”)
>>>w.WindowsState=win32com.client.constants.wdWindowsState
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
w、 WindowState=win32com.client.constants.wdwindowstate
文件“C:\Python34\lib\site packages\win32com\client\\uuuu init\uuuu.py”,第170行,在\uuuu getattr中__
提高属性错误(a)
AttributeError:WDWindowsStateMinimize`
您必须改用EnsureDispatch
:
>>> w=win32com.client.gencache.EnsureDispatch('Word.Application')
>>> win32com.client.constants.wdWindowStateMinimize
2
>>>
请注意,第一次在特定COM服务器上使用EnsureDispatch
时,pywin32会为其生成COM类型库(在您的示例中为Word),因此可能需要几秒钟的时间。对于Excel,它花费了将近30秒。但在那之后,发送速度很快,您甚至可以使用常规的发送
(因此您可以将应用程序编码为使用发送,这比EnsureRedispatch快,并检查常量是否已定义,如果未定义,则代码使用EnsureRedispatch)
有关更多详细信息,请参阅 嗨,现在我在与其他用户共享我的程序时遇到了问题。使用cx\U冻结模块将程序转换为exe格式。它在我的电脑上运行良好,但在其他电脑上会出现错误。您能给我一些建议吗?@sssergey请发布一个单独的问题。请注意,您不需要
导入win32com.client.constants
——这会产生一个导入错误
。对于我在2021年的情况,将win32com.client.Dispatch(“Excel.Application”)
替换为win32com.client.gencache.gencache(“Excel.Application”)
解决了我的属性错误问题