Hallo, keine Panik!
Ich habe testweise ein WorkSheet angelegt:
Code:
A B
Name Height
1 AAAA 10
2 BBBB 20
3 CCCC 30
=Sum(B1:B3)
Folgende Zugriffe habe ich beispielhaft implementiert:
Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
begin
DataSource.DataSet := ADODataSet;
ADODataSet.Connection := ADOConnection;
ADOConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;'
+ 'Data Source="test.xls";Extended Properties="Excel 8.0;HDR=Yes";'
+ 'Persist Security Info=False';
ADOConnection.LoginPrompt := False;
with ADODataSet do
begin
CommandType := cmdTable;
CommandText := '[data$]'; // Worksheet: data
Open;
// Lookup von Wert "BBBB" in Spalte "Name"
if Locate('Name', 'BBBB', []) then
begin
Edit;
ShowMessage(VarToStr(FieldValues['Height']));
FieldValues['Height'] := self.Edit.Text;
Post;
ShowMessage(VarToStr(FieldValues['Height']));
end;
// Zugriff über Zeilenindex (Eins-basiert)
RecNo := 1;
ShowMessage(FieldValues['Name']); // AAAA
// Zugriff über Spaltenindex // 10
ShowMessage(Fields[1].Value);
Connection.Close;
end;
end;
Kommst du zurecht?
Freundliche Grüße