Tulong sa LibreOffice 25.8
Posible ang pagtawag sa mga script ng Python mula sa LibreOffice Basic macros, at maaaring makuha ang mahahalagang feature gaya ng:
ComputerName pagkakakilanlan o OSName posible ang pagtuklas,
Basic FileLen() function at com.sun.star.ucb.SimpleFileAccess. getSize() Ang function ng API ay nagpapakita ng 2 Gigabytes file size upper limit na tinutulungan ng Python na malampasan,
com.sun.star.util.PathSettings maaaring gawing normal,
at marami pang iba.
Isang makatwirang pagkakalantad sa LibreOffice Basic at sa Application Programming Interface (API) Inirerekomenda ang mga feature bago magsagawa ng mga inter-language na tawag mula Basic hanggang Python, hanggang JavaScript o anumang iba pang script engine.
Ang mga script ng Python ay maaaring personal, ibinahagi, o naka-embed sa mga dokumento. Upang maisakatuparan ang mga ito, ang LibreOffice Basic ay kailangang mabigyan ng mga lokasyon ng script ng Python. Paghanap com.sun.star.script.provider.XScript ang mga bagay na sumusunod sa interface ng UNO ay nagpapahintulot sa pagpapatupad ng mga script ng Python:
         Option Explicit
             
         Public Function GetPythonScript(macro As String, _
                 Optional location As String) As com.sun.star.script.provider.Xscript
             ''' Grab Python script object bago isagawa
             ' Mga argumento:
             ' macro : bilang "library/module.py$macro" o "module.py$macro"
             ' lokasyon: bilang "dokumento", "share", "user" o ENUM(eration)
             ' Resulta:
             ' matatagpuan com.sun.star.script.provider.XScript UNO serbisyo'''
             If IsMissing(location) Then location = "user"
             Dim mspf As Object ' com.sun.star.script.provider.MasterScriptProviderFactory
             Dim sp Bilang Object ' com.sun.star.script.provider.XScriptProvider compatible
             Dim uri As String
             If location="document" Then
                 sp = ThisComponent.getScriptProvider()
             Else
                 mspf = CreateUnoService("com.sun.star.script.provider.MasterScriptProviderFactory")
                 sp = mspf.createScriptProvider("")
             End If
             uri = "vnd.sun.star.script:"& macro &"?language=Python&location="& location
             GetPythonScript = sp.getScript(uri)
         End Function ' GetPythonScript
      workstation_name = script.invoke(Array(), Array(), Array())
opSysName = script.invoke(Array(), in_outs, Array()) ' ang in_out ay isang Array
file_len = script.invoke(Array(systemFilePath), Array(), Array())
normalizedPath = script.invoke(Array(systemFilePath), Array(), Array())
sa ibaba ComputerName , at GetFilelen Ang mga gawain ay tumatawag sa kanilang mga katapat na Python, gamit ang nabanggit GetPythonScript function. Hindi detalyado ang paghawak ng exception.
         Option Explicit
         Option Compatible ' Ang mga Properties ay sinusuportahan
             
         Private scr As Object ' com.sun.star.script.provider.XScript
             
         Private Property Get ComputerName As String
             '''Pangalan ng workstation'''
             scr = GetPythonScript("Platform.py$computer_name", "document")
             ComputerName = scr.invoke(Array(), Array(), Array())
         End Property ' ComputerName
             
         Private Function GetFilelen(systemFilePath As String) As Currency
             '''Laki ng file sa bytes'''
             scr = GetPythonScript("Os/Path.py$get_size", Script.ISEMBEDDED)
             GetFilelen = scr.invoke(Array(systemFilePath), Array(), Array(),)
         End Function ' GetFilelen
             
         Private Type _SCRIPT_LOCATION
             ISEMBEDDED Bilang String ' script ng dokumento
             ISPERSONAL Bilang String ' user script
             ISHARED Bilang String ' LibreOffice macro
         End Type ' _SCRIPT_LOCATION
             
         Public Function Script() As Object ' Text enumeration
             Static enums As _SCRIPT_LOCATION : With enums
             If .ISEMBEDDED = "" Then
                 .ISEMBEDDED = "dokumento" ' script ng dokumento
                 .ISPERSONAL = "user" ' mga script ng user
                 .ISSHARED = "share" ' LibreOffice macro
             End If : End With ' enums
             Script = enums
         End Function ' Script
      Dalawang magkaibang Python module ang tinatawag. Maaari silang mai-embed sa kasalukuyang dokumento, alinman ay maiimbak sa file system. Nilaktawan ang pagsusuri sa uri ng argumento para sa kalinawan:
Platform.py
         # -*- coding: utf-8 -*-
         from __future__ import unicode_literals
          
         import platform
          
         def computer_name() -> str:
             return platform.node()
          
         def OSname() -> str:
             return platform.system()
      Os/Path.py
         # -*- coding: utf-8 -*-
         from __future__ import unicode_literals
          
         import os.path
          
         def get_size(systemFilePath: str) -> str:
             return str(os.path.getsize(systemFilePath))
          
         def normalyze(systemPath: str) -> str:
             return os.path.normpath(systemPath)
      Ang mekanismo ng pagtawag para sa personal o nakabahaging mga script ng Python ay kapareho ng sa mga naka-embed na script. Ang mga pangalan ng library ay nakamapa sa mga folder. Ang pag-compute ng LibreOffice user profile at shared modules system file path ay maaaring isagawa bilang detalyado sa Pagkuha ng impormasyon ng session . sa ibaba OSName , HelloWorld at NormalizePath Ang mga gawain ay tumatawag sa kanilang mga katapat na Python, gamit ang nabanggit GetPythonScript function. Hindi detalyado ang paghawak ng exception.
         Option Explicit
         Option Compatible ' Ang mga Properties ay sinusuportahan
             
         Private scr As Object ' com.sun.star.script.provider.XScript
             
         Private Property Get OSName As String
             '''Platform name bilang "Linux", "Darwin" o "Windows"'''
             scr = GetPythonScript("Platform.py$OSname", Script.ISPERSONAL)
             OSName = scr.invoke(Array(), Array(), Array()) 
         End Property ' OSName
             
         Private Sub HelloWorld()
             '''Nagbahagi si LibreOffice Python ng sample'''
             scr = GetPythonScript("HelloWorld.py$HelloWorldPython", Script.ISSHARED)
             scr.invoke(Array(), Array(), Array(),)
         End Sub ' HelloWorld
             
         Public Function NormalizePath(systemFilePath As String) As String
             '''Strip kalabisan '\..' sa landas'''
             scr = GetPythonScript("Os/Path.py$normalyze", "user")
             NormalizePath = scr.invoke(Array(systemFilePath), Array(), Array())
         End Function ' NormalizePath
      Ang LibreOffice na naka-embed na Python ay naglalaman ng maraming karaniwang mga aklatan upang makinabang. Mayroon silang maraming hanay ng tampok, tulad ng ngunit hindi limitado sa:
argparse Parser para sa mga opsyon sa command-line, argumento at sub-command
cmath Mga function ng matematika para sa mga kumplikadong numero
csv Pagbabasa at pagsusulat ng mga CSV file
datetime Mga uri ng tunay na petsa at oras
json JSON encoder at decoder
matematika Mga function ng matematika
re Mga operasyon ng regular na expression
saksakan Mababang antas ng interface ng networking
sys Mga parameter at function na partikular sa system
unittest at bakas Unit testing framework at Track Python execution
xml.etree.ElementTree ElementTree XML API