带有 Office 2013 (office 15) 的 Python Makepy

标签 python excel win32com office-2013

我在 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/

相关文章:

python - 无法使用 python 运行 visio 宏

python - 如何将词典列表输出到 Excel 工作表?

python - PyQt 更新图形用户界面

python - Python Bottle 路由中的类作用域

python - 在python中模拟文件对象或iterables

arrays - VBA使用数组中的值创建Excel图表

python - Pandas 和 Pandas 锁定之外的 Xlsxwriter

python-3.x - 使用 win32com 从 xls 转换为 xlsx 时出错。如果我使用其他 excel 表,此程序会引发错误

python - 使用 python 提取 Outlook 电子邮件正文和收件人电子邮件地址

python - 将一个文件中的所有对象添加到另一个文件中的列表