TOP

Piszemy makro w Python dla LibreOffice Calc

Opis

LibreOffice Calc umożliwia użytkownikom tworzenie własnych makr przy użyciu wbudowanego języka programowania StarBasic. Ten język jest bardzo podobny do VBA ma jednak ograniczoną funkcjonalność, ponieważ jest rzadko używany.

Nowoczesne języki programowania, takie jak Python, dają znacznie więcej możliwości i posiadają szerszą gamę dodatkowych bibliotek na każdą okazję.

Nauczmy się więc, jak tworzyć własne makra, korzystając z tak popularnego obecnie języka programowania, jak Python.


Pakiet programów biurowych LibreOffice umożliwia tworzenie własnych makr w takich językach programowania innych firm jak Python, JavaScript, C++, Java.

StarBASIC Kod dla HelloWorld

Na początek przypomnijmy sobie, jak można napisać własny program, korzystając ze standardowych narzędzi LibreOffice Calc do pisania makr.

Poniżej kod makra HelloWorld , który określa wyrażenie "Hello World!" w komórce "B7" przy użyciu wbudowanego języka programowania StarBasic.

Aby dodać nowe makro, otwórz menu Tools - Macros - Edit Macros... , wybierz Module1 i skopiuj następujący tekst do modułu:

Sub HelloWorld
    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    
    'REM "doc" it's a current LO Calc workbook (active worksheet)
    doc = CreateScriptService("Calc")
    doc.SetValue("B7", "Hello World!")
End Sub

Następnie zamknij Macro Editor, wróć do LibreOffice Calc i uruchom nasze nowe makro poprzez menu Tools - Macros - Run Macro...

Python Folder

Przed napisaniem makra w Python musimy najpierw utworzyć plik *.py (myPyScripts.py) w następującym folderze:

%APPDATA%\LibreOffice\4\user\scripts\python

Jeśli foldery skrypty I pyton brakuje, należy je utworzyć ręcznie.

Python Kod dla HelloPython

Poniżej znajduje się skrypt Python dla makra HelloPython , który określa wyrażenie "Hello Python!" w komórce "B8" w programie LibreOffice Calc.

Aby dodać nowe makro, otwórz plik myPyScripts.py za pomocą Notepad++ (Lub Windows Notepad) i skopiuj tam następujący 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... , wybierać "My Macros" , otwórz folder "myPyScripts" i wybieranie HelloPython naciśnij przycisk Run .

Zauważ, że podane makra w StarBasic w Python korzystają z wbudowanej biblioteki ScriptForge . Ta biblioteka upraszcza pisanie makr dla użytkowników końcowych, ukrywając całą funkcjonalność systemu „pod maską”.

Korzystanie z rozszerzenia

Można także skorzystać z gotowego zestawu funkcje I pożytek napisane dalej Python instalując rozszerzenie YLC Utilities .

Następnie ta funkcjonalność będzie dostępna we wszystkich plikach otwieranych w programie LibreOffice Calc.