OpenOffice- Automation mit C++ statt mit Delphi ?



  • Hallo,
    ich möchte aus meiner Anwendung heraus ein Open-Office-Dokument öffnen.
    Das Dokument ist ein Textdokument und enthält eine Tabelle.
    In die Zellen dieser Tabelle möchte ich Werte eintragen.

    Mit Delphi geht das z.B. so:

    ... uses comObj ...
    
    procedure TForm1.Button1Click(Sender: TObject);
    var Servicemanager, Desktop, LadeParameter, Dokument, Tabelle, Zelle: OleVariant;
    begin
    //Open Office initialisieren
    LadeParameter := VarArrayCreate([0,-1],varVariant);
    Servicemanager := CreateOleObject('com.sun.star.ServiceManager');
    Desktop:=Servicemanager.createInstance ('com.sun.star.frame.Desktop');
    
    //Dokument öffnen
    Dokument:=Desktop.LoadComponentFromURL('file:///c|/Dokument1.sxw','_blank',0,LadeParameter);
    
    //Tabelle und Zelle auswählen
    Tabelle:=Dokument.getTextTables;
    Tabelle:=Tabelle.getByName('Tabelle1');
    Zelle:=Tabelle.GetCellByName('A1');
    
    //Zelle ausfüllen
    Zelle.SetString('irgendwas');
    
    Dokument:=Unassigned;
    Desktop:=Unassigned;
    Servicemanager:=Unassigned;
    end;
    

    Könnt Ihr mir bitte dabei helfen, diesen Code "nach C++ zu übersetzen"?
    Ich scheitere schon an der Zeile "LadeParameter := VarArrayCreate ..." 😕

    Danke! Phillip


  • Mod

    Hallo

    warum willst du das in C++ uebersetzen
    Du kannst mit dem BCB auch Delphi-Code uebersetzen
    Im schlimmsten Fall mach eine Delphi-Komponente draus

    MfG
    Klaus



  • Hallo KlausB,

    das OpenOffice- Dokument möchte ich aus einem C++- Programm heraus bearbeiten, das mit dem BCB geschrieben wurde. In C++ habe ich dafür keine Code-Beispiele gefunden, sondern nur den Delphi- Code.

    Wie kann ich den Delphi- Code denn mit dem BCB übersetzen?
    Es ist 'nur' eine procedure.

    Phillip



  • Phillip Pendulina schrieb:

    Wie kann ich den Delphi- Code denn mit dem BCB übersetzen?

    Du brauchst eine syntaktisch korrekte, komplette Delphi-Unit. Für den Rest siehe FAQ, "Delphi-Komponenten im BCB".



  • Phillip,
    suche im Netz nach Beispielen für den Zugriff auf MS Office mit dem CBuilder. Du wirst feststellen, daß die Programmierung sehr ähnlich abläuft.

    Ich würde auch versuchen, das in C++ zu übersetzen. Mir erscheint Pascal-Code in einem CBuilder-Projekt irgendwie suspekt. Aber das ist natürlich nur eine Meinung.
    Was das "LadeParameter:=..." betrifft, das sieht wie ein verkappter Rückgabe-Parameter aus, da überhaupt keine Werte zugewiesen werden. Das würde ich erst mal einfach weglassen und 0 übergeben.



  • @dschensky:
    Mir kam es ja auch suspekt vor, Delphi- Code in C++ einzubinden.
    Aber es funktioniert:
    Habe den Delphi- Code in eine Komponente geschrieben und benutze diese Komponente im BCB.

    @Jansen und alle anderen:
    Danke nochmal für Eure Hilfe :-)))

    Phillip


Anmelden zum Antworten