Seite 1 von 1

Verweis auf andere Calc-Datei

Verfasst: Di, 13.10.2009 13:13
von Frank88
Hallo,

kann mir jemand sagen, wie ich die Zellen eines anderen Spreadsheet anspreche. Also statt

Code: Alles auswählen

MeineZelle=ThisComponent.Sheets..getbyindex(a).getcellbyposition(x,y).string
brauche ich

Code: Alles auswählen

NochNeZelle=TheOtherComponent.Sheets.getbyindex(b).getcellbyposition(m,n).string
Nur so klappt's halt nicht. Gesucht ist der richtige Ausdruck für "TheOtherComponent".
Beide Dateien sind dabei geöffnet (zumindest ThisComponent, weil da ja der Code drin stehen soll). Ziel soll sein, den Inhalt der Zellen einer Datei in die Zellen einer anderen Datei zu übertragen.

Grüße, Frank

Re: Verweis auf andere Calc-Datei

Verfasst: Di, 13.10.2009 14:00
von komma4
Holst Dir halt zunächst das Objekt der anderen Calc-Datei.

Wenn Du über BASIC öffnest hast Du es ja, ansonsten über den Component Walker rausfinden.


Hilft das?

Re: Verweis auf andere Calc-Datei

Verfasst: Do, 15.10.2009 16:52
von Frank88
Hallo,

ja, das hilft.

Ich hatte mit einem anderen Code-Beispiel versucht, das ich hier im Forum gefunden hatte,

Code: Alles auswählen

   GlobalScope.BasicLibraries.LoadLibrary("Tools")
   oComponents = StarDesktop.getComponents()
   oDocs = oComponents.createEnumeration()
   do while oDocs.hasMoreElements()
      oDoc = Odocs.nextElement()
      datei = odoc.geturl()
      'IF ... Then
           odoc.Sheets(0).GetCellByPosition(0,0).string
      'End If
      msgbox datei
   loop
aber damit bekomme ich hin und wieder nicht ganz nachvollziehbare Fehlermeldungen.

Über BASIC öffnen, ja, das wär's. Das müßte dann so aussehen, oder?

Code: Alles auswählen

    NewWorkbook = StarDesktop.loadComponentFromURL _
       ("file:///" & DirectoryName & "/My2ndWorkbook.sxc", _
       "_blank",0 ,NoArgs() )
Und sollte dann mit

Code: Alles auswählen

MeineZelle=NewWorkbook.Sheets(0).GetCellByPosition(0,0).string
den Inhalt bekommen?

Grüße, Frank

Re: Verweis auf andere Calc-Datei

Verfasst: Do, 15.10.2009 17:34
von komma4
Frank88 hat geschrieben:Ich hatte mit einem anderen Code-Beispiel versucht, das ich hier im Forum gefunden hatte,
Das Prinzip ist das gleiche.
Fehlermeldungen kommen z.B. bei noch nicht gespeicherten Dateien, neewaar?
Frank88 hat geschrieben:Über BASIC öffnen, ja, das wär's. Das müßte dann so aussehen, oder?
So in etwa (ausprobieren)!

Tipps:
* setze den Dateinamen ausserhalb des Aufrufs zusammen,
* verwende ConvertToURL() Laufzeitfunktion
* verwende die [undokumentierte] Funktion getPathSeparator() zum Ermitteln des Pfadtrenners
Mit den letzten beiden Punkten bist Du plattform-unabhängig 8) .