procedure RsToExcel(AdoQuery1: TAdoQuery; ExcelFileName: string); var ExcelApp, Book, Sheet, xlQuery: OleVariant; begin application.ProcessMessages; if not ADOQuery1.Active then ADOQuery1.Open; ExcelApp := CreateOleObject( 'Excel.Application' ); //创建 try if ExcelApp.Workbooks.count < 1 then ExcelApp.WorkBooks.Add; Book := ExcelApp.Workbooks[1]; if Book.Worksheets.Count < 1 then Book.Worksheets.Add; Sheet := Book.Worksheets[1]; xlQuery := Sheet.QueryTables.Add(ADOQuery1.Recordset, Sheet.Range['A1']); //xlQuery.FieldNames := false; xlQuery.Refresh; Sheet.SaveAs(ExcelFileName); finally Sheet := Unassigned; Book := Unassigned; if not VarIsEmpty(ExcelApp) then ExcelApp.Quit; ExcelApp := Unassigned; //if ADOQuery1.Active then ADOQuery1.Close; end; end;
var
ExcelApp, Book, Sheet, xlQuery: OleVariant;
begin
application.ProcessMessages; if not ADOQuery1.Active then
ADOQuery1.Open; ExcelApp := CreateOleObject( 'Excel.Application' ); //创建
try
if ExcelApp.Workbooks.count < 1 then
ExcelApp.WorkBooks.Add;
Book := ExcelApp.Workbooks[1];
if Book.Worksheets.Count < 1 then
Book.Worksheets.Add;
Sheet := Book.Worksheets[1]; xlQuery := Sheet.QueryTables.Add(ADOQuery1.Recordset, Sheet.Range['A1']);
//xlQuery.FieldNames := false;
xlQuery.Refresh; Sheet.SaveAs(ExcelFileName);
finally
Sheet := Unassigned;
Book := Unassigned;
if not VarIsEmpty(ExcelApp) then
ExcelApp.Quit;
ExcelApp := Unassigned;
//if ADOQuery1.Active then ADOQuery1.Close;
end;
end;