Python в OpenOffice 3

У меня есть куча таблиц Lotus 123 (не написанных мной) со сценариями Lotus в них, которые делают очень много работы (перемещение данных из одной таблицы в другую и другие подобные вещи). Я рассматриваю возможность переместить все это из Lotus 98 и перейти к чему-то более открытому, например OpenOffice.

Мне было интересно, где будет хорошее место, чтобы начать изучение сценариев OpenOffice 3. Является ли Python хорошим маршрутом, и если да, то где я могу найти рабочий код примеры OOo3? Какие-нибудь странные проблемы, о которых я должен знать? Должен ли я использовать другой язык сценариев, такой как Javascript или OOBasic??

Что думают люди о скриптах OpenOffice 3 в основном!

спасибо,

Энди

3 ответов


точка отсчета

Начало здесь: Python как язык макросов

примеры

использовать категория Python в вики.

есть ли лучший скриптовый язык?

Python имеет самый лучший синтаксис. Я бы рекомендовал JavaScript и OOBasic только при соблюдении этих двух условий:

  1. вы уже знаете язык
  2. вам нужен встроенный отладчик

С Python отладка обычно не является большой проблемой, поэтому вы не пропустите отладчик, и его легче выучить, чем любой другой язык.


Я просмотрел это и нашел удивительно мало документации о том, как использовать Python в качестве языка сценариев. Сказав это, я понял, что мне нужно, и это работает хорошо для моих простых целей (создание расписания из строк). Он даже отлично работал на OS X, учитывая это OO.o довольно молод на этой платформе. Python-отличный язык, намного лучше, чем Basic. Вот некоторые вещи, которые вам нужно знать:

  • ваша начальная точка в Python скрипт XSCRIPTCONTEXT, глобальная переменная, доступная непосредственно из вашего скрипта. Таким образом, вы можете сделать

    worksheet = XSCRIPTCONTEXT.getDocument().getSheets().getByIndex(0)
    

    то, что вы можете сделать

    worksheet.getCellByPosition(x,y).getString()
    

    или соответствующей setString() для доступа к ячейкам.

  • в OS X мне пришлось поместить скрипт в $HOME/Library/Application Support/OpenOffice.org/3/user/Scripts/python. Затем он подхватывается диалогом макросов.

  • поместите свой макрос в функцию, скажем def macro и добавить

    g_exportedScripts = macro,
    

    в конец.

  • чтобы получить отладочный вывод, я использовал:

    logfile = os.path.dirname(__file__.replace("file://","").replace("%20"," ")) + "/output.txt"
    sys.stdout = open(logfile, "a", 0) # unbuffered
    

    затем вы можете использовать print, который будет выводиться в выходной.txt в директории скрипта.

этого должно быть достаточно, чтобы вы начали.