word = comtypes.client.CreateObject('Word.Application') 生成错误



Windows 10, Anaconda Spyder, Python试图将word"。doc"转换为PDF第一步失败

进口comtypes.client

word = comtypes.client.CreateObject(' word . application ')


得到错误:

回溯(最近一次调用):

文件",第1行,在word = comtypes.client.CreateObject(' word . application ')

File "C:ProgramDataAnaconda3libsite-packagescomtypesclient_init_.py",第250行,在CreateObject返回_manage(obj, clsid, interface=interface)

File "C:ProgramDataAnaconda3libsite-packagescomtypesclient_init_.py",第188行,在_manageobj = GetBestInterface(obj)

File "C:ProgramDataAnaconda3libsite-packagescomtypesclient_init_.py",第112行,在GetBestInterfaceInterface = getattr(mod, itf_name)

AttributeError: module 'comtypes.gen。Word'没有属性'_Application'


大多数网站似乎都说这不应该发生??

非常感谢。

word = comtypes.client.CreateObject("Word.Application") ->run ok
excel = comtypes.client.CreateObject("Excel.Application") ->run ok
powerpoint = comtypes.client.CreateObject("Powerpoint.Application") ->run class err

我认为这是python设置错误,但通过更改ms office安装解决了这个问题。

问题:

这个问题是由Windows注册表中不正确的COM互操作设置引起的。
(不包括python及其库)

我用"comtypes"one_answers"win32api",以及多个MS Office版本。

对COM对象的调用似乎有问题,
关于某些MS Office版本。


解决方案1:

  1. 点击开始菜单,打开控制面板

  2. 点击卸载程序(或在Windows XP中添加/删除程序)

  3. 找到Microsoft Office的条目并单击它。在你点击它之后,你应该会看到一个标签为Change的按钮出现在它旁边,或者在列表的顶部(取决于你使用的是什么版本的Windows)。点击这个更改按钮。

  4. 一旦出现Microsoft Office安装程序,选择修复选项并单击下一步以使Microsoft Office自行修复。完成此过程后,您可能需要重新启动计算机;设置完成后,Microsoft Office安装程序会告诉您是否需要执行此操作。


解决方案2:

安装经过测试并可以使用COM调用的MS Office版本。
以下是我测试的MS Office版本的结果:

工作的MS Office版本:2010、2019、365.
MS Office版本:2007、2013


有用的COM注册表路径检查:

MS Word x64:
"HKEY_CLASSES_ROOT WOW6432Node 接口{00020970 - 0000 - 0000 - c000 - 00020970} TypeLib">MS Word x32:
HKEY_CLASSES_ROOT Interface{00020970-0000-0000-C000-000000000046}TypeLib">
Both:HKEY_CLASSES_ROOT WOW6432Node TypeLib{00020970-0000-0000-C000-000000000046}">

  • 8.5适用于Office 2010
  • 8.6适用于Office 2013
  • 8.7适用于Office 2016

COM接口:
"HKEY_CLASSES_ROOT WOW6432Node 接口c033a {000 - 0000 - 0000 - c000 - 000000000046} TypeLib Version"

  • 2.5 if for Office 2010
  • 2.7适用于Office 2013
  • 2.8适用于Office 2016

"HKEY_CLASSES_ROOT WOW6432Node 接口c0339 {000 - 0000 - 0000 - c000 - 000000000046} TypeLib Version"

  • 2.5 if for Office 2010
  • 2.7适用于Office 2013
  • 2.8适用于Office 2016

相关内容

最新更新