CalcAutomation/de

From Lazarus wiki
Revision as of 11:33, 6 October 2012 by Olaf (talk | contribs)
Jump to navigationJump to search

Deutsch (de)

Zurück zur Office Automation.


Calc


Aufbau einer Steuerung für die Anwendung Calc


Erstellen eines neuen Sheets und speichern unter einem neuen Namen

  ...
var
  // Reservieren des Speichers
  varCLApp: OleVariant;
  varDesktop: OleVariant;
  varSheets: OleVariant;
  varSheet1: OleVariant;
  varDokument: OleVariant;
  varLoadParams: OleVariant;

begin
  // Erstellt das OleObjekt und erstellt den Zeiger darauf
  varCLApp := CreateOleObject('com.sun.star.ServiceManager');

  // Erstellt den Zeiger auf den Officedesktop
  varDesktop := varCLApp.createInstance('com.sun.star.frame.Desktop');
  // Erstellt ein leeres Array das für die Dokumentenerstellung benötigt wird
  varLoadParams := VarArrayCreate([0, -1], varVariant);
  // Erstellt ein neues (leeres) Dokument (Workbook) und setzt den Zeiger darauf
  varDokument := varDesktop.LoadComponentFromURL('private:factory/scalc','_blank',0, varLoadParams);
  // Erstellt den Zeiger auf die Sheets
  varSheets := varDokument.getSheets();
  // Erstellt den Zeiger auf ein einzelnes Sheet
  varSheet1 := varSheets.getByIndex(0);

  ...

  // Speichert das Dokument unter einem neuen Namen
  varDokument.storeAsURL('file:///D:/test.ods', varLoadParams);
  // Schliesst das Dokument
  varDokument.close(True);
  //Beendet die Anwendung
  varDesktop.terminate;

  // Freigabe des Speichers
  varCLApp := UnAssigned;
  varDesktop := UnAssigned;
  varSheets := UnAssigned;
  varSheet1 := UnAssigned;
  varDokument := UnAssigned;
  varLoadParams := UnAssigned;
end;


Öffnen eines vorhandenen Sheets und speichern des Sheets

  ...
var
  varCLApp: OleVariant;
  varDesktop: OleVariant;
  varSheets: OleVariant;
  varSheet1: OleVariant;
  varDokument: OleVariant;
  varLoadParams: OleVariant;

begin

   // Erstellt das OleObjekt und erstellt den Zeiger darauf
   varCLApp := CreateOleObject('com.sun.star.ServiceManager');
   // Erstellt den Zeiger auf den Officedesktop
   varDesktop := varCLApp.createInstance('com.sun.star.frame.Desktop');
   // Erstellt ein leeres Array das für die Dokumentenerstellung benötigt wird
   varLoadParams := VarArrayCreate([0, -1], varVariant);
   // Öffnet ein vorhandenes Dokument (Workbook) und setzt den Zeiger darauf
   varDokument := varDesktop.LoadComponentFromURL('file:///D:/TestDatei.ods','_blank',0, varLoadParams);
   // Erstellt den Zeiger auf die Sheets
   varSheets := varDokument.getSheets();
   // Erstellt den Zeiger auf ein einzelnes Sheet
   varSheet1 := varSheets.getByIndex(0);

  ...

   // Speichert die Datei unter ihrem aktuellen Namen
   varDokument.store;
   varDokument.close(True);
   varDesktop.terminate; //Beendet die Anwendung

   varCLApp := UnAssigned;
   varDesktop := UnAssigned;
   varSheets := UnAssigned;
   varSheet1 := UnAssigned;
   varDokument := UnAssigned;
   varLoadParams := UnAssigned;

end;


Zellen adressieren

Beide Adressierungsmethoden sprechen die selbe Zelle an und liefern damit das selbe Ergebnis

  ...
   // schreibt den Wert in die Zelle deren Namen angeben wird
   varSheet1.getCellRangeByName('A1').setString('Txt 1');  // Schreibt in einen Bereich (eine Zelle) einen Wert
   // schreibt in eine Zelle einen Wert
   // die Zählung der Zellen begint bei (0,0)
   // die Schreibweise lautet (Spalte, Zeile)
   varSheet1.getCellByPosition(0,0).setString('Txt 1');
  ...



--Olaf 06:40, 6 October 2012 (UTC)