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