python - 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
解决方案
我无法重现您的问题Excel.Visible = True
。但我注意到您Process finished with exit code 0
的报告表明解释器已退出。之后,您的 COM 客户端消失,Excel 也将消失。在 PythonWin 或 IDLE 中以交互方式尝试此操作。
您对这一行的问题:
wb = Excel.Workbooks.add()
是 VBA 方法实际上被称为Add
not add
。您已使用gencache
. 这样做的好处是您可以获得类似 Intellitype 的提示,但缺点是您不再拥有 COM 的不区分大小写的后期绑定查找。
推荐阅读
- angular - 带有验证错误的 Angular6 Material 自定义表单字段控件(mat-error)
- python - 如何根据python中另一个df的值过滤一个df
- java - 带有角度 api 请求的 tomcat 服务器问题
- swift - macOS Mojave 在 Swift 4 中找不到 /var/db/DetachedSignatures
- mysql - Pandas 使用 XML 列保存到 sql DF
- javascript - 从由于字符串长度而必须压缩的字符串创建可下载链接
- unity3d - Unity 烘焙失败:OpenRL 报告错误代码 501
- python - 在 Google Cloud Function 中访问用户定义的包(ModuleNotFoundError: No module named...)
- linux - 为复杂查询设置 Linux 命令别名
- sql - 在 TableAdapter 中使用 CONTAINS