【问题标题】:win32com: work with excel file by opening it in backgroundwin32com:通过在后台打开 excel 文件来处理它
【发布时间】:2019-03-05 06:46:14
【问题描述】:
所以我使用以下代码打开现有的 excel 文件。即使我使 False 可见,但这总是会打开 excel 文件 UI。但是我想在后台运行它。我该怎么做?
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open('my_sheet.xlsm')
excel.Visible = False
【问题讨论】:
标签:
python
pywin32
win32com
【解决方案1】:
我现在使用 MS Excel 的替代金山电子表格之一。我下面的 sn-p 用于在后台运行应用程序。
from win32com import client
xApp = None
for aname in ('Excel', 'eT', 'KeT'):
try:
xApp = client.Dispatch(aname + '.Application')
except client.pywintypes.com_error:
continue
else:
break
if xApp is None:
print('No app found')
raise SystemExit # Application is unavailable.
else:
# do something
wb = excel.Workbooks.Open('my_sheet.xlsm')
在旧版本的 MS Excel(2013 年之前)和 KS 电子表格(2014 年之前)上,即使没有将 xApp.Visible 显式设置为 False,上述代码也可以正常工作。但是,在最新版本的电子表格中,它会在退出应用程序时启动一个小的 UI 窗口。