CalcAutomation/de

From Lazarus wiki
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 einm 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);

  // Schreibt in einen Bereich einen Wert 
  // Achtung: der Begriff Bereich wird hier nur für eine einzelne Zelle verwendet 
  varSheet1.getCellRangeByName('A1').setString('Txt 1');
  // schreibt in eine Zelle einen Wert
  // Achtung: die Zählung der Zellen beginnt bei (0,0)
  varSheet1.getCellByPosition(2,4).setString('Txt 2');

  // 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

  try
     // Erstellt das OleObjekt und erstellt den Zeiger darauf
     varCLApp := CreateOleObject('com.sun.star.ServiceManager');
   except
     WriteLn('Unable to start OO.');
     Exit;
   end;

   // 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);

   varSheet1.getCellRangeByName('A1').setString('Txt 1');  // Schreibt in einen Bereich einen Wert
   varSheet1.getCellByPosition(2,4).setString('Txt 2');    // schreibt in eine Zelle einen Wert

   varDokument.store;
   varDokument.close(True);
   varDesktop.terminate; //Beendet die Anwendung

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

end;



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