Откройте Excel и загрузите надстройку .vsto, используя Python - PullRequest
0 голосов
/ 10 января 2020

Я хочу открыть приложение Excel, используя Python. Я попытался использовать метод ниже, однако он не загружает надстройки по умолчанию. Я видел решения для надстроек на основе .xla. К сожалению, надстройка, которую я хочу использовать, - .vsto. Возможно ли это?

from win32com.client import Dispatch

xl = Dispatch("Excel.Application")
xl.Visible = True

1 Ответ

0 голосов
/ 10 января 2020

по умолчанию не загружает надстройки

Надстройки COM должны загружаться при автоматизации приложений Office. Кажется, проблема связана с надстройками.

Приложения Microsoft Office могут отключать надстройки VSTO, которые ведут себя неожиданно. Если приложение не загружает вашу надстройку VSTO, приложение может быть жестко отключено или программно отключено надстройка VSTO.

Может произойти жесткое отключение, когда надстройка VSTO вызывает неожиданное закрытие приложения. Это может также произойти на вашем компьютере разработки, если вы остановите отладчик во время выполнения обработчика событий Startup в вашей надстройке VSTO.

Может произойти мягкое отключение, когда надстройка VSTO выдает ошибку, которая вызывает не вызывает неожиданное закрытие приложения. Например, приложение может мягко отключить надстройку VSTO, если оно создает необработанное исключение во время выполнения обработчика события запуска.

При повторном включении надстройки VSTO с программным отключением приложение немедленно пытается загрузить надстройку VSTO. Если проблема, которая изначально вызывала программное отключение надстройки VSTO, не была устранена, приложение снова отключит программную надстройку VSTO. Подробнее об этом читайте в Как: повторно включить надстройку VSTO, которая была отключена в статье .


Вы можете использовать свойство Connect класса COMAddIn для проверки, включена ли надстройка или нет, и для принудительной загрузки:

If Application.COMAddIns(1).Connect Then 
 MsgBox "The add-in is connected." 
Else 
 MsgBox "The add-in is not connected." 
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...