9

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

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

Что мы думаем над сценариями OpenOffice 3 в принципе!

Приветствия,

Энди

ответ

9

Начальная точка

Начало здесь: Python as a macro language

Примеры

Используйте Python category в вики.

Есть ли лучший язык для написания сценариев?

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

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

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

5

Я посмотрел на это и нашел удивительно мало документации о том, как использовать 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, который будет выводиться в output.txt в директории вашего скрипта.

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

 Смежные вопросы

  • Нет связанных вопросов^_^