Hi,
ich bin gerade dabei mir ein Makro im Writer zusammenzufrickeln. Dabei habe ich gemerkt, es könnte für mich viel einfacher sein, bestimmte Werte und Informationen in einer Calcdatei zu hinterlegen und diese dann vom Makro auslesen zu lassen. Geht das?
Kann ich die Writerdatei bearbeiten und per Makro, ohne dass man dies an der Arbeitsfläche bemerkt, Daten aus Calc auslesen und in den Writer einarbeiten? Und dies am besten mit relativen Verzeichnisstrukturen, da ich die Dateien im Pack weitergeben möchte.
rito
Mit Makro aus Writer Daten aus Calcdatei auslesen
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Mit Makro aus Writer Daten aus Calcdatei auslesen
natürlich geht das:
Öffne die Calc-Datei hidden und lese die Zellen aus:
Relative Adressierung:
nehme die URL des Writer-Dokuments, zerlege in ihre Bestandteile, ergänze um den Namen der Calc-Datei:
Hilft das weiter?
Öffne die Calc-Datei hidden und lese die Zellen aus:
Code: Alles auswählen
' laden Bibliothek Hilfsfunktionen
GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
' Datei-Eigenschaften
Dim FileProperties(1) As New com.sun.star.beans.PropertyValue
FileProperties(0).Name = "Hidden"
FileProperties(0).Value = true
FileProperties(1).Name = "AsTemplate"
FileProperties(1).Value = true
' hier die URL des zu öffnenden Dokuments
sURL = ConvertToURL( "/zentrale/firma/2008/test/Calcdatei.ods" )
' geht auch Windows: "d:\daten\test\Calcdatei.ods"
oMeinDok = StarDesktop.loadComponentFromURL( sURL , "_blank" , 0 , FileProperties() )
' Calc kennt nur strings oder double-Werte
s_StringAusCalc = oMeinDok.Sheets().getByName( "Datenblatt" ).getCellByPosition(0,0).getString() 'A1
dbl_lWertAusCalc = oMeinDok.Sheets().getByName( "Datenblatt" ).getCellByPosition(1,1).getValue() 'B2
oMeinDok.close( TRUE )
nehme die URL des Writer-Dokuments, zerlege in ihre Bestandteile, ergänze um den Namen der Calc-Datei:
Code: Alles auswählen
' Funktionen aus Tools
msgbox "Dateiname " & FilenameOutOfPath( sURL )
msgbox "Pfad " & DirectoryNameoutofPath( sURL , "/" )
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)