ExcelAutomation2007plus/de
From Lazarus wiki
Jump to navigationJump to 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;