Seite 1 von 1

Zelle aus externer Datei auslesen

Verfasst: Do, 09.11.2017 22:38
von 123abc
Ich habe eine wahrscheinlich kleine Frage zu Calc-Makros.

Ich bin gerade dabei, eine Zelle aus einem komplett anderen Calc-Dokument auszulesen. Wie man Zellen aus dem gerade aktiven Dokument ausliest, weiß ich.

myDoc = thisComponent
mySheet = myDoc.sheets(0)
mycell = mysheet.getCellByPosition(0,0)
(http://www.dannenhoefer.de/faqstarbasic ... l#Zweig167)

Wie schaffe ich es jetzt, dass ich über die Url auf ein anderes Dokument zugreifen kann?

F:\ordner1\anderedatei.ods

Die Dateien liegen im gleichen Verzeichnis. Es wäre toll, wenn man die Url ohne C:\ oder F:\ erstellen kann, so dass das Verzeichnis verschoben werden kann.

Ich hoffe mir kann jemand bei meinem Problem helfen.

Re: Zelle aus externer Datei auslesen

Verfasst: Do, 09.11.2017 23:12
von Stephan
Wie schaffe ich es jetzt, dass ich über die Url auf ein anderes Dokument zugreifen kann?
Indem Du das pasende Dokument innerhalb aller geöffneten Dokumente anhand eines Merkmals identifizierst, z.B. am Titel des Dokuments:

Code: Alles auswählen

alles = StarDesktop.getComponents
elemente = alles.CreateEnumeration
Do While elemente.hasMoreElements
	aktuell = elemente.NextElement
	If aktuell.hasLOcation Then
		If aktuell.title = "anderedatei.ods" Then
			mySheet = aktuell.sheets(0)
 			mycell = mysheet.getCellByPosition(0,0)
		End If
	End If
Loop
Gruß
Stephan

Re: Zelle aus externer Datei auslesen

Verfasst: Fr, 10.11.2017 07:23
von komma4
und wenn das Dokument nicht geöffnet ist, dann öffnest Du es.

Hier eine Funktion, die das Dokumenten-Objekt zurück gibt (also aufrufen mit newDoc = loadDoc(s), s => vollständiger Name, inkl. Pfad)

Code: Alles auswählen

Function loadDoc(s as string, Optional props) as Object
' get:	string, containing path and document name to open, 
'               optional: properties array
' put:	object of opened document

If isMissing(props) Then
   props = Array()
End If

loadDoc = _
StarDesktop.loadComponentFromUrl(_
ConvertToURL(s), "_blank", 0, props ) 

End Function

Verfasst: So, 12.11.2017 18:57
von 123abc
Vielen Dank für die schnelle Hilfe. Beides funktioniert bei mir gut.