关闭

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

928人阅读 评论(1) 收藏 举报

首先确定在窗口上放有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;

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4587次
    • 积分:85
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:3篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论