Externer Zugriff auf LibreOffice (API)

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

Moderator: Moderatoren

Flobse
Beiträge: 1
Registriert: Mo, 08.08.2011 06:55

Externer Zugriff auf LibreOffice (API)

Beitrag von Flobse »

Hallo alle miteinander,

ich suche nach einer Möglichkeit auf LibreOffice mit einem Programm (nicht Makro) zuzugreifen.
Aktuell dreht es sich um den Zugriff auf Calc, bei dem ich via VB.NET eine .xls auslesen möchte.
Bisher hatte ich beim Programmieren sehr wenig am Hut mit LO oder OO, nur mit Excel wo es auch problemlos klappte.
Das würde ich aber aus Kostengründen gerne umstellen, daher fiel die Wahl auf LO.

Leider bekomme ich aber keine Verbindung zu stande (z.b. über Com Object)
Unter OO funktioniert es mit:

Code: Alles auswählen

        Dim oSM, oDesk, oDoc As Object
        oSM = CreateObject("com.sun.star.ServiceManager")
        oDesk = oSM.createInstance("com.sun.star.frame.Desktop")
        Dim aNoArgs(-1) As Object
        oDoc = oDesk.loadComponentFromURL("C:\Test.xls", "_blank", 0, aNoArgs)
Jedoch funktioniert das nicht mit LO. Wäre auch nicht schön falls doch, denn sonst könnte man nicht steuern ob man jetzt LO oder OO nutzen möchte, falls beides installiert wäre.
Ich habe zwar auch ein Framework (AODL) gefunden mit dem ich das scheinbar realisieren könnte, aber ich würde dafür lieber direkt LO nutzen, schon allein aus Aktualisierungsgründen.

Kann mir da jemand helfen?
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Externer Zugriff auf LibreOffice (API)

Beitrag von komma4 »

Willkommen im Forum
Flobse hat geschrieben:Jedoch funktioniert das nicht mit LO.
Fehlermeldung?


Welche LO-Version?
Welches Betriebssystem?


loadComponentFromURL erwartet einen URL (keinen Windows-Dateinamen), das könnte schon das erste Problem sein.
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)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Externer Zugriff auf LibreOffice (API)

Beitrag von Stephan »

Leider bekomme ich aber keine Verbindung zu stande (z.b. über Com Object)
Jedoch funktioniert das nicht mit LO.
Ja, so ist meines Wissens wohl der aktuelle Stand seit Längerem.

(Einschränkend muß ich sagen das ich mich bei LO nur auf Stichproben stütze, denn kommerziell wird das bei meinen Kunden nicht eingesetzt, so das ich dafür unter Praxisbedingungen kaum Erfahrungen habe.)
Wäre auch nicht schön falls doch, denn sonst könnte man nicht steuern ob man jetzt LO oder OO nutzen möchte, falls beides installiert wäre.
Beim absehbaren Stand der Entwicklung sehe ich nicht wie man direkt unterscheiden könnte.
Kann mir da jemand helfen?
Ich würde dafür derzeitig OOo verwenden und gut.
Ein direkter Zugriff der UNterscheidung schiene mir bei jetzigem Stand ohnehin auch dann nicht möglich wenn der ZUgriff mit LO funktionieren würde. Ein Zugriff müßte momentan also wahrscheinlich ohnehin mittels Ansprechens der jeweilgen ausführbaren Soffice-Datei und direkter Makroübergabe erfolgen.

Auch die Frage der Updates würde für OOo sprechen, denn seit OOo 2.0 sind leider Updates hinsichtlich von API-Funktionalitäten erfahrungsgemäß nicht mehr ganz verlässlich, so das man in Praxis (insbesondere bei kommerzielller Anwendung) nur noch für die jeweilge Version freigeben kann. Bei LO dürfte dafür aktuell ein Mehrfaches an Aufwand entstehen, wegen leider sehr kurzen Update-Zyklen.



Gruß
Stephan
Antworten