Seite 1 von 1

Mit Makro aus Writer Daten aus Calcdatei auslesen

Verfasst: Di, 22.07.2008 07:47
von rito
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

Re: Mit Makro aus Writer Daten aus Calcdatei auslesen

Verfasst: Di, 22.07.2008 09:50
von komma4
natürlich geht das:

Ö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 ) 

Relative Adressierung:
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 , "/" ) 
Hilft das weiter?