![]() |
Excel per OLE fernsteuern
Hier mal ein kleines Tutorial für die Verwendung der OLE-Excel-Schnittstelle
für Excel brauchen wir zunächst folgende Units:
Delphi-Quellcode:
dann bauen wir erst mal eine Verbindung zu Excel auf
uses Variants, ComObj;
Delphi-Quellcode:
Nun brauchen wir erst mal Tabellen auf denen wir arbeiten können (Sheets)
procedure ExcelFuellen;
var Excel : Variant; begin Excel := CreateOleObject('Excel.Application'); //Hier kommt der weitere Code hin end; 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:
oder
excel.Application.SheetsInNewWorkBook := 8; //Die 8 is die Anzahl der Sheets
Excel.Workbooks.Add; b) Wir öffnen ein neues Workbook und fügen entsprechend viele neue Sheets hinzu
Delphi-Quellcode:
nun sollten wir dem Sheet einen Namen geben:
Excel.Sheets.Add; //einen neuen Sheet hinzufügen
Delphi-Quellcode:
Nun wollen wir mal ein paar Zeichen und Zahlen in unser Excel schreiben
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'];
Delphi-Quellcode:
Jetzt können wir zB auch mal die Schrift fett machen:
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
Delphi-Quellcode:
Oder auch mal eine Formel einfügen:
Excel.Range['A1:B4'].Select; //Den Bereich A1 bis B4 makieren
Excel.Selection.Font.Bold := true;//und im Makierten Bereich die Schriftdicke ändern
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:
wir können natürlich auch direkt speichern ohne es anzuzeigen
Excel.Visible := true;
Excel := unassigned;
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] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz