Öffnen von OO-Tabellen für Beginners

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

Moderator: Moderatoren

vpetzold
*
Beiträge: 14
Registriert: So, 05.02.2006 17:16

Öffnen von OO-Tabellen für Beginners

Beitrag von vpetzold »

Hallo,

um bestimmte OO-Tabellendokumente zu bearbeiten steige ich gerade ein bei Starbasic. Hierfür habe ich mir auch schon eine Dokumentation von SUN für Starbasic (http://docs.sun.com/app/docs/doc/819-1326?a=load ) etwas durchgelesen.

Ich wollte nun anfangen eine bestehende Calc-Datei zu öffnen. Irgendwo muss man ja mal anfangen zu probieren. Hierfür habe ich die Beispiele aus der Docu genommen und in "NeoOffice" (ich arbeite mit MAC aber NeoOffice ist ja wohl nahezu identische mit OO).

Sub DateiOeffnen

Dim Doc as Object
Dim url as String
url = "File:///Users/Volker/Documents/Datei.ods"

dim myFileProp as Object
Doc = StarDesktop.loadComponentFromURL(url, "_blank", 0, myFileProp() )

end sub

Wenn ich das Script starte, erhalte ich folgende Fehlermeldung
BASIC-Laufzeitfehler.
Es ist eine Excaption aufgetreten
Type: com.sun.star.lang.IllegalArgumentExaption
Message: cannot coerce argument type during corereflection call


Was fehlt denn an meinem einfachen Script noch?
Kann ich die Dienste, wie Sie für Starbasic beschrieben sind (StarDesktop?), überhaupt für Open Office so nutzen? Oder wo bekomme ich eine ähnlich gute Beschreibung (auf deutsch) für OO?

Die Informationen zu StarBasic Programmierung hier im Forum habe ich schon durchgeschaut. Einige Links sind nicht aktuell und die anderen bringen mich nicht weiter.

Dank für nen kleinen Schubs zum Anfang.

Volker
Karolus
********
Beiträge: 7534
Registriert: Mo, 02.01.2006 19:48

Re: Öffnen von OO-Tabellen für Beginners

Beitrag von Karolus »

Hallo
vpetzold hat geschrieben:
Sub DateiOeffnen

Dim Doc as Object
Dim url as String
url = "File:///Users/Volker/Documents/Datei.ods"
'ist die Schreibweise so richtig ? Unter Linux muss File klein geschrieben werden !
'besser ist in jedem Fall:
'url = converttourl("/Users/Volker/Documents/Datei.ods")
dim myFileProp() as Object
'dort fehlten ↑die Klammerzeichen.

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Öffnen von OO-Tabellen für Beginners

Beitrag von Toxitom »

Hey,
vpetzold hat geschrieben:dim myFileProp as Object
Karolus hat geschrieben:dort fehlten ↑die Klammerzeichen.
Nicht nur ;-) - dies dürfte so gar nicht funktionieren. Entweder das Objekt benennen-
dim myFileProp() as new com.sun.star.beans.PropertyValue
oder nur allgemein schreiben
dim myFileProp()

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
vpetzold
*
Beiträge: 14
Registriert: So, 05.02.2006 17:16

Re: Öffnen von OO-Tabellen für Beginners

Beitrag von vpetzold »

...alle Änderungen haben nichts gebracht. Ich habe darauf hin ein Makro aufgezeichnet. Einfach das durchspielen, was ich machen wollte - eine bestimmte Datei öffnen.

sub openFile
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Open", "", 0, Array())
end sub

Nur hat der Recorder nicht aufgezeichnet, welche Datei ich geladen habe. Also nichts mit URL etc. Auch wenn ich das Macro dann noch einmal ausführe, wird die Datei nicht geladen. Das ist nicht unbedingt ein Macro, was man nutzen kann.

Volker
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Öffnen von OO-Tabellen für Beginners

Beitrag von turtle47 »

Hallo Volker,

wie ist es den hiermit:

Code: Alles auswählen

Sub Datei_Oeffnen
Dim Arg() 
Dim oDoc As Object
	oDoc = thisComponent
	oController = oDoc.getCurrentController()
	sUrl = convertToURL("/Users/Volker/Documents/Datei.ods")
	vDoc=StarDesktop.loadComponentFromURL (sURL, "_blank", 63, Arg())
End Sub
Die Datei "Datei.ods"muss natürlich in dem Verzeichnis vorhanden sein!

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten