Python win32com открывает Excel с плагином Bloomberg - PullRequest
6 голосов
/ 05 июня 2010

Я пытаюсь автоматизировать создание электронной таблицы Excel 2007, которая использует плагин Bloomberg для снижения текущих цен. Проблема в том, что когда я открываю Excel через win32com, плагин Bloomberg не загружается (поэтому все формулы заканчиваются ошибками «#NAME?»).

Удаление и переустановка плагина вручную работает, но копирование кода VBA из записанного макроса приводит к ошибке «Ошибка выполнения 13»: несоответствие типов. Я могу нажать кнопку «Завершить», и все работает нормально, но я хочу, чтобы это было полностью автоматизировано.

Мой код:

import win32com.client
xl = win32com.client.gencache.EnsureDispatch("Excel.Application")
xl.Visible = True
MainWorkBook = xl.Workbooks.Add(1)
xl.AddIns("Bloomberg Excel Tools").Installed = False
xl.AddIns("Bloomberg Excel Tools").Installed = True

Настройка DisplayAlerts = False не перехватывает ошибку времени выполнения.

1 Ответ

5 голосов
/ 09 октября 2013

вы должны открыть файл bloomberg.xla примерно так:

from win32com.client import DispatchEx
xl = DispatchEx('Excel.Application')
xl.Workbooks.Open('C:/blp/API/Office Tools/BloombergUI.xla')

см. Здесь для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.addin.aspx

...