TOP

Як вбудувати Python скрипт в ODS файл

Опис

LibreOffice Calc дає користувачам можливість створювати власні макроси на мові Python, проте дані макроси можуть зберігатися лише на ПК користувача, тобто в самій програмі. Нажаль LO Calc немає вбудованої можливості зберігати Python скрипти в самому *.ods файлі, що створює незручності в роботі з такими скриптами, оскільки їх неможливо передати разом з даними до іншого користувача.

Вирішити цю проблему можна лише вручну, а саме перепакувати *.ods файл, добавивши необхідні Python скрипти.

Отже, давайте дізнаємось, як можна вбудувати Python скрипти в ODS файл, щоби була можливість їх надсилати іншим користувачам.


Python Folder

Усі макроси на Python зберігаються в наступній папці:

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

Якщо папки Scripts та python відсутні, то вам потрібно створити їх вручну.

Код Python макросу

Нижче наведений Python скрипт для макросу HelloPython, який прописує фразу "Hello Python!" в комірку "B8" в програмі LibreOffice Calc.

Щоби додати новий макрос, створіть файл myPyScripts.py та відкрийте його за допомогою Notepad++ (або Windows Notepad) і скопіюйте туди наведений нижче текст:

from scriptforge import CreateScriptService

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

Потім, закрийте Notepad++ та поверніться до LibreOffice Calc. Щоби запустити цей скрипт, відкрийте меню Tools - Macros - Organise Macros - Python..., виберіть "My Macros", розкрийте папку "myPyScripts" та вибравши HelloPython натисніть кнопку Run.

Перенесення Python скрипта у файл ODS

Для того, щоби перенести Python-скрипт в *.ods файл, необхідно його розпакувати будь-яким архіватором (7-zip, WinRAR тощо) в окрему папку. Так, все вірно, ваш *.ods файл це просто архів набору папок та файлів.

Далі в цій розархівованій папці створіть підпапку Scripts, а в ній - підпапку python. Наступним кроком, скопіюйте в папку python файл myPyScripts.py.

Необхідно також явно прописати шлях до файлу, де знаходиться ваш Python-макрос. Для цього в папці META-INF відредагуйте файл manifest.xml, добавивши наступну стрічку:

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

Тепер заархівуйте вміст раніше розархівованої папки з вашими змінами в *.zip архів. Далі, перейменуйте цей архів, змінивши його назву (щоби не перезаписати ваш оригінальний файл) та розширення з *.zip на *.ods.

Використання розширення

Ви також можете скористатись готовим набором функцій та утиліт написаних на Python встановивши розширення YLC Utilities.

Після цього, даний функціонал буде доступний у всіх файлах, які будуть відкриті в LibreOffice Calc.

Меню YLC Utilities в LO Calc

Меню YLC Utilities в LO Calc

Меню YLC Utilities в Excel

Меню YLC Utilities в Excel