Aide LibreOffice 25.8
Le service ScriptForge.Basic propose une collection de méthodes LibreOffice Basic à exécuter dans un contexte Python. Les méthodes de service Basic reproduisent la syntaxe et le comportement exacts des fonctions intégrées Basic.
Exemple typique
   bas.MsgBox('Afficher ce texte dans une boîte de message à partir d'un script Python')
  Le service ScriptForge.Basic est limité aux scripts Python.
Avant d'utiliser le service Basic, importez la méthode CreateScriptService() depuis le module scriptforge :
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  | Nom | ReadOnly | Type | Description | 
|---|---|---|---|
| MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Oui | Integer | Valeurs: 0, 1, 5, 4, 3 | 
| MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Oui | Integer | Valeurs: 48, 64, 32, 16 | 
| MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Oui | Integer | Valeurs: 2, 128, 256, 512 | 
| IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Oui | Integer | Valeurs : 3, 2, 5, 7, 1, 4, 6 | 
| StarDesktop | Oui | Objet | Renvoie l'objet StarDesktop qui représente l'application LibreOffice. | 
| ThisComponent | Oui | Objet | Si le composant actif fait référence à un document LibreOffice, cette méthode retourne l'objet UNO représentant le document. Cette propriété renvoie None lorsque le composant actuel ne correspond pas à un document. | 
| ThisDatabaseDocument | Oui | Objet | Si le script est exécuté à partir d'un document Base ou de l'un de ses sous-composants, cette méthode renvoie le composant principal de l'instance Base. Cette propriété renvoie None sinon. | 
| Liste des méthodes dans le service Basic | ||
|---|---|---|
| 
             CDate | 
             DateDiff | 
             GlobalScope.BasicLibraries | 
Des alternatives Python existent pour les méthodes marquées par (*).
Convertit une expression numérique ou une chaîne en un objet natif Python datetime.datetime.
Cette méthode expose la fonction intégrée Basic CDate aux scripts Python.
svc.CDate(expression: any): obj
expression : une expression numérique ou une chaîne représentant une date.
    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  Convertit une représentation date/heure UNO en un objet natif Python datetime.datetime.
svc.CDateFromUnoDateTime(unodate: uno): obj
unodate : un objet date/heure UNO de l'un des types suivants : com.sun.star.util.DateTime, com.sun.star.util. Date ou com.sun.star.util.Time
L'exemple suivant crée un objet com.sun.star.util.DateTime et le convertit en un objet Python 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
  Convertit une représentation de date en un objet com.sun.star.util.DateTime.
svc.CDateToUnoDateTime(date: obj): uno
date : un objet date/heure Python de l'un des types suivants : datetime.datetime, datetime.date, datetime.time , float (time.time) ou 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))
  Renvoie un nom de fichier de chemin système pour l'URL file : donnée.
svc.ConvertFromUrl(url: str): str
url : une URL file : absolu.
Un nom de fichier de chemin d'accès système.
    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt" )
    bas.MsgBox(filename)
  La méthode module uno fileUrlToSystemPath() renvoie un chemin système utilisant une syntaxe identique.
    import uno
    filename = uno.fileUrlToSystemPath( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt" )
    bas.MsgBox(filename)
  Renvoie une URL file : pour le chemin système donné.
svc.ConvertToUrl(systempath: str): str
systempath : un nom de fichier système sous forme de chaîne.
Une URL file: URL sous forme de chaîne.
    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt' )
    bas.MsgBox(url)
  La méthode module uno systemPathToFileUrl() renvoie une URL de fichier pour le chemin système donné.
    from uno import systemPathToFileUrl as ConvertToUrl
    filename = ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt' )
    bas.MsgBox(filename)
  Crée une instance d'un service Uno à l'aide de ProcessServiceManager.
svc.CreateUnoService(servicename: str): uno
servicename : un nom de service complet tel que com.sun.star.ui.dialogs.FilePicker ou com.sun.star.sheet.FunctionAccess.
    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  Retourne une instance d'une structure UNO du type spécifié.
svc.CreateUnoStruct(unostructure: str): uno
unostructure : nom de structure complet tel que com.sun.star.beans.Property ou com.sun.star.util.DateTime.
    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  La méthode module uno createUnoStruct() crée une instance d'un type de structure Uno.
    import uno
    p = uno.createUnoStruct( 'com.sun.star.beans.Property' )
    bas.MsgBox(p)
  Ajoute une date ou un intervalle de temps à une date/heure donnée un certain nombre de fois et renvoie la date résultante.
svc.DateAdd(interval: str, number: num, date: datetime): datetime
interval : une expression de chaîne de la table suivante, spécifiant la date ou l'intervalle de temps.
number : une expression numérique spécifiant la fréquence à laquelle la valeur de l'interval sera ajoutée lorsqu'elle est positive ou soustraite lorsqu'elle est négative.
date : une valeur datetime.datetime donnée, la valeur interval sera ajoutée number fois à cette valeur datetime.datetime.
Une valeur datetime.datetime.
    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  Renvoie le nombre d'intervalles de date ou d'heure entre deux valeurs date/heure données.
svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval : une expression de chaîne spécifiant l'intervalle de date, comme détaillé dans la méthode DateAdd ci-dessus.
date1, date2 : les deux valeurs datetime.datetime à comparer.
Un nombre.
    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  La fonction DatePart renvoie une partie spécifiée de la date.
svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval : une expression de chaîne spécifiant l'intervalle de date, comme détaillé dans la méthode DateAdd ci-dessus.
date : la date/heure à partir de laquelle est calculé le résultat.
firstdayofweek, firstweekofyear : paramètres facultatifs qui spécifient respectivement le jour de début d'une semaine et la semaine de début d'une année, comme détaillé dans la méthode DateDiff ci-dessus.
La partie extraite de la date/heure donnée.
    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  Calcule une valeur de date à partir d'une chaîne de date.
svc.DateValue(date: str): datetime
La date calculée.
    dt = bas.DateValue("23-02-2011")
    print(dt)
  Convertit un nombre en chaîne de caractères puis formate celle-ci en fonction du format spécifié.
svc.Format(expression: any, format = ''): str
    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  Renvoie le contexte par défaut du service de traitement, s'il existe ; sinon, renvoie une référence de valeur nulle.
GetDefaultContext est une alternative à la méthode getComponentContext() disponible à partir de la variable globale XSCRIPTCONTEXT ou depuis le module uno.py.
svc.GetDefaultContext(): uno
Le contexte de composant par défaut est utilisé lors de l'instanciation des services via XMultiServiceFactory. Voir le chapitre Professional UNO dans le Developer's Guide sur api.libreoffice.org pour plus d'informations.
    ctx = bas.GetDefaultContext()
  Renvoie une valeur numérique qui spécifie l'interface utilisateur graphique. Cette fonction n'est fournie qu'à des fins de compatibilité descendante avec les versions précédentes.
Référez-vous à la méthode system() du module Python platform pour identifier le système d'exploitation.
svc.GetGuiType(): int
    n = bas.GetGuiType()
  Renvoie le séparateur de répertoire dépendant du système d'exploitation utilisé pour spécifier les chemins d'accès aux fichiers.
Utilisez os.pathsep du module Python os pour identifiez le séparateur de chemin.
svc.GetPathSeparator(): str
    sep = bas.GetPathSeparator()
  Renvoie le nombre de cycles système fournis par le système d'exploitation. Vous pouvez utiliser cette fonction pour optimiser certains processus. Utilisez cette méthode pour estimer le temps en millisecondes :
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))
  Renvoie l'objet UNO contenant toutes les bibliothèques et modules de base partagés.
Cette méthode est l'équivalent Python de GlobalScope.BasicLibraries dans les scripts Basic.
svc.GlobalScope.BasicLibraries(): uno
com.sun.star.script.XLibraryContainer
L'exemple suivant charge la bibliothèque Basic Gimmicks si elle n'a pas encore été chargée.
    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  Renvoie l'objet UNO contenant toutes les bibliothèques de boîtes de dialogue partagées.
Cette méthode est l'équivalent Python de GlobalScope.DialogLibraries dans les scripts Basic.
svc.GlobalScope.DialogLibraries(): uno
com.sun.star.comp.sfx2.DialogLibraryContainer
L'exemple suivant montre une boîte de message avec les noms de toutes les bibliothèques de boîtes de dialogue disponibles.
    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('Veuillez saisir une phrase :', "Cher utilisateur")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Confirmation de la phrase")
  Pour des informations détaillées, veuillez vous référer à Entrée/Sortie à l'écran avec Python sur le Wiki.
Affiche une boîte de dialogue contenant un message et renvoie une valeur facultative.
Les constantes MB_xx permettent de spécifier le type de boîte de dialogue, le nombre et le type de boutons à afficher, ainsi que le type d'icône. En ajoutant leurs valeurs respectives, ils forment des motifs binaires, qui définissent l'apparence de la boîte de dialogue MsgBox.
bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]
Un entier facultatif comme détaillé dans les propriétés IDxx ci-dessus.
Renvoie la date et l'heure du système en tant qu'objet natif Python datetime.datetime.
svc.Now(): datetime
    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  Renvoie une valeur de couleur entière composée de composants rouge, vert et bleu.
svc.RGB(red:int, green: int, blue: int): int
Integer
    YELLOW = bas.RGB(255,255,0)
  Inspecte les objets ou variables UNO.
svc.Xray(obj: any)
obj : une variable ou un objet UNO.
    bas.Xray(bas.StarDesktop)