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
-
Hallo
warum willst du das in C++ uebersetzen
Du kannst mit dem BCB auch Delphi-Code uebersetzen
Im schlimmsten Fall mach eine Delphi-Komponente drausMfG
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