Pomoc LibreOffice 24.8
Usługa ScriptForge.Basic proponuje kolekcję podstawowych metod LibreOffice do wykonania w kontekście języka Python. Metody usługi Basic odtwarzają dokładną składnię i zachowanie wbudowanych funkcji języka Basic.
Typowy przykład:
   bas.MsgBox('Wyświetl ten tekst w oknie komunikatu ze skryptu języka Python')
  Usługa ScriptForge.Basic jest ograniczona do skryptów Pythona.
Przed użyciem usługi Basic zaimportuj metodę CreateScriptService() z modułu scriptforge:
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  | Nazwa | Tylko do odczytu | Typ | Opis | 
|---|---|---|---|
| MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Tak | Integer | Wartości: 0, 1, 5, 4, 3 | 
| MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Tak | Integer | Wartości: 48, 64, 32, 16 | 
| MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Tak | Integer | Wartości: 2, 128, 256, 512 | 
| IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Tak | Integer | Wartości: 3, 2, 5, 7, 1, 4, 6 | 
| StarDesktop | Tak | Obiekt | Zwraca obiekt StarDesktop reprezentujący aplikację LibreOffice. | 
| ThisComponent | Tak | Obiekt | Jeśli bieżący składnik odwołuje się do dokumentu LibreOffice, ta metoda zwraca obiekt UNO reprezentujący dokument. Ta właściwość zwraca wartość None, gdy bieżący komponent nie odpowiada dokumentowi. | 
| ThisDatabaseDocument | Tak | Obiekt | Jeśli skrypt jest wykonywany z dokumentu Base lub któregokolwiek z jego podkomponentów, ta metoda zwraca główny komponent instancji Base. W przeciwnym razie ta właściwość zwraca None. | 
Konwertuje wyrażenie liczbowe lub ciąg znaków na natywny obiekt Pythona datetime.datetime.
Ta metoda udostępnia wbudowaną funkcję Basic CDate skryptom Pythona.
svc.CDate(expression: any): obj
expression: wyrażenie liczbowe lub ciąg reprezentujący datę.
    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  Konwertuje reprezentację daty/godziny UNO na natywny obiekt języka Python datetime.datetime.
svc.CDateFromUnoDateTime(unodate: uno): obj
unodate: obiekt daty/godziny UNO jednego z następujących typów: com.sun.star.util.DateTime, com.sun.star.util.Date lub com.sun.star.util.Time
Poniższy przykład tworzy obiekt com.sun.star.util.DateTime i konwertuje go na obiekt języka 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
  Konwertuje reprezentację daty na obiekt com.sun.star.util.DateTime.
svc.CDateToUnoDateTime(date: obj): uno
data: obiekt daty/godziny w języku Python jednego z następujących typów: datetime.datetime, datetime.date, datetime.time , float (time.time) lub 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))
  Zwraca nazwę pliku ścieżki systemowej dla podanego adresu URL file:.
svc.ConvertFromUrl(url: str): str
url: bezwzględny adres URL file:.
Nazwa pliku ścieżki systemowej.
    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt")
    bas.MsgBox(filename)
  Zwraca adres URL file: dla podanej ścieżki systemowej.
svc.ConvertToUrl(systempath: str): str
systempath: nazwa pliku systemowego jako ciąg znaków.
Adres URL file: jako ciąg tekstowy.
    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt')
    bas.MsgBox(url)
  Tworzy wystąpienie usługi UNO za pomocą ProcessServiceManager.
svc.CreateUnoService(servicename: str): uno
servicename: pełna nazwa usługi, taka jak com.sun.star.ui.dialogs.FilePicker lub com.sun.star.sheet.FunctionAccess.
    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  Zwraca wystąpienie struktury UNO określonego typu.
svc.CreateUnoStruct(unostructure: str): uno
unostructure: pełna nazwa struktury, taka jak com.sun.star.beans.Property lub com.sun.star.util.DateTime.
    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  Dodaje datę lub przedział czasu do podanej daty/godziny kilka razy i zwraca wynikową datę.
svc.DateAdd(interval: str, number: num, date: datetime): datetime
interval: wyrażenie tekstowe z poniższej tabeli określające datę lub przedział czasu.
number: wyrażenie liczbowe określające, jak często wartość interval będzie dodawana, gdy jest dodatnia, lub odejmowana, gdy jest ujemna.
date: podana wartość datetime.datetime, wartość interval zostanie dodana number razy do tej wartości datetime.datetime.
Wartość datetime.datetime.
    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  Zwraca liczbę przedziałów daty lub godziny między dwiema podanymi wartościami daty/godziny.
svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: wyrażenie łańcuchowe określające przedział dat, jak opisano powyżej w metodzie DateAdd.
date1, date2: dwie wartości datetime.datetime do porównania.
Liczba.
    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  Funkcja DatePart zwraca określoną część daty.
svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval: wyrażenie łańcuchowe określające przedział dat, jak opisano powyżej w metodzie DateAdd.
date: data/godzina, od której obliczany jest wynik.
firstdayofweek, firstweekofyear: opcjonalne parametry, które odpowiednio określają początkowy dzień tygodnia i początkowy tydzień roku, jak opisano w powyższej metodzie DateDiff.
Wyodrębniona część dla podanej daty/godziny.
    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  Oblicza wartość daty na podstawie ciągu daty.
svc.DateValue(date: str): datetime
Obliczona data.
    dt = bas.DateValue("23-02-2011")
    print(dt)
  Konwertuje liczbę na ciąg, a następnie formatuje go zgodnie z określonym formatem.
svc.Format(expression: any, format = ''): str
    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  Zwraca domyślny kontekst "Process Service Factory", jeśli istnieje, w przeciwnym razie zwraca odwołanie o wartości null.
GetDefaultContext jest alternatywą dla metody getComponentContext() dostępnej ze zmiennej globalnej XSCRIPTCONTEXT lub z modułu uno.py.
svc.GetDefaultContext(): uno
Domyślny kontekst komponentu jest używany podczas tworzenia instancji usług przez XMultiServiceFactory. Więcej informacji znajdziesz w rozdziale Professional UNO w Przewodniku programisty pod adresem api.libreoffice.org.
    ctx = bas.GetDefaultContext()
  Zwraca wartość liczbową określającą graficzny interfejs użytkownika. Ta funkcja jest dostępna tylko w celu zapewnienia kompatybilności wstecznej z poprzednimi wersjami.
Zapoznaj się z metodą system() z modułu platform Pythona, aby zidentyfikować system operacyjny.
svc.GetGuiType(): int
    n = bas.GetGuiType()
  Zwraca separator katalogów zależny od systemu operacyjnego używany do określania ścieżek plików.
Użyj os.pathsep z modułu os Pythona, aby zidentyfikować separator ścieżki.
svc.GetPathSeparator(): str
    sep = bas.GetPathSeparator()
  Zwraca liczbę taktów systemowych dostarczonych przez system operacyjny. Możesz użyć tej funkcji do optymalizacji niektórych procesów. Użyj tej metody, aby oszacować czas w milisekundach:
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))
  Zwraca obiekt UNO zawierający wszystkie współdzielone biblioteki i moduły Basic.
Ta metoda jest odpowiednikiem języka Python GlobalScope.BasicLibraries w skryptach Basic.
svc.GlobalScope.BasicLibraries(): uno
com.sun.star.script.XLibraryContainer
Poniższy przykład ładuje bibliotekę Basic Gimmicks, jeśli nie została jeszcze załadowana.
    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  Zwraca obiekt UNO zawierający wszystkie udostępnione biblioteki okien dialogowych.
Ta metoda jest odpowiednikiem języka Python GlobalScope.DialogLibraries w skryptach Basic.
svc.GlobalScope.DialogLibraries(): uno
com.sun.star.comp.sfx2.DialogLibraryContainer
Poniższy przykład wyświetla okno dialogowe z nazwami wszystkich dostępnych bibliotek okien dialogowych.
    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('Wpisz frazę:', "Drogi użytkowniku")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Potwierdzenie frazy")
  Aby uzyskać szczegółowe informacje, zobacz Input/Output to Screen with Python na Wiki.
Wyświetla okno dialogowe zawierające komunikat i zwraca opcjonalną wartość.
Stałe MB_xx pomagają określić typ okna dialogowego, liczbę i typ wyświetlanych przycisków oraz typ ikony. Dodając odpowiednie wartości, tworzą wzorce bitowe, które definiują wygląd okna dialogowego MsgBox.
bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]
Opcjonalna liczba całkowita, jak opisano powyżej we właściwościach IDxx.
Zwraca bieżącą datę i godzinę systemową jako natywny obiekt Pythona datetime.datetime.
svc.Now(): datetime
    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  Zwraca całkowitą wartość koloru składającą się ze składników czerwonego, zielonego i niebieskiego.
svc.RGB(red:int, green: int, blue: int): int
Integer
    YELLOW = bas.RGB(255,255,0)
  Sprawdź obiekty lub zmienne UNO.
svc.Xray(obj: any)
obj: zmienna lub obiekt UNO.
    bas.Xray(bas.StarDesktop)