加入收藏 最近更新下载
  用户名: 密 码:
三友软件ERP操作问答
三友信息中心
信息搜索
关键字:
范 围:
首页三友信息中心 技术支持其它技术文档
 
DBGrid导出Excel方法
内容来源:其它技术文档    点击数:3888    更新时间:2012/4/24 9:29:55    收藏此页

DBGrid导出Excel方法一2008-05-20 10:21DBGrid导出Excel

   function    ProgressBarform(max:integer):tProgressBar;  

   var  

       ProgressBar1:tProgressBar;  

       form:tform;  

   begin  

       application.CreateForm(tform,form);  

       form.Position:=poScreenCenter;  

       form.BorderStyle:=bsnone;  

       form.Height:=30;  

       form.Width:=260;  

       ProgressBar1:=tProgressBar.Create(form);  

       ProgressBar1.Smooth:=true;  

       ProgressBar1.Max:=max;  

       ProgressBar1.Parent:=form;  

       ProgressBar1.Height:=20;  

       ProgressBar1.Width:=250;  

       ProgressBar1.Left:=5;  

       ProgressBar1.Top:=5;  

       ProgressBar1.Step:=1;  

       form.Show;  

       result:=ProgressBar1;  

   end;  




   function    ExportToExcel(dbgrid:tdbgrid):boolean;

   const  

       xlNormal=-4143;  

   var  

       i,j,k:integer;  

       str,filename:string;  

       excel:OleVariant;  

       SavePlace:    TBookmark;  

       savedialog:tsavedialog;  

       ProgressBar1:TProgressBar;  

   begin  

       result:=false;  

       filename:='';  

       if    dbgrid.DataSource.DataSet.RecordCount>65536    then  

             begin  

                 if    application.messagebox('需要导出的数据过大,Excel最大只能容纳65536行,是否还要继续?','询问 ',mb_yesno+mb_iconquestion)=idno    then  

                       exit;  

             end;  

       screen.Cursor:=crHourGlass;  

       try  

           excel:=CreateOleObject('Excel.Application');  

           excel.workbooks.add;  

       except  

             screen.cursor:=crDefault;  

           showmessage('无法调用Excel!');  

           exit;  

       end;  

       savedialog:=tsavedialog.Create(nil);  

       savedialog.Filter:='Excel文件(*.xls)|*.xls';  

       if    savedialog.Execute    then  

             begin  

                 if    FileExists(savedialog.FileName)    then  

                       try  

                           if    application.messagebox('该文件已经存在,要覆盖吗?','询问',mb_yesno+mb_iconquestion)=idyes    then  

                                 DeleteFile(PChar(savedialog.FileName))  

                           else  

                                 begin  

                                     Excel.Quit;  

                                     savedialog.free;  

                                       screen.cursor:=crDefault;  

                                     Exit;  

                                 end;  

                       except  

                           Excel.Quit;  

                           savedialog.free;  

                             screen.cursor:=crDefault;  

                           Exit;  

                       end;  

                 filename:=savedialog.FileName;  

             end;  

       savedialog.free;  

       if    filename=''    then  

             begin  

                 result:=true;  

                 Excel.Quit;  

                 screen.cursor:=crDefault;  

                 exit;  

             end;  

       k:=0;  

       for    i:=0    to    dbgrid.Columns.count-1    do  

           begin  

               if    dbgrid.Columns.Items[i].Visible    then  

            &nb

总页数:2  第  1  2    页 

上一篇:没有上一篇资讯了   下一篇:Delphi 实现串口通信
【刷新页面】【加入收藏】【打印此文】 【关闭窗口】
 
友情链接
版权所有 2009 © 深圳市三友信息技术有限公司 网站备案号:粤ICP备20072280号
代理域名注册服务机构:北京新网数码信息技术有限公司