天天看點

Delphi DBGrid 導出csv

procedure OutPutDBGridToCSV(AGrd:TDBGrid; AQuery: TQuery);

var

  i,ColNum: Integer;

  Title,Data,SaveName: String;

  ALst: TStringList;

begin

  try

    ALst:=TStringList.Create;

    ALst.Clear;

    ColNum:=0;

    ColNum:=AGrd.Columns.Count-1;

    Title:='';

    Title:='"'+AGrd.Columns.Items[0].Title.Caption+'"';

    for i := 1 to AGrd.Columns.Count-1 do

    begin

      Title:=Title+',"'+AGrd.Columns.Items[i].Title.Caption+'"';

    end;

    ALst.Add(Title);

    with AQuery do

    begin

      First;

      while not Eof do

      begin

        Data:='"'+FieldByName(AGrd.Columns.Items[0].FieldName).AsString+'"';

        for i := 1 to ColNum do

        begin

          Data:=Data+',"'+FieldByName(AGrd.Columns.Items[i].FieldName).AsString+'"';

        end;

        ALst.Add(Data);

        Next;

      end;

    end;

    SaveName:=FormatDateTime('yyyyMMDDhhmmss',Now);

    SaveName:='C:\'+SaveName+'.csv';

    ALst.SaveToFile(SaveName);

  finally

    ALst.Free;

  end;

  Application.MessageBox(PChar('檔案儲存至'+SaveName),'系統提示',64);

end;