unit Excelsteuerungsunit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtnrs, ComObj, StdCtrls, ComCtrls, ExcelXP, Testunit;
type
TForm1 =
class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
exc: TExcelApplication;
excWB: TExcelWorkbook;
excWS: TExcelWorksheet;
lcid: integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
// Speicher für Form1 freigeben
excWB.free;
excWS.Free;
// Form2 öffnen
Form2.ShowModal;
end;
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
// Speicher für Form1 freigeben
excWS.free;
excWB.free;
exc.Quit;
end;
procedure TForm1.FormCreate(Sender: TObject);
var i, iTemp: integer;
begin
// Speicher für Excel, ExcelWorkbook und ExcelWorksheet allocieren
// Dies ist nötig, da sonst bei dem verbinden (connectTo) mit dem Workbook und
// Worksheet fehler auftreten
exc := TExcelApplication.Create(
Nil);
excWB := TExcelWorkbook.create(
Nil);
excWS := TExcelWorksheet.create(
Nil);
// User ID ermitteln
// dies ist nicht unbedingt nötig, es kann beim laden der Exceldatei (nächster Schritt)
// auch Problemlos eine Null an Stelle dieser Variablen eingetragen werden
lcid := GetUserDefaultLCID;
//vorhandener Exceldatei laden !!! wichtig !!! Die Anzahl der emtyParam ist Office-Versions abhängig
exc.Workbooks.Open('
D:\Tischsteuerung\Steuerungsprogramm Version 1.103\Sensoren.xls', emptyParam, emptyParam, emptyParam, emptyParam
, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam, emptyParam
, emptyParam, emptyParam, lcid);
// Excel soll angezeigt werden
exc.visible[lcid] := true;
// verbinden des Workbooks und des Worksheets mit der in der exc geladenen Datei
excWB.ConnectTo(exc.ActiveWorkbook);
excWS.ConnectTo(excWB.ActiveSheet
as ExcelWorksheet);
// Laufvariable
i := 1;
// in dieser Schleife werden Zahlen in den Zellen in eine ComboBox eingetragen
// mit ähnlichen Schleifen können auch strings als Einträge in eine ComboBox
// ermöglicht werden.
while trystrtoint(excWS.Cells.Item[i+1,1],iTemp)=true
do
begin
ComboBox1.Items.Add(excWS.Cells.Item[i+1,2]);
i:=i+1;
end;
// Das erste Element in der ComboBox wird auch aktiv gesetzt
ComboBox1.ItemIndex := 0;
end;
end.