LibreOffice 24.8 Bantuan
Memanggil skrip Python dari makro LibreOffice Basic memungkinkan, dan fitur berharga yang bisa didapatkan seperti:
identifikasi NamaKomputer atau deteksi NamaOS dimungkinkan
Fungsi Basic FileLen() dan fungsi API com.sun.star.ucb.SimpleFileAccess.getSize() menunjukan batas atas ukuran berkas sebesar 2 Gigabytes yang diatasi oleh Python,
com.sun.star.util.PathSettings dapat dinormalisasi
dan banyak lagi.
Paparan yang masuk akal untuk LibreOffice Basic dan fitur Antarmuka Aplikasi Pemrograman (API) direkomendasikan sebelum melakukan panggilan antar-bahasa dari Basic ke Python, JavaScript atau mesin skrip lainnya.
Skrip Python dapat bersifat pribadi, dapat dibagikan, atau disematkan dalam dokumen. Untuk mengeksekusinya, LibreOffice Basic perlu disediakan dengan lokasi skrip Python. Menemukan obyek UNO yang patuh antar muka com.sun.star.script.provider.XScript memungkinkan eksekusi skrip Python:
         Option Explicit
             
         Public Function GetPythonScript(macro As String, _
                 Optional location As String) As com.sun.star.script.provider.Xscript
             ''' Ambil obyek skrip Python sebelum mengeksekusi
             ' Argumen:
             '    macro   : sebagai "library/module.py$macro" atau "module.py$macro"
             '    lokasi: sebagai "dokumen", "bagi", "pengguna" atau ENUM(erasi)
             ' Hasil:
             '    terletak layanan UNO com.sun.star.script.provider.XScript '''
             If IsMissing(location) Then location = "user"
             Dim mspf As Object ' com.sun.star.script.provider.MasterScriptProviderFactory
             kompatibel Dim sp As Object ' com.sun.star.script.provider.XScriptProvider
             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()) ' in_out adalah sebuah Array
file_len = script.invoke(Array(systemFilePath), Array(), Array())
normalizedPath = script.invoke(Array(systemFilePath), Array(), Array())
Di bawah rutin Computer Name, dan GetFilelen memanggil salinan Python, menggunakan fungsi GetPythonScript yang telah dipanggil sebelumnya. Penanganan exception tidak dirinci
         Option Explicit
         Opsi Properti ' yang Kompatibel didukung
             
         Private scr As Object ' com.sun.star.script.provider.XScript
             
         Private Property Get ComputerName As String
             '''nama Stasiun Kerja'''
             scr = GetPythonScript("Platform.py$computer_name", "document")
             ComputerName = scr.invoke(Array(), Array(), Array())
         End Property ' ComputerName
             
         Private Function GetFilelen(systemFilePath As String) As Currency
             '''Ukuran berkas dalam byte'''
             scr = GetPythonScript("Os/Path.py$get_size", Script.ISEMBEDDED)
             GetFilelen = scr.invoke(Array(systemFilePath), Array(), Array(),)
         End Function ' GetFilelen
             
         Private Type _SCRIPT_LOCATION
             skrip dokumen ISEMBEDDED AS String '
             skrip pengguna ISPERSONAL As String '
             ISSHARED As String ' makro LibreOffice
         End Type ' _SCRIPT_LOCATION
             
         Public Function Script() As Object ' Text enumeration
             Static enums As _SCRIPT_LOCATION : With enums
             If .ISEMBEDDED = "" Then
                 skrip dokumen .ISEMBEDDED = "document" '
                 skrip pengguna .ISPERSONAL = "user" '
                 .ISSHARED = "share" ' makro LibreOffice
             End If : End With ' enums
             Script = enums
         End Function ' Script
      Dua modul Python yang berbeda dipanggil. Keduanya dapat ditanamkan di dokumen saat ini, atau disimpan dalam sistem berkas. Pengecekan tipe argumen dilewati untuk kejelasan:
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)
      Mekanisme panggilan untuk skrip Python pribadi atau bersama identik dengan skrip yang tertanam. Nama pustaka dipetakan pada folder. Komputasi profil pengguna dan jalur sistem berkas modul bersama LibreOffice dapat dijalankan secara rinci pada Mendapatkan informasi sesi. Rutin OSName, HelloWorld dan NormalizePath berikut memanggil bagian Python masing-masing, menggunakan fungsi GetPythonScript yang telah dipanggil sebelumnya. Penanganan exception tidak terperinci
         Option Explicit
         Opsi ' Properti Kompatibel didukung
             
         Private scr As Object ' com.sun.star.script.provider.XScript
             
         Private Property Get OSName As String
             '''Nama platform seperti "Linux", "Darwin" atau "Windows"'''
             scr = GetPythonScript("Platform.py$OSname", Script.ISPERSONAL)
             OSName = scr.invoke(Array(), Array(), Array()) 
         End Property ' OSName
             
         Private Sub HelloWorld()
             '''LibreOffice sampel Python bersama
             scr = GetPythonScript("HelloWorld.py$HelloWorldPython", Script.ISSHARED)
             scr.invoke(Array(), Array(), Array(),)
         End Sub ' HelloWorld
             
         Public Function NormalizePath(systemFilePath As String) As String
             '''Mengeluarkan kelebihan '\..' di jalur'''
             scr = GetPythonScript("Os/Path.py$normalyze", "user")
             NormalizePath = scr.invoke(Array(systemFilePath), Array(), Array())
         End Function ' NormalizePath
      LibreOffice yang tertanam Python berisi beberapa pustaka standar untuk mendapatkan manfaat. Mereka membawa banyak himpunan fitur, seperti tapi tidak terbatas pada:
argparse Pengurai untuk opsi baris-perintah, argumen, dan sub-perintah
cmath Fungsi matematis untuk bilangan kompleks
csv Pembaca dan penulis berkas CSV
datetimeTipe tanggal dan waktu yang asli
json enkoder dan dekoder JSON
math Fungsi matematis
re Operasi ekspresi reguler
socket Antarmuka jaringan tingkat rendah
sysParameter dan fungsi spesifik sistem
unittest dan trace Kerangka uji unit dan eksekusi Lacak Python
xml.etree.ElementTree ElementTree XML API