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.
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.
Poniżej przedstawiono skrypt Python dla makra
Aby dodać nowe makro, utwórz plik
from scriptforge import CreateScriptService
def HelloPython():
doc = CreateScriptService("Calc")
doc.SetValue("B8", "Hello Python!")
return None
Następnie zamknij
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
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.
Możesz również skorzystać z gotowego zestawu funkcji i narzędzi napisanych w
Następnie, ta funkcjonalność będzie dostępna we wszystkich plikach, które zostaną otwarte w LibreOffice Calc.