Python в OpenOffice 3
У меня есть куча таблиц Lotus 123 (не написанных мной) со сценариями Lotus в них, которые делают очень много работы (перемещение данных из одной таблицы в другую и другие подобные вещи). Я рассматриваю возможность переместить все это из Lotus 98 и перейти к чему-то более открытому, например OpenOffice.
Мне было интересно, где будет хорошее место, чтобы начать изучение сценариев OpenOffice 3. Является ли Python хорошим маршрутом, и если да, то где я могу найти рабочий код примеры OOo3? Какие-нибудь странные проблемы, о которых я должен знать? Должен ли я использовать другой язык сценариев, такой как Javascript или OOBasic??
Что думают люди о скриптах OpenOffice 3 в основном!
спасибо,
Энди
3 ответов
точка отсчета
Начало здесь: Python как язык макросов
примеры
использовать категория Python в вики.
есть ли лучший скриптовый язык?
Python имеет самый лучший синтаксис. Я бы рекомендовал JavaScript и OOBasic только при соблюдении этих двух условий:
- вы уже знаете язык
- вам нужен встроенный отладчик
С 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 в директории скрипта.
этого должно быть достаточно, чтобы вы начали.