用Servers组件,如果不将控件free掉,内存里有excel.exe进程。这样
会导致excel不能正常工作。下面一个function是将dataset里的数据导出excel,并保存excel表,大家有空可以加个数据统计什么的。

将dataset里的数据导出excel,并保存excel表procedure TFrmMain.WriteExcel(AdsData: TADODataSet; sName, Title: string);
将dataset里的数据导出excel,并保存excel表var
将dataset里的数据导出excel,并保存excel表  ExcelApplication1: TExcelApplication;
将dataset里的数据导出excel,并保存excel表  ExcelWorksheet1: TExcelWorksheet;
将dataset里的数据导出excel,并保存excel表  ExcelWorkbook1: TExcelWorkbook;
将dataset里的数据导出excel,并保存excel表  i, j: 
integer;
将dataset里的数据导出excel,并保存excel表  filename: 
string;
将dataset里的数据导出excel,并保存excel表begin
将dataset里的数据导出excel,并保存excel表  filename :
= concat(extractfilepath(application.exename), sName, '.xls');
将dataset里的数据导出excel,并保存excel表
  try
将dataset里的数据导出excel,并保存excel表    ExcelApplication1 :
= TExcelApplication.Create(Application);
将dataset里的数据导出excel,并保存excel表    ExcelWorksheet1 :
= TExcelWorksheet.Create(Application);
将dataset里的数据导出excel,并保存excel表    ExcelWorkbook1 :
= TExcelWorkbook.Create(Application);
将dataset里的数据导出excel,并保存excel表    ExcelApplication1.Connect;
将dataset里的数据导出excel,并保存excel表  except
将dataset里的数据导出excel,并保存excel表    Application.Messagebox(
'Excel 没有安装!', 'Hello', MB_ICONERROR + mb_Ok);
将dataset里的数据导出excel,并保存excel表
    Abort;
将dataset里的数据导出excel,并保存excel表  
end;
将dataset里的数据导出excel,并保存excel表  try
将dataset里的数据导出excel,并保存excel表    ExcelApplication1.Workbooks.Add(EmptyParam, 
0);
将dataset里的数据导出excel,并保存excel表    ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[
1]);
将dataset里的数据导出excel,并保存excel表    ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[
1as _worksheet);
将dataset里的数据导出excel,并保存excel表    AdsData.First;
将dataset里的数据导出excel,并保存excel表    
for j := 0 to AdsData.Fields.Count - 1 do
将dataset里的数据导出excel,并保存excel表      begin
将dataset里的数据导出excel,并保存excel表        ExcelWorksheet1.Cells.item[
3, j + 1] := AdsData.Fields[j].DisplayLabel;
将dataset里的数据导出excel,并保存excel表        ExcelWorksheet1.Cells.item[
3, j + 1].font.size := '10';
将dataset里的数据导出excel,并保存excel表
      end;
将dataset里的数据导出excel,并保存excel表    
for i := 4 to AdsData.RecordCount + 3 do
将dataset里的数据导出excel,并保存excel表      begin
将dataset里的数据导出excel,并保存excel表        
for j := 0 to AdsData.Fields.Count - 1 do
将dataset里的数据导出excel,并保存excel表          begin
将dataset里的数据导出excel,并保存excel表            ExcelWorksheet1.Cells.item[i, j 
+ 1] :=
将dataset里的数据导出excel,并保存excel表                AdsData.Fields[j].Asstring;
将dataset里的数据导出excel,并保存excel表            ExcelWorksheet1.Cells.item[i, j 
+ 1].font.size := '10';
将dataset里的数据导出excel,并保存excel表
          end;
将dataset里的数据导出excel,并保存excel表        AdsData.
Next;
将dataset里的数据导出excel,并保存excel表      
end;
将dataset里的数据导出excel,并保存excel表    ExcelWorksheet1.Columns.AutoFit;
将dataset里的数据导出excel,并保存excel表    ExcelWorksheet1.Cells.item[
12] := Title;
将dataset里的数据导出excel,并保存excel表    ExcelWorksheet1.Cells.Item[
12].font.size := '14';
将dataset里的数据导出excel,并保存excel表
    ExcelWorksheet1.SaveAs(filename);
将dataset里的数据导出excel,并保存excel表    Application.Messagebox(pchar(
'数据成功导出' + filename), 'Hello',
将dataset里的数据导出excel,并保存excel表
      mb_Ok);
将dataset里的数据导出excel,并保存excel表  finally
将dataset里的数据导出excel,并保存excel表    ExcelApplication1.Disconnect;
将dataset里的数据导出excel,并保存excel表    ExcelApplication1.Quit;
将dataset里的数据导出excel,并保存excel表    ExcelApplication1.Free;
将dataset里的数据导出excel,并保存excel表    ExcelWorksheet1.Free;
将dataset里的数据导出excel,并保存excel表    ExcelWorkbook1.Free;
将dataset里的数据导出excel,并保存excel表  
end;
将dataset里的数据导出excel,并保存excel表
end;
将dataset里的数据导出excel,并保存excel表

相关文章: