Thema: Delphi XLS in CSV

Einzelnen Beitrag anzeigen

Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: XLS in CSV

  Alt 20. Feb 2013, 11:47
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) = '.xlsthen
   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;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat