ome*_*ach 4 python excel win32com office-2013
我在 office 2010 中使用 python 和 excel,在那里没有问题。我使用 python 的 makepy 模块来绑定到 txcel com 对象。
但是,在另一台计算机上,我安装了 office 2013,当我启动 makepy 时,没有列出 excel 选项(与 office 2010 不同,其中 makepy 列出了“Microsoft Excel 14.0 对象库”)。
我在注册表中搜索了“Microsoft Excel 15.0 对象库”,它就在那里。我尝试使用 :makepy -d 'Microsoft Excel 15.0 Object Library'
但这没有用。
帮助将不胜感激。谢谢。
问题是 win32com 模块只在注册表项下查找win32键,Typelib但 Office 15.0 有一些win64键。要解决此问题,请找到如下所示的部分Lib/site-packages/win32com/client/selecttlb.py:
# Only care about "{lcid}\win32" key - jump straight there.
try:
key4 = win32api.RegOpenKey(key3, "%s\\win32" % (lcid,))
except win32api.error:
continue
Run Code Online (Sandbox Code Playgroud)
并像这样修改它:
# Only care about "{lcid}\win32" key - jump straight there.
try:
key4 = win32api.RegOpenKey(key3, "%s\\win32" % (lcid,))
except win32api.error:
try:
key4 = win32api.RegOpenKey(key3, "%s\\win64" % (lcid,))
except win32api.error:
continue
Run Code Online (Sandbox Code Playgroud)
老问题,但我希望这对某人有所帮助。