#python #pywin32 #win32com
#python #pywin32 #win32com
Вопрос:
Итак, я использую следующий код для открытия существующего файла Excel. Хотя я делаю видимым значение False, но это всегда открывает пользовательский интерфейс файла Excel. Однако я хочу запустить его в фоновом режиме. Как я могу это сделать?
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open('my_sheet.xlsm')
excel.Visible = False
Ответ №1:
Теперь я использую одну из альтернативных электронных таблиц Kingsoft от MS Excel. Приведенный ниже фрагмент использовался для запуска приложения в фоновом режиме.
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 Spreadsheet (до 2014 года) приведенный выше код работал нормально, даже без явного присвоения xApp.Visible значения False. Однако в последней версии Spreadsheet при выходе из приложения запускалось небольшое окно пользовательского интерфейса.