首页 > 解决方案 > python - win32com excel不可见

问题描述

我在使用 win32com 时遇到问题。当我使用 Word 或 Powerpoint(不是 EXCEL)时,它们会弹出(没有页面)。

import win32com.client
Word = win32com.client.gencache.EnsureDispatch("Word.Application")
Word.Visible = True

但是用EXCEL,就不行了。甚至在任务管理器上,Excel 也是不可见的。

import win32com.client
Excel = win32com.client.gencache.EnsureDispatch("Excel.Application")
Excel.Visible = True
Process finished with exit code 0

此外,当我编写更多代码时,会出现另一个问题。

wb = Excel.Workbooks.add()
ws = wb.Worksheets("Sheet1")
raise AttributeError("'%s' object has no attribute '%s'" % (repr(self), attr))
AttributeError: '<win32com.gen_py.Microsoft Excel 16.0 Object Library.Workbooks instance at 0x63711088>' object has no attribute 'add'

问题是什么?请帮我!TT

标签: pythonexcel

解决方案


我无法重现您的问题Excel.Visible = True。但我注意到您Process finished with exit code 0的报告表明解释器已退出。之后,您的 COM 客户端消失,Excel 也将消失。在 PythonWin 或 IDLE 中以交互方式尝试此操作。

您对这一行的问题:

wb = Excel.Workbooks.add()

是 VBA 方法实际上被称为Addnot add。您已使用gencache. 这样做的好处是您可以获得类似 Intellitype 的提示,但缺点是您不再拥有 COM 的不区分大小写的后期绑定查找。


推荐阅读