Verweis auf andere Calc-Datei

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Frank88
Beiträge: 9
Registriert: Mi, 23.09.2009 21:23

Verweis auf andere Calc-Datei

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Verweis auf andere Calc-Datei

Beitrag 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?
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)
Frank88
Beiträge: 9
Registriert: Mi, 23.09.2009 21:23

Re: Verweis auf andere Calc-Datei

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Verweis auf andere Calc-Datei

Beitrag 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) .
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)
Antworten