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
Öffnen von OO-Tabellen für Beginners
Moderator: Moderatoren
Re: Öffnen von OO-Tabellen für Beginners
Hallo
'besser ist in jedem Fall:
'url = converttourl("/Users/Volker/Documents/Datei.ods")
Gruß Karo
'ist die Schreibweise so richtig ? Unter Linux muss File klein geschrieben werden !vpetzold hat geschrieben:
Sub DateiOeffnen
Dim Doc as Object
Dim url as String
url = "File:///Users/Volker/Documents/Datei.ods"
'besser ist in jedem Fall:
'url = converttourl("/Users/Volker/Documents/Datei.ods")
'dort fehlten ↑die Klammerzeichen.dim myFileProp() as Object
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)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Öffnen von OO-Tabellen für Beginners
Hey,
- 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
vpetzold hat geschrieben:dim myFileProp as Object
Nicht nurKarolus hat geschrieben:dort fehlten ↑die Klammerzeichen.

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
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Öffnen von OO-Tabellen für Beginners
...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
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
Re: Öffnen von OO-Tabellen für Beginners
Hallo Volker,
wie ist es den hiermit:
Die Datei "Datei.ods"muss natürlich in dem Verzeichnis vorhanden sein!
Jürgen
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
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
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem