delphi中GRID数据导出到EXCEL的操作

首先确定在窗口上放有Excelapplication, Excelworkbook, Excelworksheet(在SERVER选项上),用来创建EXCEL文件及工作表.

再放入一个按钮,作为触发器,

拖入一个savedialog用来保存文件。代码如下:

procedure Tfrmqry.Button1Click(Sender: TObject);

var

 i,j,row,nall:integer;        //定义变量,i用以储存记录的数目,  j是记录的列数   row是EXCEL的行数  nall是记录的总数

begin

  if SaveDialog1.Execute then                    // 打开保存窗口,让用户选择保存的文件名

begin            //inintial excel  初始化EXCEL

 ExcelApplication1.Connect;

 ExcelApplication1.Workbooks.Add(Null,0);

 ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks[1]);

 ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Sheets[1] as _WorkSheet);

  begin

  nall:=qry1.RecordCount;                   //保存记录的数量

  row:=0;                                            //初始化行,定位在第一 行

 for j:=0 to QRY1.Fields.Count-1 do       // column   name,统计共有的列数目,把列名逐列导出到EXCEL第一行

        begin

   ExcelWorksheet1.Cells.item[1, j+1] := qry1.Fields[j].DisplayName  //.DisplayLabel;

        end;

  for i:=0 to nall-1 do    // total rows   正规记录,从第一条记录一直到最后循环

      while not qry1.Eof do   只要记录没到最后就执行以下动作

    begin

          for j:=0 to QRY1.Fields.Count-1 do       // column逐列导出动作

        begin

            ExcelWorkSheet1.Cells.Item[row+2,j+1]:=QRY1.Fields[j].AsString;[行,列]

        end;

            row:=row+1;  //行进行增量

       qry1.Next;        //到下一条记录

   end;

 end;

//以下是导出完毕后的动作,

   ExcelWorkBook1.SaveCopyAs(SaveDialog1.FileName+'.xls'); //加后缀名,确保最后是EXCEL文件

   ExcelWorkBook1.Close(false);

  ExcelApplication1.Disconnect;        //断开与EXCEL的连接

  Screen.Cursor:=crDefault;          //指针随记录而动

  showmessage('成功导出 '+inttostr(nall)+' 条数据!');

end;

end;

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值