pythonexcelcominterop:强制无头模式并阻止用户输入

2024-04-26 00:42:39 发布

您现在位置:Python中文网/ 问答频道 /正文

使用win32com与Excel交互:

import win32com.client
...
self.excel = win32com.client.gencache.EnsureDispatch("Excel.Application")
self.workbook = self.excel.Workbooks.Add()
#Modify the workbook...
self.workbook.SaveAs(...)
self.excel.Quit()

这很好地工作,只要在脚本启动之前没有Excel实例正在运行,就可以在后台(无头模式)生成一个新的Excel文档。在

但是,如果用户已经打开了Excel,则Python脚本创建的Excel实例将可见。我怎样才能防止这种情况发生?更糟糕的是,当用户在两个Excel实例中的任何一个执行任何操作(如单击单元格),脚本将失败:

^{pr2}$

有没有一种方法可以强制使用headless模式,特别是防止用户在GUI中的操作与正在运行的Python脚本发生冲突?换句话说,我希望脚本创建的Excel实例完全独立于可能正在进行的任何其他Excel活动。在


Tags: 实例用户importself脚本clientapplication模式

热门问题