Python w OpenOffice 3
Mam stertę arkuszy kalkulacyjnych Lotus 123 (nie napisanych przeze mnie) ze skryptami Lotus w nich wykonującymi strasznie dużo pracy (przenoszenie danych z jednego arkusza kalkulacyjnego do drugiego i inne podobne rzeczy). Rozważam przeniesienie tego wszystkiego z Lotusa 98 i przejście do czegoś bardziej otwartego, np. OpenOffice.
Zastanawiałem się, gdzie byłoby dobre miejsce, aby rozpocząć naukę skryptów OpenOffice 3. Czy Python jest dobrą drogą i jeśli tak, to gdzie mogę znaleźć działające przykłady kodu dla OOo3? Jakieś dziwne problemy, o których powinienem wiedzieć? Czy powinienem używać innego języka skryptowego, takiego jak Javascript lub Oobasic??
Co sądzą ludzie o skryptach OpenOffice 3 w zasadzie!
Pozdrawiam,
Andy
3 answers
Punkt wyjścia
Zacznij tutaj: Python jako język makr
Przykłady
Użyj kategorii Python w wiki.
Czy istnieje lepszy język skryptowy?
Python ma zdecydowanie najlepszą składnię. Polecam JavaScript i OOBasic tylko jeśli te dwa warunki są spełnione:
- You already know the language
- potrzebujesz wbudowanego debuggera
Z Pythonem, debugowanie zwykle nie jest dużym problemem, więc nie przegapisz debuggera i jest łatwiejszy do nauczenia się niż jakikolwiek inny język.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-25 09:28:22
Przyjrzałem się temu i znalazłem zaskakująco mało dokumentacji, jak używać Pythona jako języka skryptowego. Powiedziawszy to, zorientowałem się, czego potrzebuję i działa to dobrze dla moich prostych celów (tworzenie harmonogramu z rzędów). To nawet działało świetnie na OS X, biorąc pod uwagę, że OO.o jest dość młody na tej platformie. Python to świetny język, o wiele ładniejszy niż podstawowy. Oto kilka rzeczy, które musisz wiedzieć:
-
Twoim punktem wyjścia w skrypcie Pythona jest
XSCRIPTCONTEXT
, a zmienna globalna dostępna bezpośrednio ze skryptu. W ten sposób możesz zrobićworksheet = XSCRIPTCONTEXT.getDocument().getSheets().getByIndex(0)
The you can do
worksheet.getCellByPosition(x,y).getString()
Lub odpowiednie
setString()
, aby uzyskać dostęp do komórek. Na OS X musiałem umieścić skrypt w
$HOME/Library/Application Support/OpenOffice.org/3/user/Scripts/python
. Następnie jest odbierany przez okno makro.-
Umieść swoje makro w funkcji, powiedz
def macro
i dodaj
Na końcu.g_exportedScripts = macro,
-
Aby uzyskać wyjście debugowania, użyłem:
logfile = os.path.dirname(__file__.replace("file://","").replace("%20"," ")) + "/output.txt" sys.stdout = open(logfile, "a", 0) # unbuffered
Wtedy możesz użyć
print
, który będzie wyjście do wyjścia.txt w katalogu twojego skryptu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-01 00:00:27