我在 office 2010 中使用 python 和 excel,没有遇到任何问题。 我使用 python 的 makepy 模块来绑定(bind)到 txcel com 对象。
但是,在另一台计算机上我安装了 office 2013,当我启动 makepy 时没有列出 excel 选项(与 office 2010 不同,makepy 列出了“Microsoft Excel 14.0 对象库”)。
我在注册表中搜索了“Microsoft Excel 15.0 Object Library”,它就在那里。
我尝试使用:makepy -d 'Microsoft Excel 15.0 Object Library'
但这没有用。
帮助将不胜感激。 谢谢。
最佳答案
问题是 win32com 模块只在 typelib
注册表项的 win32
键下查找,但 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
然后像这样修改它:
# 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
老问题,但我希望这对某人有所帮助。
关于带有 Office 2013 (office 15) 的 Python Makepy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121529/