win32com: работа с файлом Excel, открыв его в фоновом режиме

#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 при выходе из приложения запускалось небольшое окно пользовательского интерфейса.