[gelöst] Zwei Dateien öffnen & Daten importieren in Zeile

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

GrobMakrobiker
**
Beiträge: 39
Registriert: Mo, 09.02.2009 20:18

[gelöst] Zwei Dateien öffnen & Daten importieren in Zeile

Beitrag von GrobMakrobiker »

Hallo zusammen,

ich stehe nun schon ziemlich lange auf dem Schlauch und finde weder in der guten alten Dame Google noch im Buch "Open-Office-Programmierung" eine Lösung für ein Problem, welches doch eigendlich ein Klacks sein sollte. Das geht nun schon seit mehrenen Monaten so, weshalb ich Euch um Hilfe bitte.

Aus einer Calc-Datei möchte ich Daten in eine andere Datei kopieren. Ich kriege weder die Datei geöffnet, noch weiss ich , wie man zwischen zwei Dateien wechselt. Bei VB war das einfacher, weil die Macros besser aufgezeichnet wurden... Bei Basic pack ich's nicht.

Mein Vorgehen:

1. Die Zieldatei öffnen und die zu importierende Datei über das Kontrollfeld "fileselection" auswählen.
2. Dann wollte ich den String übergeben und die Quelldatei öffnen und
3. dort die Daten in Variablen übergeben:

Code: Alles auswählen

 	oCellSrc = oSheet.getCellRangeByName("$N$10") 'Zelle ansprechen
   	vorname = oCellSrc.string 'Zellinhalt holen 
4. Dann zum Zieldokument wechseln
- die letzte Zeile ermitteln:

Code: Alles auswählen

   ocursor = oSheet.createCursor()
   ocursor.gotoStart()   
   ocursor.gotoEndofUsedArea(false)         'letzte Zelle des Bereiches
   letzteSpalte = ocursor.getRangeAddress.endColumn   'index letzte Spalte des Bereichs
   letzteZeile = ocursor.getRangeAddress.endRow   'index letzte Zeile des Bereichs
   letzteZeile = letzteZeile +1 
5. Die Datein schreiben:

Code: Alles auswählen

	oCellSrc = oSheet.getCellRangeByName("$B"& letzteZeile) 'Zelle ansprechen
   	oCellSrc.string = vorname'Zellinhalt schreiben
6. und glücklich sein.

Schon irgendwie komisch, dass mir das weiter Vorgehen einfacher zu sein scheint, als die Dateien zu öffnen etc. (übrigens mit Ubuntu).
Was ich auch nicht verstanden habe, ist, welche librarys etc. man vorher *unbedingt* instanzieren muss, damits funzt.
Das ganze ist für übrigens einen gemeinnützigen Verein für Ecuador.

Liebe Grüße, Euer
GrobMakobirer
Zuletzt geändert von GrobMakrobiker am Fr, 13.03.2009 10:38, insgesamt 1-mal geändert.
GrobMakrobiker
**
Beiträge: 39
Registriert: Mo, 09.02.2009 20:18

Re: Zwei Dateien öffnen & Daten importieren in Zeile

Beitrag von GrobMakrobiker »

Hallo Andy,

sorry, ich hatte deine Antwort gar nicht gesehen -- ich dachte, die kommt auch per Mail...


Das Problem war folgendes, dass man auf die Kontrollelemente auf einem Calc-Sheet nur zugreifen kann, wenn man auf Drawpage und Forms hinzufügt - das habe ich dann irgendwo auf der (fantastischen!!!) starbasicfaq.de -Seite gefunden: http://www.starbasicfaq.de/Formulare(2).html

Hab*s dann so gemacht:

Code: Alles auswählen

	objService = createUnoService("com.sun.star.frame.Desktop")
	objDatei = ThisComponent
	objBlaetter = objDatei.Sheets
	objZielBlatt = objBlaetter.getbyname("Startseite") 'Zieldatei

	strURL = objZielBlatt.DrawPage.Forms.GetByIndex(0).GetByName("fsURL").Text ' Das ist das fileselection- Kontrollelement
	ConvertToURL(strURL)

	objZielBlatt = objBlaetter.getbyname("ZielBlatt) 'Zieldatei

	objQuelltabelle = objService.loadComponentFromURL(strURL, "_hidden", 0, mNoArgs())
	objAuslesen = objQuellTabelle.Sheets().getByIndex(0) 'Quelldatei auswählen
Dann konnte ich leicht mithilfe von

Code: Alles auswählen

	oCellSrc = objKontaktformular.getCellRangeByName("$N$10") 'Zelle ansprechen
	vorname = Trim(oCellsrc.string)
Daten einlesen und mit

Code: Alles auswählen

   oCellSrc = objZielBlatt.getCellbyPosition(3, letzteZeile) 'Zelle ansprechen
   oCellSrc.string = vorname
die Daten schreiben.

Vielen Dank nochmals!

Der GrobMakrobiker
Antworten