DBGird导出Excel(delphi)

今天新学了从DBGird把数据导出到Excel里显示。挺费劲的弄的。不过做出来还是蛮高兴的。由于数据太多,导出的也比较慢。

方法:
procedure DBGridInFoToExcel(FileName, TitleCaption: string;
  MakeDataSource: TDataSource; makeDBGrid: TDBGrid);
var
  xlApp, xlSheet, szValue: Variant;
  ARow, iLoop: word;
begin
  xlApp := CreateOleObject('Excel.Application');
  try
    xlSheet := CreateOleObject('Excel.Sheet');
    xlSheet := xlApp.WorkBooks.Add;
//   表格标题  
    for iLoop := 0 to makeDBGrid.Columns.Count - 1 do
      xlSheet.WorkSheets[1].Cells[1, iLoop + 1] := makeDBGrid.Columns[iLoop].Title.Caption;
     // 数据
    ARow := 2;
    with MakeDataSource.DataSet do
    begin
      DisableControls;
      First;
      while not Eof do
      begin
        for iLoop := 0 to Fields.Count - 1 do
        begin
          szValue := Fields[iLoop].Value;
          xlSheet.WorkSheets[1].Cells[ARow, iLoop + 1] := szValue;
        end;
        inc(ARow);
        Next;
      end;
      First;
      EnableControls;
    end;
    try
      xlSheet.SaveAs(FileName);
      Application.MessageBox('导出完毕!', '提示', MB_IconExclamation);
    finally
      xlSheet.Close;
      xlApp.Quit;
      xlApp := UnAssigned;
    end;
  except
    Application.MessageBox('本机没有安装Excel.', '错误', MB_OK);
  end;
end;

//调用:
//参数1:导出Excel的文件名称
//参数2:Excel的第一行标题(本例代码中去掉了这个功能,所以传空)
//参数3:与DBGrid连接的DataSouce
//参数4:要导出的DBGrid
DBGridInFoToExcel(AFileName, '', ADataSource, DBGrid1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值