Ajuda do LibreOffice 24.8
O serviço ScriptForge.Basic propõe uma coleção de métodos LibreOffice Basic a serem executados em um contexto Python. Os métodos de serviço Basic reproduzem a sintaxe e o comportamento exatos das funções integradas do Basic.
Exemplo típico:
   bas.MsgBox('Mostra este texto numa caixa de mensagem a partir de um script Python')
  O serviço ScriptForge.Basic é limitado aos scripts em Python.
Antes de usar o serviço Basic, é necessário importar o método CreateScriptService() do módulo scriptforge:
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  | Nome | Somente leitura | Tipo | Descrição | 
|---|---|---|---|
| MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Sim | Integer | Valores: 0, 1, 5, 4, 3 | 
| MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Sim | Integer | Valores: 48, 64, 32, 16 | 
| MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Sim | Integer | Valores: 2, 128, 256, 512 | 
| IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Sim | Integer | Valores: 3, 2, 5, 7, 1, 4, 6 | 
| StarDesktop | Sim | Objeto | Retorna o objeto StarDesktop que representa o aplicativo LibreOffice. | 
| ThisComponent | Sim | objeto | Se o componente atual se referir a um documento LibreOffice, esse método retornará o objeto UNO que representa o documento. Esta propriedade retorna None quando o componente atual não corresponde a um documento. | 
| ThisDatabaseDocument | Sim | objeto | Se o script estiver sendo executado a partir de um documento Base ou qualquer um de seus subcomponentes, este método retorna o componente principal da instância Base. Caso contrário, esta propriedade retorna None. | 
Converte uma expressão numérica ou uma string para um objeto nativo Python do tipo datetime.datetime.
Este método expõe a função interna do Basic CDate para scripts em Python.
svc.CDate(expression: any): obj
expression: uma expressão numérica ou uma string representando uma data.
    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  Converte uma representação de data/tempo em UNO para um objeto nativo Python do tipo datetime.datetime.
svc.CDateFromUnoDateTime(unodate: uno): obj
unodate: Um objeto UNO que armazena data/tempo de um dos seguintes tipos: com.sun.star.util.DateTime, com.sun.star.util.Date ou com.sun.star.util.Time
O exemplo a seguir cria um objeto com.sun.star.util.DateTime e converte-o para um objeto Python do tipo 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
  Converte uma representação de data em um objeto com.sun.star.util.DateTime.
svc.CDateToUnoDateTime(date: obj): uno
date: Um objeto Python que armazena data/tempo de um dos seguintes tipos: 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))
  Retorna um caminho usando a notação do sistema para uma URL especificada em file:.
svc.ConvertFromUrl(url: str): str
url: Uma URL do tipo file:.
Um caminho de arquivo no formato do sistema.
    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt")
    bas.MsgBox(filename)
  Retorna uma URL do tipo file: para um caminho especificado no formato do sistema.
svc.ConvertToUrl(systempath: str): str
systempath: Um caminho para nome de arquivo no formato do sistema, como uma string.
Uma string no formato URL file:.
    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt')
    bas.MsgBox(url)
  Cria uma instância de um serviço UNO com o ProcessServiceManager.
svc.CreateUnoService(servicename: str): uno
servicename: Um nome completo para um serviço, como por exemplo com.sun.star.ui.dialogs.FilePicker ou com.sun.star.sheet.FunctionAccess.
    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  Retorna uma instância da estrutura UNO do tipo especificado.
svc.CreateUnoStruct(unostructure: str): uno
unostructure: Um nome totalmente qualificado da estrutura tal como com.sun.star.beans.Property ou com.sun.star.util.DateTime.
    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  Adiciona um intervalo de datas ou tempo a uma data/tempo específica várias vezes e retorna a data/tempo resultante.
svc.DateAdd(interval: str, number: num, date: datetime): datetime
interval: Uma expressão do tipo string da tabela a seguir, a qual especifica o intervalo de data ou tempo:
number: Uma expressão numérica especificando quantas vezes o valor interval será adicionado (quando positivo) ou subtraído (quando negativo).
date: Um valor datetime.datetime especificado. O valor interval será acrescentado number vezes a este valor datetime.datetime.
Um valor datetime.datetime.
    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  Retorna o número de intervalos de data ou tempo entre dois valores de data/tempo específicos.
svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: Uma string com uma expressão definindo um intervalo de data, conforme definido anteriormente no método DateAdd.
date1, date2: Dois valores datetime.datetime a serem comparados.
Um número.
    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  A função DatePart retorna uma parte específica de uma data.
svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: Uma string com uma expressão definindo um intervalo de data, conforme definido anteriormente no método DateAdd.
date: Objeto de data/tempo a partir da qual o resultado é calculado.
firstdayofweek, firstweekofyear: parâmetros opcionais que especificam, respectivamente, o primeiro dia da semana e a primeira semana do ano, conforme detalhado no método DateDiff.
A parte extraída de um valor de data/tempo.
    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  Computa um valor de data a partir de uma string representando uma data.
svc.DateValue(date: str): datetime
A data calculada.
    dt = bas.DateValue("23-02-2011")
    print(dt)
  Converte um número em um string e formata-a de acordo com a formatação especificada.
svc.Format(expression: any, format = ''): str
    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  Retorna o contexto padrão do "process service factory", se existente, ou retorna uma referência nula.
GetDefaultContext é uma alternativa ao método getComponentContext() disponível a partir da variável global XSCRIPTCONTEXT ou no módulo uno.py.
svc.GetDefaultContext(): uno
O contexto padrão do componente é usado ao instanciar serviços usando o XMultiServiceFactory. Consulte o capítulo Professional UNO no Guia do Desenvolvedor pelo link api.libreoffice.org para maiores informações.
    ctx = bas.GetDefaultContext()
  Retorna um valor numérico que especifica a interface gráfica do usuário. Esta função existe apenas por razões de compatibilidade com versões mais antigas.
Consulte o método system() do módulo Python platform para identificar o sistema operacional.
svc.GetGuiType(): int
    n = bas.GetGuiType()
  Retorna o separador de diretórios dependente do sistema operacional usado para especificar caminhos de arquivos.
Use o método os.pathsep do módulo Python os para identificar o separador de diretórios.
svc.GetPathSeparator(): str
    sep = bas.GetPathSeparator()
  Retorna o número de tiques do sistema fornecido pelo sistema operacional. Você pode utilizar esta função para otimizar certos processos. Use este método para estimar tempos em milissegundos.
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))
  Retorna o objeto UNO contendo todas as bibliotecas e módulos Basic compartilhados.
Este método é o equivalente em Python à instrução GlobalScope.BasicLibraries em scripts Basic.
svc.GlobalScope.BasicLibraries(): uno
com.sun.star.script.XLibraryContainer
O exemplo a seguir carrega a biblioteca Basic Gimmicks se ela ainda não tiver sido carregada.
    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  Retorna um objeto UNO contendo todas as bibliotecas de diálogo compartilhadas.
Este método é o equivalente em Python à instrução GlobalScope.DialogLibraries em scripts Basic.
svc.GlobalScope.DialogLibraries(): uno
com.sun.star.comp.sfx2.DialogLibraryContainer
Os exemplo a seguir mostram uma caixa de mensagem com os nomes de todas as bibliotecas de diálogo compartilhadas.
    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('Por favor, digite uma frase:', 'Prezado usuário')
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Confirmação da frase")
  Para informações mais detalhadas consulte a página Wiki Input/Output to Screen with Python.
Mostra uma caixa de diálogo contendo uma mensagem e retorna um valor opcional.
Constantes MB_XX especificam o tipo da caixa de diálogo, o número e o tipo dos botões a serem mostrados, além do tipo do ícone. Ao adicionar seus respectivos valores eles formam padrões de bits que definem a aparência de um diálogo MsgBox.
bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]
Um valor inteiro opcional conforme detalhado anteriormente nas propriedades IDXX.
Retorna a data e hora corrente do sistema em um objeto nativo Python do tipo datetime.datetime.
svc.Now(): datetime
    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  Retorna um valor inteiro representando uma cor, constituído pelos componentes vermelho, verde e azul.
svc.RGB(red:int, green: int, blue: int): int
Integer
    YELLOW = bas.RGB(255,255,0)
  Inspeciona objetos ou variáveis UNO.
svc.Xray(obj: any)
obj: Uma variável ou objeto UNO.
    bas.Xray(bas.StarDesktop)