blog.furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

Makro w Pythonie dla LibreOffice/OpenOffice - wstęp

LibreOffice i OpenOffice nie ma wbudowanego edytora do tworzenie makr w Pythonie tak jak ma to miejsce dla VBA. Dlatego skrypt z funkcjami w Pythonie należy utworzyć w ulubionym edytorze (lub IDE) a następnie umieścić (lub zapisywać na bierząco w trakcie tworzenia) w jednym z poniższych katalogów.

  • katalog na indywidualne skrypty użytkownika - podkatalog w katalogu domowym użytkownika niewymagjący uprawnień root'a

    ~/.config/libreoffice/3/user/Scripts/python/
    
  • w starszych wersjach może to być

    ~/.libreoffice/3/user/Scripts/python/
    
  • katalog na skrypty wspólne dla wszystkich użytkowników - wymaga uprawnień root'a

    /usr/lib/libreoffice/share/Scripts/python/
    

Może być wymagane samodzielne utworzenie ostatniego podkatalogu czyli python/.

Po umieszczeniu skryptu w jednym z katalogów będzie on dostępny w LibreOffice poprzez Narzędzia > Makra > Wykonaj makro..., które to otwiera okno z listą dostępnych skryptów. W części "Biblioteka" wyświetlana jest lista plików dostępnych we wspomnianych katalogach. Pliki z katalogu na indywidualne skrypty użytkownika są wyświetlane w Moje makra zaś pliki z katalogu na skrypty wspólne w Makra LibreOffice. Na liście są też wyświetlane makra umieszczone ("zaszyte") w otwartym dokumencie ale to temat na osobny opis.

Po zaznaczeniu pliku na liście "Biblioteka" w części "Nazwa makra" pojawiają się funkcje zdefiniowane w wybranym pliku. Teraz można wybraną funkcję zaznaczyć i uruchomić.

LibreOffice przy każdym uruchamianiu funkcji wczytuje plik z dysku więc nie ma potrzeby restartowania LibreOffice po każdej modyfikacji skryptu. Można więc skrypt jednocześnie poprawiać w edytorze i szybko sprawdzać jego działanie w LibreOffice.

W następnej części już na temat samego tworzenia skryptu.

Testowane na:
system: Linux Mint 13
office: LibreOffice 3.5.4.2
python: python 2.7.3

Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury