Взаимодействие с AlterOffice через COM на Windows

AlterOffice предоставляет механизм автоматизации на базе UNO (Universal Network Objects), который позволяет управлять офисными приложениями извне. На Windows эта автоматизация возможна через COM-интерфейс, что делает AlterOffice  доступным из языков, таких как VBA, Python, 1C. Это удобно, когда требуется автоматизировать работу с документами — например, для генерации отчетов, конвертации форматов или пакетной обработки файлов.

Требования

  • AlterOffice установлен на Windows.
  • AlterOffice зарегистрирован как COM-сервер (обычно выполняется автоматически при установке).
  • Язык, поддерживающий вызов COM-объектов.

Инициализация и доступ к объектам

1. Инициализация и доступ к объектам

Python
service_manager = win32com.client.Dispatch("AlterOffice.ServiceManager")
VBA
Set oSM = CreateObject("AlterOffice.ServiceManager")

Это основной объект, через который запрашиваются все остальные службы AlterOffice.


2. Получение объекта Desktop

Python
desktop = service_manager.CreateInstance("com.sun.star.frame.Desktop")
VBA
Set oDesktop = oSM.createInstance("com.sun.star.frame.Desktop")
Desktop управляет окнами и позволяет открывать или создавать документы.

3. Открытие документа

Python
document = desktop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, ())
VBA
Dim oDoc As Object
Set oDoc = oDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())
private:factory/scalc - открывает новый пустой табличный документ.

Заключение

COM-интерфейс AlterOffice  позволяет автоматизировать работу с документами из скриптов и приложений на Windows, используя привычные инструменты Windows-автоматизации. Он мощен, но требует знания UNO API. Для сложных задач рекомендуется ознакомиться с  документацией https://support.almi-partner.ru/help/ru/21.