AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Excel per OLE fernsteuern

Ein Thema von Boombuler · begonnen am 6. Jan 2005
Antwort Antwort
Benutzerbild von Boombuler
Boombuler

Registriert seit: 14. Mär 2003
Ort: Osnabrück
244 Beiträge
 
Delphi 2009 Professional
 
#1

Excel per OLE fernsteuern

  Alt 6. Jan 2005, 12:46
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]
  Mit Zitat antworten Zitat
Antwort Antwort

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz