ExcelAutomation2007plus/de

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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;