LibreOffice 24.8 Βοήθεια
Η υπηρεσία ScriptForge.Basic προτείνει μια συλλογή μεθόδων του LibreOffice Basic που θα εκτελεστούν σε περιβάλλον Python. Οι μέθοδοι υπηρεσίας Basic αναπαράγουν την ακριβή σύνταξη και συμπεριφορά των ενσωματωμένων συναρτήσεων Basic.
Τυπικό παράδειγμα:
   bas.MsgBox('Display this text in a message box from a Python script')
  Η χρήση της υπηρεσίας ScriptForge.Basic περιορίζεται σε σενάρια Python.
Πριν να χρησιμοποιήσετε την υπηρεσία Basic, εισαγάγετε τη μέθοδο CreateScriptService() από τη λειτουργική μονάδα scriptforge:
    from scriptforge import CreateScriptService
    bas = CreateScriptService("Basic")
  | Όνομα | Μόνο για ανάγνωση | Τύπος | Περιγραφή | 
|---|---|---|---|
| MB_OK, MB_OKCANCEL, MB_RETRYCANCEL, MB_YESNO, MB_YESNOCANCEL | Ναι | Integer | Τιμές: 0, 1, 5, 4, 3 | 
| MB_ICONEXCLAMATION, MB_ICONINFORMATION, MB_ICONQUESTION, MB_ICONSTOP | Ναι | Integer | Τιμές: 48, 64, 32, 16 | 
| MB_ABORTRETRYIGNORE, MB_DEFBUTTON1, MB_DEFBUTTON2, MB_DEFBUTTON3 | Ναι | Integer | Τιμές: 2, 128, 256, 512 | 
| IDABORT, IDCANCEL, IDIGNORE, IDNO, IDOK, IDRETRY, IDYES | Ναι | Integer | Τιμές: 3, 2, 5, 7, 1, 4, 6 | 
| StarDesktop | Ναι | Αντικείμενο | Επιστρέφει το αντικείμενο StarDesktop που αντιπροσωπεύει την εφαρμογή LibreOffice. | 
| ThisComponent | Ναι | Αντικείμενο | Εάν το τρέχον στοιχείο αναφέρεται σε έγγραφο του LibreOffice, αυτή η μέθοδος επιστρέφει το αντικείμενο UNO που αντιπροσωπεύει το έγγραφο. Αυτή η ιδιότητα επιστρέφει None, όταν το τρέχον στοιχείο δεν αντιστοιχεί σε έγγραφο. | 
| ThisDatabaseDocument | Ναι | Αντικείμενο | Εάν η δέσμη ενεργειών εκτελείται από ένα έγγραφο Base ή οποιοδήποτε από τα υποσυστατικά του, αυτή η μέθοδος επιστρέφει το κύριο στοιχείο της παρουσίας Base. Αυτή η ιδιότητα επιστρέφει διαφορετικά None. | 
Μετατρέπει μια αριθμητική έκφραση ή μια συμβολοσειρά σε εγγενές αντικείμενο Python του τύπου datetime.datetime.
Αυτή η μέθοδος εκθέτει την ενσωματωμένη συνάρτηση Basic CDate σε σενάρια Python.
svc.CDate(expression: any): obj
expression: (έκφραση) μια αριθμητική έκφραση ή μια συμβολοσειρά που αντιπροσωπεύει μια ημερομηνία.
    d = bas.CDate(1000.25)
    bas.MsgBox(str(d)) # 1902-09-26 06:00:00
    bas.MsgBox(d.year) # 1902
  Μετατρέπει μια αναπαράσταση ημερομηνίας/ώρας UNO σε ένα εγγενές αντικείμενο της Python του τύπου datetime.datetime.
svc.CDateFromUnoDateTime(unodate: uno): obj
unodate: Ένα αντικείμενο UNO ημερομηνίας/ώρας ενός από τους ακόλουθους τύπους: com.sun.star.util.DateTime, com.sun.star.util. Ημερομηνία ή com.sun.star.util.Time
Το παρακάτω παράδειγμα δημιουργεί ένα αντικείμενο com.sun.star.util.DateTime και το μετατρέπει σε αντικείμενο 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
  Μετατρέπει μια αναπαράσταση ημερομηνίας σε αντικείμενο com.sun.star.util.DateTime.
svc.CDateToUnoDateTime(date: obj): uno
date (ημερομηνία): Ένα αντικείμενο ημερομηνίας/ώρας Python ενός από τους ακόλουθους τύπους: datetime.datetime, datetime.date, datetime.time , float (time.time) ή 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))
  Επιστρέφει ένα όνομα αρχείου διαδρομής συστήματος για τη δεδομένη διεύθυνση URL file: (αρχείο).
svc.ConvertFromUrl(url: str): str
url: Μια απόλυτη διεύθυνση URL file:.
Όνομα αρχείου διαδρομής συστήματος.
    filename = bas.ConvertFromUrl( "file:///C:/Program%20Files%20(x86)/LibreOffice/News.txt")
    bas.MsgBox(filename)
  Επιστρέφει μια διεύθυνση URL file: (αρχείου)για τη δεδομένη διαδρομή συστήματος.
svc.ConvertToUrl(systempath: str): str
systempath (διαδρομή συστήματος): Ένα όνομα αρχείου συστήματος ως συμβολοσειρά.
URL ενός file: (αρχείου) ως συμβολοσειρά.
    url = bas.ConvertToUrl( 'C:\Program Files(x86)\LibreOffice\News.txt')
    bas.MsgBox(url)
  Δημιουργεί μια υπηρεσία UNO με το ProcessServiceManager.
svc.CreateUnoService(servicename: str): uno
servicename (όνομα υπηρεσίας): Ένα πλήρως πιστοποιημένο όνομα υπηρεσίας όπως com.sun.star.ui.dialogs.FilePicker ή com.sun.star.sheet.FunctionAccess.
    dsk = bas.CreateUnoService('com.sun.star.frame.Desktop')
  Επιστρέφει μια παρουσία μιας δομής UNO του καθορισμένου τύπου.
svc.CreateUnoStruct(unostructure: str): uno
unostructure: Ένα πλήρως αναγνωρισμένο όνομα δομής όπως com.sun.star.beans.Property, ή com.sun.star.util.DateTime.
    date_struct = CreateUnoStruct('com.sun.star.util.DateTime')
  Προσθέτει μια ημερομηνία ή ένα χρονικό διάστημα σε μια δεδομένη ημερομηνία/χρόνο αρκετές φορές και επιστρέφει την ημερομηνία που προκύπτει.
svc.DateAdd(interval: str, number: num, date: datetime): datetime
interval (διάστημα): Μια έκφραση συμβολοσειράς από τον παρακάτω πίνακα, που καθορίζει την ημερομηνία ή το χρονικό διάστημα.
number (αριθμός): Μια αριθμητική έκφραση που καθορίζει πόσο συχνά θα προστίθεται η τιμή interval όταν είναι θετική ή θα αφαιρείται όταν είναι αρνητική.
date (ημερομηνία): Μια δεδομένη τιμή datetime.datetime, η τιμή interval θα προστεθεί number (αριθμός) φορών σε αυτήν την τιμή datetime.datetime.
Μια τιμή datetime.datetime.
    dt = datetime.datetime(2004, 1, 31)
    dt = bas.DateAdd("m", 1, dt)
    print(dt)
  Επιστρέφει τον αριθμό των διαστημάτων ημερομηνίας ή χρόνου μεταξύ δύο δεδομένων τιμών ημερομηνίας/χρόνου.
svc.DateDiff(interval: str, date1: datetime, date2: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval (διάστημα): Μια έκφραση συμβολοσειράς που καθορίζει το διάστημα ημερομηνίας, όπως περιγράφεται στην παραπάνω μέθοδο DateAdd.
date1, date2 (ημερομηνία1, ημερομηνία2): Οι δύο τιμές datetime.datetime προς σύγκριση.
Ένας αριθμός.
    date1 = datetime.datetime(2005,1, 1)
    date2 = datetime.datetime(2005,12,31)
    diffDays = bas.DateDiff('d', date1, date2)
    print(diffDays)
  Η συνάρτηση DatePart επιστρέφει ένα καθορισμένο τμήμα μιας ημερομηνίας.
svc.DatePart(interval: str, date: datetime, firstdayofweek = 1, firstweekofyear = 1): int
interval (διάστημα): Μια έκφραση συμβολοσειράς που καθορίζει το διάστημα ημερομηνίας, όπως περιγράφεται στην παραπάνω μέθοδο DateAdd.
date (ημερομηνία): Η ημερομηνία/χρόνος από την οποία υπολογίζεται το αποτέλεσμα.
firstdayofweek, firstweekofyear (πρώτη ημέρα της εβδομάδας, πρώτη εβδομάδα του έτους): προαιρετικές παράμετροι που καθορίζουν αντίστοιχα την ημέρα έναρξης μιας εβδομάδας και την εβδομάδα έναρξης ενός έτους, όπως περιγράφεται παραπάνω στη μέθοδο DateDiff.
Το εξαγόμενο τμήμα για τη δεδομένη ημερομηνία/χρόνο.
    print(bas.DatePart("ww", datetime.datetime(2005,12,31)
    print(bas.DatePart('q', datetime.datetime(1999,12,30)
  Υπολογίζει μια τιμή ημερομηνίας από μια συμβολοσειρά ημερομηνίας.
svc.DateValue(date: str): datetime
Η υπολογιζόμενη ημερομηνία.
    dt = bas.DateValue("23-02-2011")
    print(dt)
  Μετατρέπει έναν αριθμό σε συμβολοσειρά και, στη συνέχεια, τον μορφοποιεί σύμφωνα με τη μορφή που καθορίζετε.
svc.Format(expression: any, format = ''): str
    txt = bas.Format(6328.2, '##.##0.00')
    print(txt)
  Επιστρέφει το προεπιλεγμένο περιεχόμενο του εργοστασίου υπηρεσιών διαδικασίας, εάν υπάρχει, αλλιώς επιστρέφει μια μηδενική αναφορά.
Το GetDefaultContext είναι μια εναλλακτική λύση στη μέθοδο getComponentContext() που διατίθεται από τηνκαθολική μεταβλητή XSCRIPTCONTEXT ή από την ενότητα uno.py.
svc.GetDefaultContext(): uno
Χρησιμοποιείται το προεπιλεγμένο περιβάλλον στοιχείου, κατά την προετοιμασία υπηρεσιών μέσω του XMultiServiceFactory. Δείτε το κεφάλαιο Professional UNO στον Οδηγό προγραμματιστών στο api.libreoffice.org για περισσότερες πληροφορίες.
    ctx = bas.GetDefaultContext()
  Επιστρέφει μια αριθμητική τιμή που καθορίζει τη γραφική διεπαφή χρήστη. Αυτή η λειτουργία παρέχεται μόνο για συμβατότητα προς τα πίσω με προηγούμενες εκδόσεις.
Ανατρέξτε στη μέθοδο system() από την ενότητα platform Python για να προσδιορίστε το λειτουργικό σύστημα.
svc.GetGuiType(): int
    n = bas.GetGuiType()
  Επιστρέφει το διαχωριστικό καταλόγου που εξαρτάται από το χρησιμοποιούμενο λειτουργικό σύστημα για να καθορίσει τις διαδρομές αρχείου.
Χρησιμοποιήστε το os.pathsep από την ενότητα os του Python για να προσδιορίστε το διαχωριστικό διαδρομής.
svc.GetPathSeparator(): str
    sep = bas.GetPathSeparator()
  Επιστρέφει τον αριθμό των σημείων συστήματος που παρέχονται από το λειτουργικό σύστημα. Μπορείτε να χρησιμοποιήσετε αυτήν τη λειτουργία για να βελτιστοποιήσετε ορισμένες διαδικασίες. Χρησιμοποιήστε αυτήν τη μέθοδο για να υπολογίσετε το χρόνο σε χιλιοστά του δευτερολέπτου:
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))
  Επιστρέφει το αντικείμενο UNO που περιέχει όλες τις κοινόχρηστες βιβλιοθήκες Basic και τις λειτουργικές μονάδες.
Αυτή η μέθοδος είναι η ισοδύναμη Python με το GlobalScope.BasicLibraries στα βασικά σενάρια.
svc.GlobalScope.BasicLibraries(): uno
com.sun.star.script.XLibraryContainer
Το ακόλουθο παράδειγμα φορτώνει τη βιβλιοθήκη Gimmicks Basic εάν δεν έχει φορτωθεί ακόμα.
    libs = bas.GlobalScope.BasicLibraries()
    if not libs.isLibraryLoaded("Gimmicks"):
        libs.loadLibrary("Gimmicks")
  Επιστρέφει το αντικείμενο UNO που περιέχει όλες τις κοινόχρηστες βιβλιοθήκες διαλόγου.
Αυτή η μέθοδος είναι η ισοδύναμη Python με το GlobalScope.DialogLibraries στα σενάρια Basic.
svc.GlobalScope.DialogLibraries(): uno
com.sun.star.comp.sfx2.DialogLibraryContainer
Το ακόλουθο παράδειγμα δείχνει ένα πλαίσιο μηνύματος με τα ονόματα όλων των διαθέσιμων βιβλιοθηκών διαλόγου.
    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('Παρακαλούμε εισάγετε μια φράση, "Αγαπητέ χρήστη")
    s.MsgBox(txt, s.MB_ICONINFORMATION, "Επιβεβαίωση φράσης")
  Για αναλυτικές πληροφορίες, ανατρέξτε στο Input/Output to Screen with Python στο Wiki.
Εμφανίζει ένα πλαίσιο διαλόγου που περιέχει ένα μήνυμα και επιστρέφει μια προαιρετική τιμή.
Οι σταθερές MB_xx βοηθούν στον καθορισμό του τύπου διαλόγου, του αριθμού και του τύπου των πλήκτρων που θα εμφανίζονται, καθώς και του τύπου εικονιδίου. Προσθέτοντας τις αντίστοιχες τιμές τους σχηματίζουν μοτίβα bit, που ορίζουν την εμφάνιση διαλόγου MsgBox.
bas.MsgBox(prompt: str, [buttons: int], [title: str])[: int]
Ένας προαιρετικός ακέραιος όπως περιγράφεται στις παραπάνω ιδιότητες IDxx.
Επιστρέφει την τρέχουσα ημερομηνία και χρόνο του συστήματος ως εγγενές αντικείμενο Python datetime.datetime.
svc.Now(): datetime
    bas.MsgBox(bas.Now(), bas.MB_OK, "Now")
  Επιστρέφει μια ακέραια τιμή χρώματος που αποτελείται από κόκκινο, πράσινο και γάλαζιο.
svc.RGB(red:int, green: int, blue: int): int
Integer
    YELLOW = bas.RGB(255,255,0)
  Επιθεώρηση αντικειμένων ή μεταβλητών Uno.
svc.Xray(obj: any)
obj: Μεταβλητή ή αντικείμενο UNO.
    bas.Xray(bas.StarDesktop)