Hier mal ein Beispiel wie Du (in Verbindung mit
ADO) den Import aus
CSV und XLS hinbekommst. Nach der Anweisung
ADOQueryImport.Open hast Du dann die Daten als
ADO-Datenmenge vorliegen und kanns beliebig weiterspielen:
Delphi-Quellcode:
procedure TfrmPosImport.btnReadDataClick(Sender: TObject);
var
TableNames : TStringList;
PropString, DataSource : string;
begin
ADOConnectionImport.Connected := False;
TableNames := TStringList.Create;
if ExtractFileExt(edtFileName.Text) = '.xls' then
begin
PropString := '"Excel 8.0;HDR=Yes"';
DataSource := edtFileName.Text;
end
else
begin
PropString := '"text;HDR=Yes;FMT=Delimited"';
DataSource := ExtractFilePath(edtFileName.Text);
TableNames.Add(ExtractFileName(edtFileName.Text));
end;
ADOConnectionImport.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source='+DataSource+';'+
'Mode=Read;'+
'Extended Properties='+PropString+';'+
'Persist Security Info=False';
if TableNames.Count = 0 then
ADOConnectionImport.GetTableNames(TableNames);
if TableNames.Count > 0 then
begin
ADOQueryImport.Active := False;
cxgImportDBTableViewImport.ClearItems;
ADOQueryImport.SQL.Clear;
ADOQueryImport.SQL.Add('Select * from ['+TableNames[0]+'] where id is not null');
ADOQueryImport.Open;
// Hier erfolgt die Anzeige in einem Grid, aber man kann mit dem ADOQueryImport machen was man will
cxgImportDBTableViewImport.DataController.CreateAllItems;
cxgImportDBTableViewImport.ApplyBestFit();
end;
TableNames.Free;
end;