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;

posted on 2017-09-06 16:19  敲代码的小女孩  阅读(660)  评论(0编辑  收藏  举报