( 你也直接在按钮或者ActionList事件中引用它 ) procedure TfrmMate.ToExcel(DBGrid:TDBGrid); Const Con_stStr=''''; var ExcelApp: Variant; i,j,k:integer; FileName:string; DlgSave:TsaveDialog; Begin DlgSave:=TsaveDialog.Create(nil); DlgSave.Filter:='*.xls|*.xls'; if DlgSave.Execute then Begin application.ProcessMessages; Filename:=DlgSave.FileName; ExcelApp := CreateOleObject( 'Excel.Application' ); ExcelApp.Caption :='能创监控系统日志数据';//'Microsoft Excel'; ExcelApp.WorkBooks.Add; application.ProcessMessages; ExcelApp.WorkSheets[1].Activate; K:=1; For i:=0 To DBGrid.Columns.Count-1 Do Begin if DBGrid.Columns[i].Visible Then Begin ExcelApp.Cells[1,K]:=DBGrid.Columns[i].Title.Caption; k:=k+1; End;{if} End;{for} ExcelApp.rows[1].font.name:='宋体'; ExcelApp.rows[1].font.size:=10; ExcelApp.rows[1].Font.Color:=clBlack; ExcelApp.rows[1].Font.Bold:=true; j:=1; For i:=0 To DBGrid.Columns.Count-1 Do Begin If DBGrid.Columns[i].Visible Then Begin qry_Mate.First; for k:=1 To qry_Mate.RecordCount-1 Do Begin ExcelApp.Cells[K+1,j]:=ConstStr+qry_Mate.FieldByName(DBGrid.Columns[i].FieldName).Asstring; qry_Mate.Next; End;{for} j:=j+1; End;{if} End;{for} For I:=1 To qry_Mate.recordcount Do ExcelApp.rows[i].Font.SIZE:=9; ExcelApp.Columns.AutoFit; ExcelApp.ActiveWorkBook.SaveAs(FileName); ExcelApp.WorkBooks.Close; Application.MessageBox('数据导出成功....','数据导出',0); ExcelApp.Quit; ExcelApp:=Unassigned; DlgSave.Destroy; End; end;
----------------------------------------------
-
procedure Tform5.ToExcel(DBGrid:TDBGrid); Const Con__stStr=''''; var ExcelApp: Variant; i,j,k:integer; FileName:string; DlgSave:TsaveDialog; Begin DlgSave:=TsaveDialog.Create(nil); DlgSave.Filter:='*.xls|*.xls'; if DlgSave.Execute then Begin application.ProcessMessages; Filename:=DlgSave.FileName; ExcelApp := CreateOleObject( 'Excel.Application' ); ExcelApp.Caption :='能创监控系统日志数据';//'Microsoft Excel'; ExcelApp.WorkBooks.Add; application.ProcessMessages; ExcelApp.WorkSheets[1].Activate; K:=1; For i:=0 To DBGrid.Columns.Count-1 Do Begin if DBGrid.Columns[i].Visible Then Begin ExcelApp.Cells[1,K]:=DBGrid.Columns[i].Title.Caption; k:=k+1; End;{if} End;{for} ExcelApp.rows[1].font.name:='宋体'; ExcelApp.rows[1].font.size:=10; ExcelApp.rows[1].Font.Color:=clBlack; ExcelApp.rows[1].Font.Bold:=true; j:=1; For i:=0 To DBGrid.Columns.Count-1 Do Begin If DBGrid.Columns[i].Visible Then Begin qry_Mate.First; for k:=1 To qry_Mate.RecordCount-1 Do Begin ExcelApp.Cells[K+1,j]:=ConstStr+qry_Mate.FieldByName(DBGrid.Columns[i].FieldName).Asstring; qry_Mate.Next; End;{for} j:=j+1; End;{if} End;{for} For I:=1 To qry_Mate.recordcount Do ExcelApp.rows[i].Font.SIZE:=9; ExcelApp.Columns.AutoFit; ExcelApp.ActiveWorkBook.SaveAs(FileName); ExcelApp.WorkBooks.Close; Application.MessageBox('数据导出成功....','数据导出',0); ExcelApp.Quit; ExcelApp:=Unassigned; DlgSave.Destroy; End; end;