Hier mal ein kleines Tutorial für die Verwendung der
OLE-Excel-Schnittstelle
für Excel brauchen wir zunächst folgende Units:
uses Variants, ComObj;
dann bauen wir erst mal eine Verbindung zu Excel auf
Delphi-Quellcode:
procedure ExcelFuellen;
var
Excel : Variant;
begin
Excel := CreateOleObject('Excel.Application');
//Hier kommt der weitere Code hin
end;
Nun brauchen wir erst mal Tabellen auf denen wir arbeiten können (Sheets)
dazu stehen uns 2 Möglichkeiten bereit:
a) Wir ändern die Starteinstellung mit der Excel ein neues Workbook anlegt und öffnen dann ein Workbook:
Delphi-Quellcode:
excel.Application.SheetsInNewWorkBook := 8; //Die 8 is die Anzahl der Sheets
Excel.Workbooks.Add;
oder
b) Wir öffnen ein neues Workbook und fügen entsprechend viele neue Sheets hinzu
Excel.Sheets.Add; //einen neuen Sheet hinzufügen
nun sollten wir dem Sheet einen Namen geben:
Delphi-Quellcode:
Excel.Sheets[1].
Name := '
DP Sheet';
//Hierbei ist 1 das erste Sheet 2 das zweite usw.
//von nun an können wir unser Sheet auch über den gegebenen Namen ansprechen! zB:
Excel.Sheets['
DP Sheet'];
Nun wollen wir mal ein paar Zeichen und Zahlen in unser Excel schreiben
Delphi-Quellcode:
var
row, column: Integer;
row := 1;
column := 2;
Excel.Sheets['
DP Sheet'].Cells[row,column].Value := '
Hallo';
Excel.Sheets['
DP Sheet'].Cells[1,3].value := 5.23;
//Da Value vom Typ Variant is können wir hier fast alles reinschreiben
Jetzt können wir zB auch mal die Schrift fett machen:
Delphi-Quellcode:
Excel.Range['A1:B4'].Select; //Den Bereich A1 bis B4 makieren
Excel.Selection.Font.Bold := true;//und im Makierten Bereich die Schriftdicke ändern
Oder auch mal eine Formel einfügen:
Delphi-Quellcode:
Excel.Cells[row,column].select;
Excel.ActiveCell.FormulaR1C1 := '=R2C1+R3C1' // Rechnet A2 + A3
Wenn wir Excel nun Anzeigen wollen geht das so:
Delphi-Quellcode:
Excel.Visible := true;
Excel := unassigned;
wir können natürlich auch direkt speichern ohne es anzuzeigen
Delphi-Quellcode:
Excel.ActiveWorkbook.SaveAs('C:\Blub.xls');
Excel.Quit; //Beendet Excel
Excel := Unassigned;
Tipp:
wenn ihr andere / komplexere Funktionen von Excel nutzen wollt (ich kann hier natürlich nicht auf alle eingehen)
(zB Rahmen ziehen, Zellenfarbe ändern, anders krankes zeug machen)
solltet ihr wie folgt vorgehen:
1) Excels Macroaufzeichnung starten
2) In Excel machen wovon du den Code willst
3) Macroaufzeichnung beenden
4) Den VB Code vom Macro angucken (Extras / Macro / Macros... / (Macro auswählen) / Bearbeiten)
5) In Delphi übersetzten (is recht ähnlich achtet nur auf " -> ' oder = -> := )
6) Code Optimieren (der Macro editor schmeiß teilweise unnützen code mit aus)
7) Glücklich sein!
MfG
Boombuler
[edit=Matze]Code formatiert. Mfg, Matze[/edit]