TOP

Wie man ein Python-Skript in eine ODS-Datei einbettet

Beschreibung

LibreOffice Calc ermöglicht Benutzern, eigene Makros in der Sprache Python zu erstellen, diese Makros können jedoch nur auf dem PC des Benutzers, d.h. in der Anwendung selbst, gespeichert werden. Leider bietet LO Calc keine eingebaute Möglichkeit, Python-Skripte in der *.ods-Datei selbst zu speichern, was die Arbeit mit solchen Skripten erschwert, da sie nicht zusammen mit den Daten an einen anderen Benutzer weitergegeben werden können.

Dieses Problem kann nur manuell gelöst werden, indem die *.ods-Datei neu gepackt und die erforderlichen Python-Skripte hinzugefügt werden.

Lassen Sie uns also herausfinden, wie Sie Python-Skripte in eine ODS-Datei einbetten können, damit sie an andere Benutzer gesendet werden können.


Python Folder

Alle Makros in Python werden im folgenden Ordner gespeichert:

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

Wenn die Ordner Scripts und python nicht vorhanden sind, müssen Sie diese manuell erstellen.

Python-Makrocode

Nachfolgend finden Sie das Python-Skript für das Makro HelloPython, das die Phrase "Hello Python!" in die Zelle "B8" in LibreOffice Calc schreibt.

Um ein neues Makro hinzuzufügen, erstellen Sie eine Datei myPyScripts.py und öffnen Sie diese mit Notepad++ (oder Windows Notepad) und kopieren Sie den folgenden Text hinein:

from scriptforge import CreateScriptService

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

Schließen Sie dann Notepad++ und kehren Sie zu LibreOffice Calc zurück. Um dieses Skript auszuführen, öffnen Sie das Menü Tools - Macros - Organise Macros - Python..., wählen Sie "My Macros", erweitern Sie den Ordner "myPyScripts" und wählen Sie HelloPython, drücken Sie die Schaltfläche Run.

Übertragen eines Python-Skripts in eine ODS-Datei

Um ein Python-Skript in eine *.ods-Datei zu übertragen, müssen Sie diese mit einem beliebigen Archivierungsprogramm (7-zip, WinRAR usw.) in einen separaten Ordner entpacken. Ja, das ist richtig, Ihre *.ods-Datei ist lediglich ein Archiv von Ordnern und Dateien.

Erstellen Sie anschließend in diesem entpackten Ordner einen Unterordner Scripts und darin einen Unterordner python. Kopieren Sie im nächsten Schritt die Datei myPyScripts.py in den Ordner python.

Sie müssen auch den Pfad zur Datei, in der sich Ihr Python-Makro befindet, explizit angeben. Dazu bearbeiten Sie in dem Ordner META-INF die Datei manifest.xml, indem Sie die folgende Zeile hinzufügen:

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

Archivieren Sie nun den Inhalt des zuvor entpackten Ordners mit Ihren Änderungen in einem *.zip-Archiv. Benennen Sie anschließend dieses Archiv um, indem Sie seinen Namen (um Ihre Originaldatei nicht zu überschreiben) und die Erweiterung von *.zip in *.ods ändern.

Verwendung der Erweiterung

Sie können auch einen fertigen Satz von Funktionen und Dienstprogrammen, geschrieben in Python, verwenden, indem Sie die Erweiterung YLC Utilities installieren.

Danach steht diese Funktionalität in allen Dateien zur Verfügung, die in LibreOffice Calc geöffnet werden.

YLC Utilities-Menü in LO Calc

YLC Utilities-Menü in LO Calc

YLC Utilities-Menü in Excel

YLC Utilities-Menü in Excel