Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将win32com.client.constants与MS Word一起使用?_Python_Python 3.x_Win32com - Fatal编程技术网

Python 如何将win32com.client.constants与MS Word一起使用?

Python 如何将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

这个代码有什么问题?为什么win32com.client.constants没有属性WDWindowsStateMimize

>>> 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”)
解决了我的
属性错误问题