среда, 2 января 2019 г.

Макросы на Python в LibreOffice

Не все знают, что в LibreOffice можно использовать Python для написания макросов вместо Basic. Преимуществом будет в разы бОльшая производительность макроса. Недостатком - невозможность нормального написания и отладки макроса в IDE, встроенной в LibreOffice.
Самое первое, что нужно сделать, если вы захотите использовать Python для написания своих макросов (помимо знания самого Python'a) - это установить расширение APSO для возможности нормально управлять макросами, написанными на Python.
Второе - осилить вот эти статьи (на английском, к сожалению) и все ссылки с них на другие статьи: https://wiki.documentfoundation.org/Macros/Design_Guide, https://wiki.openoffice.org/wiki/Python.
Ах да, учитывайте, что LibreOffice таскает в своей поставке свой Python, уж не знаю какой версии. Однако, есть возможность использовать и внешний Python. Другое дело, что в этом случае будет возможность напороться на то, что ваш макрос на другом компьютере работать не будет из-за несовместимостей в версиях Python (я про 2.7 vs. 3.x).
По-хорошему, следовало бы развивать эту замечательную возможность в LibreOffice, начиная от приведения во вменяемый вид диалогов управления и организации макросов и внедрением в базовую поставку какой-нить простенькой IDE для Python, и заканчивая написанием полного хорошего руководства по написанию макросов на Python. Однако, к сожалению и как всегда, этим просто некому заниматься =(.
Update: иностранные товарищи подсказали мне, что внезапно они пишут справку по макросам на Python. Вот ссылка https://help.libreoffice.org/6.3/en-US/text/sbasic/python/main0000.html.

5 комментариев:

  1. Хотел узнать макросы на Python по Libre имеют совместимость с MO?

    ОтветитьУдалить
    Ответы
    1. Есть подозрение, что нет (если речь про MS Office). MS Office умеет в макросы только на VBA (Visual Basic for Applications)

      Удалить
    2. шутите?) у майкрософта- и либре офиса даже vba редко совместим, а вы про Python

      Удалить
  2. LibreOffice 6 использует встроенный Python 3.5.4

    ОтветитьУдалить

Внимание! Сообщения проходят премодерацию!