我的未来

我的未来

导航

DBGrid保存EXCEL

Posted on 2011-03-15 19:31  MKing  阅读(373)  评论(0)    收藏  举报
function TForm1.ExportDBGrid(DBGrid: TDBGrid; SheetName: string): Boolean;   //直接保存,不显示EXCEL
var
c, r, i, j: integer;
app: Olevariant;
TempFileName, ResultFileName: 
string;
begin
try
    result :
= True;
      app :
= CreateOLEObject('Excel.application');
    
// app.WorkBooks.Add(xlWBatWorkSheet);
    
except
      Application.MessageBox(
'Excel没有正确安装!','警告',MB_OK);
      result :
= False;
      exit;
    
end;
    SaveDialog1.DefaultExt :
= 'xls';
    SaveDialog1.FileName :
= SheetName;
    
if SaveDialog1.Execute then
      TempFileName :
= SaveDialog1.FileName
    
else
      Exit;
    app.Workbooks.add;
    app.Visible :
= false;
    Screen.Cursor :
= crHourGlass;
    DBGrid.DataSource.DataSet.First;
    c :
= DBGrid.DataSource.DataSet.FieldCount;
    r :
= DBGrid.DataSource.DataSet.RecordCount;
    Application.ProcessMessages;
    
for i := 0 to c - 1 do
      app.cells(
11 + i) := DBGrid.DataSource.DataSet.Fields[i].DisplayLabel;
    
for j := 1 to r do
    
begin
      
for i := 0 to c - 1 do
        app.cells(j 
+ 11 + i) := DBGrid.DataSource.DataSet.Fields[i].AsString;
      DBGrid.DataSource.DataSet.Next;
    
end;
    ResultFileName :
= TempFileName;
    
if ResultFileName = '' then
      ResultFileName :
= '数据导出';
    
if FileExists(TempFileName) then
     DeleteFile(TempFileName);
    app.Activeworkbook.saveas(TempFileName);
    app.Activeworkbook.close(false);
    app.quit;
    app :
= unassigned;
end;