TOP

Jak osadzić skrypt Python w pliku ODS

Opis

LibreOffice Calc umożliwia użytkownikom tworzenie własnych makr w języku Python, jednakże te makra mogą być przechowywane tylko na komputerze użytkownika, czyli w samym programie. Niestety LO Calc nie posiada wbudowanej możliwości zapisywania skryptów Python w samym pliku *.ods, co stwarza niedogodności w pracy z takimi skryptami, ponieważ nie można ich przekazać razem z danymi innemu użytkownikowi.

Rozwiązać ten problem można tylko ręcznie, a mianowicie przepakować plik *.ods, dodając niezbędne skrypty Python.

Zatem, dowiedzmy się, jak można osadzić skrypty Python w plik ODS, aby była możliwość ich wysyłania innym użytkownikom.


Python Folder

Wszystkie makra w Pythonie są przechowywane w następującym folderze:

%APPDATA%\LibreOffice\4\user\Scripts\python

Jeśli foldery Scripts i python nie istnieją, to musisz je utworzyć ręcznie.

Kod makra Python

Poniżej przedstawiono skrypt Python dla makra HelloPython, który wpisuje frazę "Hello Python!" do komórki "B8" w programie LibreOffice Calc.

Aby dodać nowe makro, utwórz plik myPyScripts.py i otwórz go za pomocą Notepad++ (lub Windows Notepad) i skopiuj tam poniższy tekst:

from scriptforge import CreateScriptService

def HelloPython():
    doc = CreateScriptService("Calc")
    doc.SetValue("B8", "Hello Python!")
    return None

Następnie zamknij Notepad++ i wróć do LibreOffice Calc. Aby uruchomić ten skrypt, otwórz menu Tools - Macros - Organise Macros - Python..., wybierz "My Macros", rozwiń folder "myPyScripts" i wybierając HelloPython naciśnij przycisk Run.

Przeniesienie skryptu Python do pliku ODS

Aby przenieść skrypt Python do pliku *.ods, należy go rozpakować dowolnym archiwizerem (7-zip, WinRAR itp.) do osobnego folderu. Tak, wszystko się zgadza, Twój plik *.ods to po prostu archiwum zbioru folderów i plików.

Następnie w tym rozpakowanym folderze utwórz podfolder Scripts, a w nim - podfolder python. Kolejnym krokiem, skopiuj do folderu python plik myPyScripts.py.

Należy również jawnie określić ścieżkę do pliku, gdzie znajduje się Twoje makro Python. W tym celu w folderze META-INF edytuj plik manifest.xml, dodając następujący wiersz:

<manifest:file-entry manifest:full-path="Scripts/python/myPyScripts.py" manifest:media-type="application/binary"/>

Teraz spakuj zawartość wcześniej rozpakowanego folderu z Twoimi zmianami do archiwum *.zip. Następnie zmień nazwę tego archiwum, zmieniając jego nazwę (aby nie nadpisać oryginalnego pliku) i rozszerzenie z *.zip na *.ods.

Użycie rozszerzenia

Możesz również skorzystać z gotowego zestawu funkcji i narzędzi napisanych w Python instalując rozszerzenie YLC Utilities.

Następnie, ta funkcjonalność będzie dostępna we wszystkich plikach, które zostaną otwarte w LibreOffice Calc.

Menu YLC Utilities w LO Calc

Menu YLC Utilities w LO Calc

Menu YLC Utilities w Excel

Menu YLC Utilities w Excel