Archiv des LibreOffice- und OpenOffice.org-Wiki

[ÜberSicht] [TitelIndex] [WortIndex] [SeiteFinden

(./) OOo2 / (./) OOo3

Nachfolgend wird die API (Application Programming Interface, engl. für Programmierschnittstelle) zu den Office-Dokumenten beschrieben.

StarBasic

Objekte deklarieren

' Objekte deklarieren
DIM Dokument AS OBJECT

Die Objektnamen dürfen umbenannt werden. Nach der Deklaration mit geänderten Namen müssen die unten angegebenen Codeschnippsel entsprechend angepasst werden.

Das aktuelle Dokument ansprechen

' Aktuelles Dokument ansprechen
Dokument = thisComponent

Dokumenteigenschaften

Auslesen

Dokumenteigenschaften:

' Dokumenteigenschaften auslesen
Autor = Dokument.DocumentInfo.Author
Titel = Dokument.DocumentInfo.Title
Thema = Dokument.DocumentInfo.Subject
Schluesselwoerter = Dokument.DocumentInfo.Keywords
Beschreibung = Dokument.DocumentInfo.Description
' Dokumenteigenschaften ausgeben
MsgBox(Autor,64,"Autor des Dokuments")
MsgBox(Titel,64,"Titel des Dokuments")
MsgBox(Thema,64,"Thema des Dokuments")
MsgBox(Schluesselwoerter,64,"Schlagworte des Dokuments")
MsgBox(Beschreibung,64,"Beschreibung des Dokuments")

Dateipfad:

' Dateipfad ermitteln
URL = Dokument.getURL()
MsgBox(URL,64,"URL")

Name und Wert der benutzerdefinierten Infofelder:

' Name und Wert der benutzerdefinierten Infofelder auslesen
Name_Info1 = Dokument.DocumentInfo.getUserFieldName(0)
Wert_Info1 = Dokument.DocumentInfo.getUserFieldValue(0)
Name_Info2 = Dokument.DocumentInfo.getUserFieldName(1)
Wert_Info2 = Dokument.DocumentInfo.getUserFieldValue(1)
Name_Info3 = Dokument.DocumentInfo.getUserFieldName(2)
Wert_Info3 = Dokument.DocumentInfo.getUserFieldValue(2)
Name_Info4 = Dokument.DocumentInfo.getUserFieldName(3)
Wert_Info4 = Dokument.DocumentInfo.getUserFieldValue(3)
' Name und Wert der benutzerdefinierten Infofelder ausgeben
MsgBox(Name_Info1 & ": " & Wert_Info1,64,"Benutzerdefiniertes Infofeld 1")
MsgBox(Name_Info2 & ": " & Wert_Info2,64,"Benutzerdefiniertes Infofeld 2")
MsgBox(Name_Info3 & ": " & Wert_Info3,64,"Benutzerdefiniertes Infofeld 3")
MsgBox(Name_Info4 & ": " & Wert_Info4,64,"Benutzerdefiniertes Infofeld 4")

Ändern

Dokumenteigenschaften:

' Dokumenteigenschaften ändern
Dokument.DocumentInfo.Author = Autor
Dokument.DocumentInfo.Title = Titel
Dokument.DocumentInfo.Subject = Thema
Dokument.DocumentInfo.Keywords = Schluesselwoerter
Dokument.DocumentInfo.Description = Beschreibung

Name und Wert der benutzerdefinierten Infofelder:

' Name und Wert der benutzerdefinierten Infofelder ändern
Dokument.DocumentInfo.setUserFieldName(0,Name_Info1)
Dokument.DocumentInfo.setUserFieldValue(0,Wert_Info1)
Dokument.DocumentInfo.setUserFieldName(1,Name_Info2)
Dokument.DocumentInfo.setUserFieldValue(1,Wert_Info2)
Dokument.DocumentInfo.setUserFieldName(2,Name_Info3)
Dokument.DocumentInfo.setUserFieldValue(2,Wert_Info3)
Dokument.DocumentInfo.setUserFieldName(3,Name_Info4)
Dokument.DocumentInfo.setUserFieldValue(3,Wert_Info4)

Dokumententyp ermitteln

' Dokumententyp ermitteln
IF Dokument.SupportsService("com.sun.star.text.TextDocument") THEN
  Dokutyp = "Textdokument"
END IF

IF Dokument.SupportsService("com.sun.star.sheet.SpreadsheetDocument") THEN
  Dokutyp = "Tabellendokument"
END IF

IF Dokument.SupportsService("com.sun.star.presentation.PresentationDocument") THEN
  Dokutyp = "Präsentation"
ELSE
  IF Dokument.SupportsService("com.sun.star.drawing.DrawingDocument") THEN
    Dokutyp = "Zeichnung"
  END IF
END IF

IF Dokument.SupportsService("com.sun.star.formula.FormulaProperties") THEN
  Dokutyp = "Formeldokument"
END IF

Benutzerdaten auslesen

' Benutzerdaten auslesen
Dim Profil(0) as new com.sun.star.beans.PropertyValue
Benutzer = createUnoService("com.sun.star.configuration.ConfigurationProvider")
Profil(0).Name = "nodepath"
Profil(0).Value = "org.openoffice.UserProfile/Data"
Benutzerdaten = Benutzer.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", Profil())

Firma = Benutzerdaten.o
Vorname = Benutzerdaten.givenname
Nachname = Benutzerdaten.sn
Kuerzel = Benutzerdaten.initials
Titel = Benutzerdaten.title
Position = Benutzerdaten.position
Telefon_gesch = Benutzerdaten.telephonenumber
Fax = Benutzerdaten.facsimiletelephonenumber
Telefon_privat = Benutzerdaten.homephone
Email = Benutzerdaten.mail
Strasse = Benutzerdaten.street
PLZ = Benutzerdaten.postalcode
Land = Benutzerdaten.c
Ort = Benutzerdaten.l

' Benutzerdaten ausgeben
MsgBox(Firma ,64,"Firma")
MsgBox(Vorname ,64,"Vorname")
MsgBox(Nachname ,64,"Nachname")
MsgBox(Kuerzel ,64,"Kürzel")
MsgBox(Titel ,64,"Titel")
MsgBox(Position ,64,"Position")
MsgBox(Telefon_gesch ,64,"Telefon, geschäftlich")
MsgBox(Fax ,64,"Fax")
MsgBox(Telefon_privat ,64,"Telefon, privat")
MsgBox(Email ,64,"Email")
MsgBox(Strasse ,64,"Straße")
MsgBox(PLZ ,64,"PLZ")
MsgBox(Land ,64,"Land")
MsgBox(Ort ,64,"Ort")

Siehe auch


KategorieAllgemeines KategorieMakro


LizenzBedingungen | AnbieterKennzeichnung | DatenschutzErklärung | Stand: 2013-04-28