Felher beim Laden einer XLS

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

Moderator: Moderatoren

uli38
**
Beiträge: 37
Registriert: Do, 13.11.2008 18:24

Felher beim Laden einer XLS

Beitrag von uli38 »

Hallo.
Ich möchte in einem Makro einfach nur eine Excel-Tabelle öffnen mit folgendem Code:
dim otabelle as Object
dim odesktop as object
dim odocument as object
dim tabellendocument as object
dim tabelle as object
dim tabelle1 as object
dim selection as object
dim args()
dim url as string
url="file:///d:/Werde/vreport.xls"
oDesktop = createUnoService("com.sun.star.frame.Desktop")
otabelle = oDesktop.LoadComponentFromUrl(Url, "Tabelle"1, 0, args())
.....

Leider bekomme ich immer wieder einen Fehler:"Es ist eine Exception aufgetreten:Type:com.uns.star.lang.IllegalargumentException. Message:URL seems to be an unsupported one" :?

Mit Calc kann ich die Datei normal öffnen. Calc-Tabellen lassen sich mit dem Makro öffnen. Wandele ich die Excel-Datei in ein .ods um, erhalte ich die gleiche Fehlermeldung.
Wo liegt der Fehler?

Schon jetzt danke für Eure Hilfe.
Gruß
Uli
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Felher beim Laden einer XLS

Beitrag von komma4 »

Ich kann mir nur vorstellen, dass Du einen Tippfehler im Dateinamen hast (bin mir nicht sicher, ob OOo auch bei XLS = Windows case-sensitive arbeitet).

Tipp: Um Schreibfehler bei der URL Notation zu vermeiden, binde die TOOLS-Bibliothek ein und erstelle die URL mittels ConvertToUrl()-Funktion.
Viel Erfolg!
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)
uli38
**
Beiträge: 37
Registriert: Do, 13.11.2008 18:24

Re: Fehler beim Laden einer XLS

Beitrag von uli38 »

Hallo Winfried.
Ich habe Deinen Tipp ausprobiert und das Macro umgebaut. Die Datei ahbe ich neu als Calc-Dokument auf D:\ abgelegt:
dim url as string
url=ConvertToUrl("d:\vreport.ods")
oDesktop = createUnoService("com.sun.star.frame.Desktop")
odoc = odesktop.loadComponentFromURL(url,"Tabelle1",0,args())

Ergenis: immer noch der geiche Fehler :(
Kann es an einer Deklaration zurvor liegen?
Hier der komplette Code:

sub vrexport_oeffnen
dim otabelle as Object
dim odesktop as object
dim odocument as object
dim tabellendocument as object
dim tabelle as object
dim odoc as object
dim cell as object
dim tabelle1 as object
dim selection as object
dim args()
dim url as string
url=ConvertToUrl("d:\vreport.ods")
oDesktop = createUnoService("com.sun.star.frame.Desktop")
odoc = odesktop.loadComponentFromURL(url,"Tabelle1",0,args())

Hast Du noch eine Idee?

Schon jetzt danke.
Gruß
Uli
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Felher beim Laden einer XLS

Beitrag von komma4 »

...ja, übersehen:

Nehme Array() anstelle args()

Code: Alles auswählen

otabelle = oDesktop.LoadComponentFromUrl(Url, "Tabelle1", 0, Array() )
Durch die Deklaration erzeugst Du ein VARIANT-Array, es wird aber ein FileProperty erwartet - oder eben ein leeres Array....

Klappt es nun?


P.S.: nächstes Mal den Code markieren und dann die "Code" Schaltfläche oben am Editor-Bereich drücken-sieht besser aus und ist lesbarer.
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)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Felher beim Laden einer XLS

Beitrag von komma4 »

uli38 hat geschrieben:Ich möchte in einem Makro einfach nur eine Excel-Tabelle öffnen
Folgender Code funktioniert bei mir (OOo seit 1.x)***1:

Code: Alles auswählen

url = ConvertToURL( "/pfad/zur/Datei/irgendwie.xls" )
oDok = StarDesktop.loadComponentFromURL( url, "_blank" , 0, Array() )
Voraussetzungen:

* TOOLS Bibliothek geladen***2
* Datei (im angegebenen Pfad) vorhanden




***1
[in Beantwortung einer Mail an mich privat: kein support per E-Mail!]
***2

Code: Alles auswählen

If NOT GlobalScope.BasicLibraries.isLibraryLoaded( "Tools" ) then
   GlobalScope.BasicLibraries.LoadLibrary( "Tools" ) 
End If
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