LibreOffice Calc дає користувачам можливість створювати власні макроси на мові Python, проте дані макроси можуть зберігатися лише на ПК користувача, тобто в самій програмі. Нажаль LO Calc немає вбудованої можливості зберігати Python скрипти в самому *.ods файлі, що створює незручності в роботі з такими скриптами, оскільки їх неможливо передати разом з даними до іншого користувача.
Вирішити цю проблему можна лише вручну, а саме перепакувати *.ods файл, добавивши необхідні Python скрипти.
Отже, давайте дізнаємось, як можна вбудувати Python скрипти в ODS файл, щоби була можливість їх надсилати іншим користувачам.
Усі макроси на Python зберігаються в наступній папці:
%APPDATA%\LibreOffice\4\user\Scripts\python
Якщо папки Scripts та python відсутні, то вам потрібно створити їх вручну.
Нижче наведений Python скрипт для макросу
Щоби додати новий макрос, створіть файл
from scriptforge import CreateScriptService
def HelloPython():
doc = CreateScriptService("Calc")
doc.SetValue("B8", "Hello Python!")
return None
Потім, закрийте
Для того, щоби перенести Python-скрипт в *.ods файл, необхідно його розпакувати будь-яким архіватором (7-zip, WinRAR тощо) в окрему папку. Так, все вірно, ваш *.ods файл це просто архів набору папок та файлів.
Далі в цій розархівованій папці створіть підпапку Scripts, а в ній - підпапку python. Наступним кроком, скопіюйте в папку python файл
Необхідно також явно прописати шлях до файлу, де знаходиться ваш Python-макрос. Для цього в папці META-INF відредагуйте файл manifest.xml, добавивши наступну стрічку:
<manifest:file-entry manifest:full-path="Scripts/python/myPyScripts.py" manifest:media-type="application/binary"/>
Тепер заархівуйте вміст раніше розархівованої папки з вашими змінами в *.zip архів. Далі, перейменуйте цей архів, змінивши його назву (щоби не перезаписати ваш оригінальний файл) та розширення з *.zip на *.ods.
Ви також можете скористатись готовим набором функцій та утиліт написаних на
Після цього, даний функціонал буде доступний у всіх файлах, які будуть відкриті в LibreOffice Calc.