博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
导出全部记录到excel
阅读量:5276 次
发布时间:2019-06-14

本文共 3006 字,大约阅读时间需要 10 分钟。

方法1:独立事件单独写法

procedure TForm3.excel1Click(Sender: TObject);varSaveDialog:TSaveDialog;begintrytrySaveDialog:=TSaveDialog.Create(nil);SaveDialog.Filter:='EXCEL电子表格|*.XLS';//if dbgrdh1.SelectedRows.Count=0 then//begin//ShowMessage('请先选中要导出的数据');//Exit;//end;if SaveDialog.Execute then  begin     SaveDialog.FileName:=SaveDialog.FileName+'.xls';//     ShowMessage(SaveDialog.FileName);//     ShowMessage(Length(SaveDialog.FileName).ToString());//     ShowMessage(Length('E:\翠玲研究delphi\工作小助手\工作小助手输出文件\导出数据到excel\666.xls').ToString());//     ShowMessage(Length('E:\delphi\\\excel\666.xls').ToString());//     ShowMessage(Length('翠玲研究工作小助手工作小助手输出文件导出数据到').ToString());//     ShowMessage(Copy(SaveDialog.FileName,Length(SaveDialog.FileName)-2,3));     if FileExists(SaveDialog.FileName) then        begin          if application.MessageBox('文件名已存在,是否覆盖   ', '提示', MB_ICONASTERISK or MB_OKCANCEL)<>idok then            exit;        end;     Screen.Cursor := crHourGlass;     SaveDBGridEhToExportFile(TDBGridEhExportAsXls,dbgrdh1,SaveDialog.FileName,true);     Screen.Cursor := crDefault;     MessageBox(Handle, '导出成功  ', '提示', MB_OK +MB_ICONINFORMATION);     end;except    on e: exception do    begin      Application.MessageBox(PChar(e.message), '错误', MB_OK + MB_ICONSTOP);    end;end;finally  SaveDialog.Free;end;end;

方法2:类写法

unit UExportExcel;interfaceuses  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Data.DB, Data.Win.ADODB,  Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, Clipbrd, Vcl.Menus,  Vcl.StdCtrls, DBGridEhGrouping, ToolCtrlsEh, DBGridEhToolCtrls, DynVarsEh,  EhLibVCL, GridsEh, DBAxisGridsEh, DBGridEh,EhLibADO,DBGridEhImpExp;/// /// 导出全部记录数据到excel,思路是用dbgrideh的方法/// type TExportExcel =class  public  class procedure exportexcelall(var ADbgrdh:TDBGridEh);end;implementationclass procedure TExportExcel.exportexcelall(var ADbgrdh:TDBGridEh);varSaveDialog:TSaveDialog;begintrytry//设置报错对话框的属性SaveDialog:=TSaveDialog.Create(nil);SaveDialog.Filter:='EXCEL电子表格|*.XLS';if SaveDialog.Execute then  begin     //设置文件名后缀     SaveDialog.FileName:=SaveDialog.FileName+'.xls';     //判断文件是否已经存在     if FileExists(SaveDialog.FileName) then        begin          if application.MessageBox('文件名已存在,是否覆盖   ', '提示', MB_ICONASTERISK or MB_OKCANCEL)<>idok then            exit;        end;     Screen.Cursor := crHourGlass; //屏幕鼠标沙漏忙碌状态     //导出记录     SaveDBGridEhToExportFile(TDBGridEhExportAsXls,ADbgrdh,SaveDialog.FileName,true);     Screen.Cursor := crDefault; //鼠标恢复默认状态     //提示导出成功     MessageBox(0, '导出成功  ', '提示', MB_OK +MB_ICONINFORMATION);     end;except    //异常报错    on e: exception do    begin      Application.MessageBox(PChar(e.message), '错误', MB_OK + MB_ICONSTOP);    end;end;finally  SaveDialog.Free;end;end;end.

 

类引用,记得添加引用单元类名称(UExportExcel);

procedure TForm3.excel1Click(Sender: TObject);beginTExportExcel.exportexcelall(dbgrdh1);end;

 

附加效果图

转载于:https://www.cnblogs.com/ddxxxb/p/7063509.html

你可能感兴趣的文章
postman+newman+jenkins环境部署
查看>>
显示和隐藏系统任务栏的类
查看>>
cms-幻灯片的实现
查看>>
vue2.0 #$emit,$on的使用
查看>>
Linux安装MySQL
查看>>
js中单竖杠 "|" 的作用
查看>>
微软雅黑的Unicode码和英文名
查看>>
《深入Java虚拟机》笔记
查看>>
人工智能对教育产业的冲击和机遇分析 ——游戏化学习
查看>>
Web前端单词大全
查看>>
新增流水号
查看>>
VC下ffmpeg例程调试报错处理 分类: ffmpeg-SDL-VL...
查看>>
vc6.0转vs2005中字符串的问题
查看>>
ActiveReports中如何在后台导出运行时绑定数据源报表
查看>>
CSS3渐变色彩
查看>>
10774: matrix
查看>>
linux学习笔记4:linux的任务调度,进程管理,mysql的安装和使用,ssh工具的使用,linux网络编程...
查看>>
【极光推送】给指定用户发送消息
查看>>
Python——函数 8、可变长参数
查看>>
python下 help()使用方法
查看>>