DBGridEh和dbgrid导出

  1. uses  ComObj
  2. 如果你用DBGrid把数据显示出来,不管你用什么数据库,都可以导出到Excel表里!   
  3.     
  4.   uses   ComObj;   
  5.     
  6.   procedure   TSearchinforfrm.Button11Click(Sender:   TObject);   
  7.   var   
  8.       eclApp,WorkBook:olevariant;   
  9.       xlsFileName:string;   
  10.       i,j:integer;   
  11.   begin   
  12.     
  13.       if   SaveDialog1.Execute   then   
  14.           xlsFileName:=SaveDialog1.FileName;   
  15.     
  16.           try   
  17.           eclApp:=CreateOleObject('Excel.Application');   
  18.           WorkBook:=CreateOleObject('Excel.Sheet');   
  19.           except   
  20.           Application.MessageBox('系统没有安装Microsoft   Excel','Microsoft   Excel',MB_OK+MB_ICONWarning);   
  21.           Exit;   
  22.           end;   
  23.     
  24.           try   
  25.           WorkBook:=eclApp.workbooks.Add;   
  26.           for   i:=0   to   DBGrid1.Columns.Count-1   do   
  27.           begin   
  28.           //这里可以更改列名,用if   ...   then进行判断和指定列名   
  29.           eclApp.Cells(1,i+1):=DBGrid1.Columns[i].FieldName;   
  30.           end;   
  31.     
  32.           DBGrid1.DataSource.DataSet.First;   
  33.           j:=2;   
  34.           while   not   DBGrid1.DataSource.DataSet.Eof   do   
  35.           begin   
  36.           for   i:=0   to   DBGrid1.DataSource.DataSet.FieldCount-1   do   
  37.           begin   
  38.           eclApp.Cells(j,i+1):=DBGrid1.DataSource.DataSet.Fields[i].Value;   
  39.           end;   
  40.           DBGrid1.DataSource.DataSet.Next;   
  41.           inc(j);   
  42.           end;   
  43.     
  44.           WorkBook.SaveAS(xlsFileName);   
  45.           WorkBook.close;   
  46.           except   
  47.           ShowMessage('文件导出失败!');   
  48.           Exit;   
  49.           end;   
  50.           Application.MessageBox('保存成功!','恭喜',MB_OK   +   MB_ICONINFORMATION);   
  51.   end;

你可能感兴趣的:(数据库,Excel)