ExcelAutomation2007plus/de

From Lazarus wiki
Jump to: navigation, search

Deutsch (de)
Zurück zur Office Automation.


Excel 2007

Speicherplatz reservieren

var
  varXLApp: oleVariant;      // wird für die Adressierung des Programms Excel verwedet
  varXLWb: oleVariant;       // wird für die Adressierung des Exceldatei verwendet
  wstrUebergabe: WideString; // Hilfsvariable (wird z. B. für Umlaute usw. benötigt)


Excel OleObjekt erstellen

begin
   ...
   try
     varXLApp := CreateOleObject('Excel.Application');  // erstellt das Excelobjekt
   except
     WriteLn('MS Excel kann nicht gestartet werden.');  // Fehlerbehandlung
   end;
   ...
end;


Excel beenden und den Speicher freigeben

begin
   ...
   varXLApp.Quit;
   varXLApp := UnAssigned; //Der Speicher muss am Ende wieder freigegeben werden, sonst entstehen Speicherlecks
   ...
end;


Excel Version ermitteln

begin
  ...
  ShowMessage(varXLApp.Version);
  ...
end;


Fehlermeldungen und Warnungen deaktivieren

Das Dekativieren von bestimmten Fehlermeldungen und Warnungen kann die Softwaresteuerung vereinfachen.

begin
   ...
   varXLApp.DisplayAlerts := False;   // schaltet diverse Fehlermeldungen von Excel aus
   ...
end;


Sichtbarkeit von Excel steuern

Wenn das Screenupdating während der Automation auf False gesetzt wird, dann wird dadurch das Flackern des Bildschirms während der Automation verhindert.

begin
   ...
   varXLApp.Visible := False;         // macht Excel unsichtbar
   varXLApp.ScreenUpdating := False;  // schaltet das ScreenUpdating von Excel aus
 
   varXLApp.ScreenUpdating := True;   // schaltet das ScreenUpdating von Excel ein
   varXLApp.Visible := True;          // macht Excel sichtbar
   ...
end;


Workbooks


Workbook (Datei) einfügen

Erstellt eine neue Datei.

begin
   ...
   varXLApp.Workbooks.Add;               // fügt ein neues Workbook ein
   ...
end;


Workbook speichern

begin
   ...
   varXLApp.Workbooks[1].Save;           // speichert ein Worksheet über seinen Index
   varXLApp.Workbooks['Test.xls'].Save;  // speicher ein Worksheet über seinen Namen
   ...
end;


Workbook unter neuem Namen speichern

begin
   ...
   varXLApp.Workbooks[1].SaveAs('D:\Test.xls', varXLApp.Workbooks[1].fileformat);
   ...
end;


Workbook schliessen

begin
   ...
   varXLApp.Workbooks[1].Close;
   ...
end;


Workbook einen Bereich benennen

begin
   ...
   varXLApp.Workbooks[1].Names.Add('kmh', '=Tabelle1!$E$14');
   ...
end;


Worksheet


Worksheet einfügen

begin
   ...
   varXLApp.WorkBooks[1].WorkSheets.Add; //fügt ein neues WorkSheet hinzu
   ...
end;


Worksheet einen Bereich benennen

begin
   ...
   varXLApp.Workbooks[1].WorkSheets[1].Names.Add('kmh', '=Tabelle1!$E$14');
   ...
end;


Zellen und Ranges


Wert einfügen

begin
  ...
  varXLApp.Workbooks[1].WorkSheets[1].Range['E14'].Value := 4;
  ...
end;


Charts erstellen

Chart Speicher reservieren

var
   varDiagramm: OleVariant;


Chart Speicher freigeben

begin
   ...
   varDiagramm := UnAssigned;
   ...
end;


Chart aktivieren

begin
   ...
   varDiagramm.Activate; // Aktiviert das Chart
   ...
end;


Chart Diagramtyp festlegen

begin
   ...
   varDiagramm.ChartType := xlColumnClustered; // Legt den Diagramtyp fest
   ...
end;


Chart Datenherkunft (Datenquelle) festlegen

begin
   ...
   // Legt die Datenherkunft (das Excelsheet und den Bereich im Excelsheet) fest
   varDiagramm.SetSourceData (Source := varXLApp.WorkSheets['Tabelle1'].Range['A1:E13'],
                           PlotBy := xlColumns);
   ...
end;


Chart Titel

begin
   ...
   // Legt fest, dass das Chart einen Titel haben darf
   varXLApp.Workbooks[1].ActiveChart.HasTitle := True;
 
   // Legt den Namen des Chart Titels fest
   varXLApp.Workbooks[1].ActiveChart.ChartTitle.Text := 'Diagnose';
 
   // Legt die Hintergrundschriftfarbe des Chart Titels fest
   varXLApp.Workbooks[1].ActiveChart.ChartTitle.Interior.Color := vbGreen;
   ...
end;


Chart Legende

begin
  ...
  //Legt die Beschriftung des ersten Elements der Chartlegende fest
  varXLApp.Workbooks[1].ActiveChart.SeriesCollection(1).Name := '="Eins"';
   ...
end;


Chart Achsenbeschriftung

begin
  ...
  // Legt fest, das die Achse eine Beschriftung hat
  varXLApp.Workbooks[1].ActiveChart.Axes(xlValue).HasTitle:= True;
  // Ermöglicht das Schreiben des Eurozeichens
  wstrUebergabe := UTF8ToUTF16('€');
  varXLApp.Workbooks[1].ActiveChart.Axes[xlValue].AxisTitle
    .Characters.Text := wstrUebergabe;
   ...
end;


Chart Kategorie

begin
  ...
  // Legt fest, dass die Chart Kategorie einen Titel hat
  varXLApp.Workbooks[1].ActiveChart.Axes(xlCategory, xlPrimary).HasTitle := True;
  // Legt den Namen der Chart Kategorie fest
  varXLApp.Workbooks[1].ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Text := 'Jahre';
  // Legt die Schriftfarbe der Chart Kategorie fest
  varXLApp.Workbooks[1].ActiveChart.Axes[xlCategory].TickLabels.Font.Color:= vbBlue;
   ...
end;


Verschiebt das Chart in ein Worksheet

begin
  ...
  varDiagramm.Location (Where:= xlLocationAsObject, Name:= 'Tabelle1');
  ...
end;



--Olaf 09:26, 1 January 2013 (UTC)