Python Script для безопасного запуска макросов Excel - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть несколько процессов Excel, которые выполняются в макросах. Я попытался автоматизировать работу и хочу использовать Python для:

  1. Открыть Excel
  2. Добавить любые надстройки com32
  3. Запустить макрос
  4. Когда макрос завершится, закройте экземпляр excel

У меня есть пример кода ниже - я считаю, что код иногда нестабилен. Он не всегда добавляет надстройку, и я не знаю, когда закрывать объект Excel, т. Е. Если макрос выполняется какое-то время, скрипт python не знает, ждать.

Есть ли лучшие способы для достижения этого? Я хотел бы перенести больше макросов в python, но есть много пользователей сценариев Excel, так что это долгосрочная цель.

import win32com.client
import os
import traceback

DIRECTORY   = '*'
FILE        = '*.xlsm'
MACRO       = '*'   
path        = os.path.join(DIRECTORY, FILE)

if os.path.exists(path):
    try:
        xlApp = win32com.client.Dispatch('Excel.Application')
        xlApp.DisplayAlerts = False
        xlApp.Visible = True
        xlApp.RegisterXLL('*.xll')
        wb = xlApp.Workbooks.Open(Filename=path)
        xlApp.Application.Run(MACRO)
        wb.Save()
        wb.Close()
        xlApp.Application.Quit()
        print('Code ran successfully.')
    except:
        print('An error was encountered; see traceback.')
        print(traceback.format_exc())
        xlApp.Quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...