Hilfe für LibreOffice 24.8
Der Dienst ScriptForge.Basic schlägt eine Sammlung von LibreOffice Basic-Methoden vor, die in einem Python-Kontext ausgeführt werden können. Die Methoden des Dienstes Basic reproduzieren die genaue Syntax und das Verhalten der integrierten Basic-Funktionen.
Typisches Beispiel:
   bas.MsgBox('Diesen Text in einem Meldungsfeld aus einem Python-Skript anzeigen')
  ScriptForge. Der Dienst Basic ist auf Python-Skripte beschränkt.
Bevor Sie den Dienst Basic verwenden, importieren Sie die Methode CreateScriptService() aus dem Modul scriptforge:
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  | Name | Schreibgeschützt | Typ | Beschreibung | 
|---|---|---|---|
| MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Ja | Integer | Werte: 0, 1, 5, 4, 3 | 
| MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Ja | Integer | Werte: 48, 64, 32, 16 | 
| MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Ja | Integer | Werte: 2, 128, 256, 512 | 
| IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Ja | Integer | Werte: 3, 2, 5, 7, 1, 4, 6 | 
| StarDesktop | Ja | UNO | Gibt das Objekt StarDesktop zurück, das die LibreOffice-Anwendung darstellt. | 
| ThisComponent | Ja | UNO | Wenn die aktuelle Komponente auf ein LibreOffice-Dokument verweist, gibt diese Methode das UNO-Objekt zurück, welches das Dokument darstellt. Diese Eigenschaft gibt None zurück, wenn die aktuelle Komponente keinem Dokument entspricht. | 
| ThisDatabaseDocument | Ja | UNO | Wenn das Skript von einem Base-Dokument oder einer seiner Unterkomponenten ausgeführt wird, gibt diese Methode die Hauptkomponente der Base-Instanz zurück. Andernfalls gibt diese Eigenschaft None zurück. | 
Konvertiert einen numerischen Ausdruck oder eine Zeichenfolge in ein natives Python-Objekt datetime.datetime.
Diese Methode stellt Python-Skripten die integrierte Basic-Funktion CDate zur Verfügung.
svc.CDate(expression: any): obj
expression: ein numerischer Ausdruck oder eine Zeichenfolge, die ein Datum darstellt.
    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  Konvertiert ein(e) Datum/Uhrzeit in UNO-Darstellung in ein natives Python-Objekt datetime.datetime.
svc.CDateFromUnoDateTime(unodate: uno): obj
unodate: Datum/Zeit eines UNO-Objekts eines der folgenden Typen: com.sun.star.util.DateTime, com.sun.star.util.Date oder com.sun.star.util.Time
Das folgende Beispiel erstellt ein Objekt com.sun.star.util.DateTime und konvertiert es in ein Python-Objekt datetime.datetime.
    uno_date = bas.CreateUnoStruct('com.sun.star.util.DateTime')
    uno_date.Year = 1983
    uno_date.Month = 2
    uno_date.Day = 23
    new_date = bas.CDateFromUnoDateTime(uno_date)
    bas.MsgBox(str(new_date)) # 1983-02-23 00:00:00
  Konvertiert eine Datumsdarstellung in ein Objekt com.sun.star.util.DateTime.
svc.CDateToUnoDateTime(date: obj): uno
date: Datums/Zeit eines Pythonobjekts eines der folgenden Typen: datetime.datetime, datetime.date, datetime.time , float (time.time) oder time.struct_time.
    from datetime import datetime
    current_datetime = datetime.now()
    uno_date = bas.CDateToUnoDateTime(current_datetime)
    bas.MsgBox(str(uno_date.Year) + "-" + str(uno_date.Month) + "-" + str(uno_date.Day))
  Gibt einen Systempfad-Dateinamen für die angegebene URL file: zurück.
svc.ConvertFromUrl(url: str): str
url: Eine absolute URL file:.
Ein Systempfad-Dateiname.
    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt")
    bas.MsgBox(filename)
  Gibt eine URL file: für den angegebenen Systempfad zurück.
svc.ConvertToUrl(systempath: str): str
systempath: Ein Systemdateiname als Zeichenfolge.
Eine URL file: als Zeichenfolge.
    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt')
    bas.MsgBox(url)
  Instanziiert einen UNO-Dienst mit dem ProcessServiceManager.
svc.CreateUnoService(servicename: str): uno
servicename: Ein vollständig qualifizierter Servicename wie com.sun.star.ui.dialogs.FilePicker oder com.sun.star.sheet.FunctionAccess.
    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  Gibt eine Instanz einer UNO-Struktur des angegebenen Typs zurück.
svc.CreateUnoStruct(unostructure: str): uno
unostructure: Ein vollständig qualifizierter Strukturname wie com.sun.star.beans.Property oder com.sun.star.util.DateTime.
    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  Fügt ein Datum oder Zeitintervall mehrmals zu einem bestimmten Datum/einer bestimmten Uhrzeit hinzu und gibt das resultierende Datum zurück.
svc.DateAdd(interval: str, number: num, date: datetime): datetime
interval: Eine Zeichenfolge aus der folgenden Tabelle, welcher das Datum oder Zeitintervall festlegt.
number: Ein numerischer Ausdruck, der festlegt, wie oft der Wert interval addiert wird, wenn er positiv ist, oder subtrahiert wird, wenn er negativ ist.
date: Ein gegebener Wert datetime.datetime, der Wert interval wird number mal zu diesem Wert datetime.datetime hinzugefügt.
Ein Wert datetime.datetime.
    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  Gibt die Anzahl der Datums- oder Zeitintervalle zwischen zwei angegebenen Datums-/Zeitwerten zurück.
svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: Eine Zeichenfolge, welche das Datumsintervall festlegt, wie in der obigen Methode DateAdd beschrieben.
date1, date2: Die beiden zu vergleichenden Werte datetime.datetime.
Eine Zahl.
    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  Die Funktion DatePart gibt einen bestimmten Teil eines Datums zurück.
svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: Eine Zeichenfolge, welche das Datumsintervall festlegt, wie in der obigen Methode DateAdd beschrieben.
date: Das Datum/die Uhrzeit, ab der das Ergebnis berechnet wird.
firstdayofweek, firstweekofyear: optionale Parameter, die jeweils den Starttag einer Woche und die Startwoche eines Jahres festlegen, wie in der obigen Methode DateDiff beschrieben.
Der extrahierte Teil für das angegebene Datum/die angegebene Uhrzeit.
    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  Berechnet einen Datumswert aus einer Datumszeichenfolge.
svc.DateValue(date: str): datetime
Das berechnete Datum.
    dt = bas.DateValue("23-02-2011")
    print(dt)
  Konvertiert eine Zahl in eine Zeichenfolge und formatiert sie dann gemäß dem von Ihnen festgelegten Format.
svc.Format(expression: any, format = ''): str
    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  Gibt den Standardkontext der "Process Service Factory" zurück, sofern vorhanden, andernfalls wird eine Nullreferenz zurückgegeben.
GetDefaultContext ist eine Alternative zur Methode getComponentContext(), die von der globalen Variable XSCRIPTCONTEXT oder aus dem Modul uno.py verfügbar ist.
svc.GetDefaultContext(): uno
Der Standardkomponentenkontext wird verwendet, wenn Dienste über XMultiServiceFactory instanziiert werden. Siehe das Kapitel Professional UNO im Entwicklerhandbuch auf api.libreoffice.org für mehr Informationen.
    ctx = bas.GetDefaultContext()
  Gibt einen numerischen Wert zurück, der die grafische Benutzeroberfläche festlegt. Diese Funktion wird nur aus Gründen der Abwärtskompatibilität mit früheren Versionen bereitgestellt.
Verweist auf die Methode system() aus dem Python-Modul platform, um das Betriebssystem zu identifizieren.
svc.GetGuiType(): int
    n = bas.GetGuiType()
  Gibt das betriebssystemabhängige Verzeichnistrennzeichen zurück, das zum Festlegen von Dateipfaden verwendet wird.
Verwendet os.pathsep aus dem Python-Modul os, um das Pfadtrennzeichen zu identifizieren.
svc.GetPathSeparator(): str
    sep = bas.GetPathSeparator()
  Gibt die Anzahl der vom Betriebssystem bereitgestellten System-Ticks zurück. Mit dieser Funktion können Sie bestimmte Prozesse optimieren. Verwenden Sie diese Methode, um die Zeit in Millisekunden zu schätzen:
svc.GetSystemTicks(): int
    ticks_ini = bas.GetSystemTicks()
    time.sleep(1)
    ticks_end = bas.GetSystemTicks()
    bas.MsgBox("{} - {} = {}".format(ticks_end, ticks_ini,ticks_end - ticks_ini))
  Gibt das UNO-Objekt zurück, das alle gemeinsam genutzten Basic-Bibliotheken und -Module enthält.
Diese Methode ist das Python-Äquivalent zu GlobalScope.BasicLibraries in Basic-Skripten.
svc.GlobalScope.BasicLibraries(): uno
com.sun.star.script.XLibraryContainer
Das folgende Beispiel lädt die Gimmicks Bibliothek Basic, falls sie noch nicht geladen wurde.
    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  Gibt das UNO-Objekt zurück, das alle gemeinsam genutzten Dialogbibliotheken enthält.
Diese Methode ist das Python-Äquivalent zu GlobalScope.DialogLibraries in Basic-Skripten.
svc.GlobalScope.DialogLibraries(): uno
com.sun.star.comp.sfx2.DialogLibraryContainer
Das folgende Beispiel zeigt ein Meldungsfeld mit den Namen aller verfügbaren Dialogbibliotheken.
    dlg_libs = bas.GlobalScope.DialogLibraries()
    lib_names = dlg_libs.getElementNames()
    bas.MsgBox("\n".join(lib_names))
  svc.InputBox(prompt: str, [title: str], [default: str], [xpostwips: int, ypostwips: int]): str
String
    txt = s.InputBox('Bitte geben Sie einen Satz ein:', "Sehr geehrter Benutzer")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Bestätigung des Satzes")
  Ausführliche Informationen finden Sie im Wiki unter Input/Output to Screen with Python.
Zeigt einen Dialog mit einer Meldung an und gibt einen optionalen Wert zurück.
MB_xx-konstants helfen bei der Festlegung des Dialogtyps, der Anzahl und Art der anzuzeigenden Schaltflächen sowie des Symboltyps. Durch Addition ihrer jeweiligen Werte bilden sie Bitmuster, die das Aussehen des Dialogs MsgBox festlegen.
bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]
Eine optionale ganze Zahl, wie in den obigen Eigenschaften IDxx beschrieben.
Gibt das aktuelle Systemdatum und die aktuelle Uhrzeit als ein natives Python-Objekt datetime.datetime zurück.
svc.Now(): datetime
    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  Gibt einen ganzzahligen Farbwert zurück, der aus roten, grünen und blauen Komponenten besteht.
svc.RGB(red:int, green: int, blue: int): int
Integer
    YELLOW = bas.RGB(255,255,0)
  Untersuchen Sie Uno-Objekte oder -Variablen.
svc.Xray(obj: any)
obj: Eine Variable oder ein UNO-Objekt.
    bas.Xray(bas.StarDesktop)