Collabora Office 22.05 Hjelp
The ScriptForge library is available both for Basic and Python. Most services, methods and properties work identically in both programming languages. However, due to differences in how each language works, ScriptForge users must be aware of some characteristics of the library when using Python:
Metoder og egenskapsnavn: I Python kan alle metoder og egenskaper brukes i små bokstaver, ProperCased eller camelCased-formater.
Argumenter: Alle søkeordargumenter som sendes videre til metoder, er i små bokstaver.
Datoer: Alle datoobjekter sendes og returneres som datetime.datetime opprinnelige Python-objekter.
Arrays: Endimensjonale matriser sendes og returneres som tupler (som er et uforanderlig objekt). Todimensjonale matriser sendes og returneres som tupler av tupler.
Ingen: Pythons Ingen søkeord tilsvarer Basics Null, Tom eller Ingenting.
UNO-objekter: Alle UNO-strukturer utveksles mellom Basic og Python uten endringer.
Feilsøking: Når det oppstår en feil i Python-skript som bruker ScriptForge, viser feilmeldingen fra Python-utførelsesstakken linjen med kode som utløste feilen. I Basic viser ikke feilmeldinger denne informasjonen.
Visit Collabora Office Python Scripts Help for more information on Python scripting using Collabora Office.
Avhengig av hva du har tenkt å oppnå, kan du velge en av følgende fremgangsmåter for å kjøre Python-skript i Collabora Office:
Kjør skript i den gjeldende Collabora Office-prosessen: Python-skript kjøres fra Collabora Office-prosessen ved å bruke -menyen eller APSO-utvidelsen for å ringe brukeren skript lagret i Python-skriptmappen. Du kan også bruke APSO Python-skallet til å kjøre Python-skript interaktivt.
Kjør skript separat fra Collabora Office-prosessen: Python-skript kjøres fra en ekstern prosess som kobles til en pågående Collabora Office-prosess ved hjelp av en socket.
If you plan to run scripts from inside the Collabora Office process, it is recommended to install the APSO (Alternative Script Organizer for Python) extension. However, to develop Python scripts from outside Collabora Office, you can choose your preferred Python IDE.
Den enkleste måten å komme i gang med Python-skripting i Collabora Office er ved å installere APSO-utvidelsen. Etter at du har installert den, åpne en hvilken som helst Collabora Office-komponent og gå til .
Gå til i APSOs hovedvindu.
Alternativt kan du åpne APSO ved å bruke standardsnarveien Alt + Shift + F11.
Nå kan du begynne å skrive Python-kommandoer og skallet vil skrive ut tilsvarende utdata etter at hver linje med kode er utført.
For å begynne å bruke ScriptForge-biblioteket, må du importere CreateScriptService-metoden, som du vil få tilgang til tjenestene som tilbys av biblioteket. Eksemplet nedenfor bruker Basic-tjenesten for å vise en meldingsboks.
from scriptforge import CreateScriptService
bas = CreateScriptService("Basic")
bas.MsgBox("Hello!")
For å kjøre eksemplet ovenfor, skriv inn hver linje i Python-skallet, en etter en, og trykk Enter-tasten etter at du har skrevet inn hver linje med kode.
Nå kan du begynne å utføre Python-kommandoer ved å bruke hvilken som helst av ScriptForge-tjenestene. For eksempel bruker kodebiten nedenfor UI-tjenesten til å lage et tomt Writer-dokument.
ui = CreateScriptService("UI")
doc = ui.CreateDocument("Writer")
Du kan lage dine egne Python-filer og redigere dem med ditt foretrukne tekstredigeringsprogram. Senere kan du ringe dem fra en hvilken som helst Collabora Office-komponent.
The first step is to locate where your user scripts are stored. For that, refer to Python Scripts Organization and Location help page.
Nå kan du lage en tekstfil i Python-brukerskriptmappen, for eksempel sf_test.py, og begynne å skrive skriptene dine.
Neste er et enkelt eksempel som henter den numeriske verdien fra en Calc-celle og øker den med 1. Bare skriv inn følgende kode i sf_test.py-filen.
from scriptforge import CreateScriptService
doc = CreateScriptService("Calc")
def increment_cell(args=None):
value = doc.GetValue("A1")
value += 1
doc.SetValue("A1", value)
g_exportedScripts = (increment_cell, )
Dette eksemplet oppretter funksjonen increment_cell. Merk at g_exportedScripts er en tuppel som forteller hvilke funksjoner som vil vises i Collabora Office som brukerskript.
Slik kjører du dette skriptet fra et Calc-dokument:
Opprett eller åpne en Calc-fil.
Skriv inn en numerisk verdi i celle "A1" i gjeldende ark.
Gå til .
Velg Mine makroer - sf_test i bibliotekvelgeren. Velg deretter funksjonen increment_cell under -listen.
Klikk Kjør. Merk at verdien i celle "A1" ble økt med 1.
Du kan også bruke APSO til å kjøre Python-skript på lignende måte:
Åpne først APSO ved å gå til .
I makrolisten, naviger til .
Klikk .
Det første trinnet for å kjøre skript fra en separat prosess er å finne mappen der Collabora Office er installert. Det er flere måter å gjøre det på, men ScriptForge gir en rask måte å identifisere installasjonsstien på. For det, åpne APSOs Python-skall og skriv:
from scriptforge import CreateScriptService
fs = CreateScriptService("FileSystem")
fs.FileNaming = "SYS"
inst_dir = fs.InstallFolder
print(inst_dir)
Utdata fra koden ovenfor er basiskatalogen der Collabora Office er installert. Nå må du legge til undermappen "program" til den resulterende banen. Dette er basismappen du vil kjøre Python-skript fra fra en egen prosess.
Anta for eksempel at du får /usr/lib/libreoffice/ som et resultat av å kjøre Python-koden ovenfor. Deretter må du vurdere /usr/lib/libreoffice/program som stien for å kjøre Python-skriptene dine.
For å kjøre Python-skript fra en separat prosess, må du starte Collabora Office med noen få tilleggsalternativer som spesifiserer vertsnavnet og porten som den eksterne prosessen vil kommunisere med Collabora Office-komponentprosessen gjennom.
Åpne operativsystemets ledetekst, naviger til programmappen i installasjonskatalogen for Collabora Office og skriv:
./soffice --accept='socket,host=localhost,port=2021;urp;'
Kommandoen ovenfor vil starte Collabora Office med en kommunikasjonskanal åpen slik at andre prosesser kan utveksle meldinger med den.
Merk at det forrige eksemplet åpner Collabora Office startsenter. Hvis du vil åpne en spesifikk komponent, for eksempel Writer, kan du legge til --writer-flagget til kommandoen, som følger.
./soffice --writer --accept='socket,host=localhost,port=2021;urp;'
Legg merke til parameterne host og port, som i dette eksemplet er henholdsvis localhost og 2021.
Start the Python shell from within the program folder inside your Collabora Office installation path. Follow the steps above to learn how to find your installation path.
På Linux / Mac OS:
$ cd /usr/lib/libreoffice/program
$ python
På Windows:
$ cd C:\Program Files\LibreOffice\program\
$ python.exe
Dette vil åpne Python-skallet og nå kan du begynne å skrive kommandoer som vil bli utført av Collabora Office. Men først må du sette opp stikkontakten.
from scriptforge import ScriptForge, CreateScriptService
ScriptForge(hostname='localhost', port=2021)
Den andre linjen med kode ovenfor definerer host og port innstillingene slik at Python-skallet kan kommunisere med en pågående Collabora Office-prosess åpnet med de samme socketinnstillingene.
Nå kan du kjøre andre Python-kommandoer og de vil kunne kommunisere med Collabora Office-prosessen. For eksempel:
ui = CreateScriptService("UI")
bas = CreateScriptService("Basic")
doc = ui.OpenDocument("~/Documents/myFile.ods")
bas.MsgBox(doc.DocumentType)