Difference between revisions of "CalcAutomation/de"

From Lazarus wiki
Jump to navigationJump to search
m
Line 36: Line 36:
 
   varSheet1 := varSheets.getByIndex(0);
 
   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
 
   // Speichert das Dokument unter einem neuen Namen
Line 87: Line 82:
 
   varSheet1 := varSheets.getByIndex(0);
 
   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
 
  
 
   // Speichert die Datei unter ihrem aktuellen Namen
 
   // Speichert die Datei unter ihrem aktuellen Namen
Line 103: Line 97:
  
 
end;
 
end;
 +
</syntaxhighlight>
 +
<br>
 +
==Zellen adressieren==
 +
Beide Adressierungsmethoden sprechen die selbe Zelle an und liefern damit das selbe Ergebnis<br>
 +
<syntaxhighlight>
 +
  ...
 +
  // 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');
 +
  ...
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>

Revision as of 11:33, 6 October 2012

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)