ExcelAutomation2007plus/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;From the Free Pascal wiki, page "ExcelAutomation2007plus/de", as it stood on 2020-02-14 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.