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

procedure TForm3.excel1Click(Sender: TObject);
var
SaveDialog:TSaveDialog;
begin
try
try
SaveDialog:=TSaveDialog.Create(nil);
SaveDialog.Filter:='EXCEL电子表格|*.XLS';
//if dbgrdh1.SelectedRows.Count=0 then
//begin
//ShowMessage('请先选中要导出的数据');
//Exit;
//end;
if SaveDialog.Execute thenbeginSaveDialog.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) thenbeginif application.MessageBox('文件名已存在,是否覆盖   ', '提示', MB_ICONASTERISK or MB_OKCANCEL)<>idok thenexit;end;Screen.Cursor := crHourGlass;SaveDBGridEhToExportFile(TDBGridEhExportAsXls,dbgrdh1,SaveDialog.FileName,true);Screen.Cursor := crDefault;MessageBox(Handle, '导出成功  ', '提示', MB_OK +MB_ICONINFORMATION);end;
excepton e: exception dobeginApplication.MessageBox(PChar(e.message), '错误', MB_OK + MB_ICONSTOP);end;
end;
finallySaveDialog.Free;
end;
end;

方法2:类写法

unit UExportExcel;interface
usesWinapi.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;
/// <summary>
/// 导出全部记录数据到excel,思路是用dbgrideh的方法
/// </summary>
type TExportExcel =classpublicclass procedure exportexcelall(var ADbgrdh:TDBGridEh);
end;implementation
class procedure TExportExcel.exportexcelall(var ADbgrdh:TDBGridEh);
var
SaveDialog:TSaveDialog;
begin
try
try
//设置报错对话框的属性
SaveDialog:=TSaveDialog.Create(nil);
SaveDialog.Filter:='EXCEL电子表格|*.XLS';
if SaveDialog.Execute thenbegin//设置文件名后缀SaveDialog.FileName:=SaveDialog.FileName+'.xls';//判断文件是否已经存在if FileExists(SaveDialog.FileName) thenbeginif application.MessageBox('文件名已存在,是否覆盖   ', '提示', MB_ICONASTERISK or MB_OKCANCEL)<>idok thenexit;end;Screen.Cursor := crHourGlass; //屏幕鼠标沙漏忙碌状态//导出记录
     SaveDBGridEhToExportFile(TDBGridEhExportAsXls,ADbgrdh,SaveDialog.FileName,true);Screen.Cursor := crDefault; //鼠标恢复默认状态//提示导出成功MessageBox(0, '导出成功  ', '提示', MB_OK +MB_ICONINFORMATION);end;
except//异常报错on e: exception dobeginApplication.MessageBox(PChar(e.message), '错误', MB_OK + MB_ICONSTOP);end;
end;
finallySaveDialog.Free;
end;
end;
end.

 

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

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

 

附加效果图

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

导出全部记录到excel相关推荐

  1. 安卓手机导出通话记录到Excel

    因工作需要统计工作手机的通话记录,在网上找了很多手机管理软件都不能实现记录的导出.后面查了CSDN有很多代码,尝试自己实现. 逻辑: 1.安装安卓开发环境:Android Studio,创建一个APP ...

  2. 数据完整性测试之【二】导出的CSV、Excel文件和数据库表里的记录

    前面的分享 接口返回值和数据库表里的记录[一]说过,把前端页面显示的所有数据明细导出为CSV文件,将其和数据库表里的数据做校验,这儿说下我对导出的CSV.Excel的处理: 个人博客:https:// ...

  3. anki 插入表格_Anki之导出卡牌组到Excel文件

    最近有导出Anki卡牌组到Excel文件的需要,查到了这个教程,Anki插件--导出卡牌到Excel文件-LearnHacks,但结果并不令人满意,所导出的Excel文件只有一列,所选中的卡片字段全部 ...

  4. python数据导出excel_【python Excel】如何使用python将大量数据导出到Excel中的小技巧之一...

    如何使用python将大量数据导出到Excel中的小技巧 (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢 ...

  5. 如何在 MySQL / MariaDB 中导入导出数据,导入导出数据库文件、Excel、CSV

    文章目录 本教程将详细讲解 1. MySQL / MariaDB 数据库数据「导出」 2. MySQL / MariaDB 数据库数据「导入」 3. 使用「卡拉云」一键导入导出 MySQL / Mar ...

  6. 通过Java批量导出带有图片的Excel文件数据

    批量导出带有图片的Excel文件 一.思路解析 二.关键源码 三.总结 Java通过POI或者一些常见的Excel工具类能够轻易导出后台的结构化数据,但是最近面临一个新需求,需要将对应记录数据和图片网 ...

  7. sqlserver导出大量数据到Excel,电子表满

    sqlserver导出大量数据到Excel 记录导出数据遇到的坑~~~ sqlserver 导出数据到Excel最简单的方法是将查询出来的结果,右键–>另存为excel或者txt.但是这种方式有 ...

  8. java通过Excel 模板导出复杂统计类excel文档,在ruoyi前后端分离框架中的应用

    Hello, 大家好! 我是不作死就不会死,智商不在线,但颜值超有品的拆家队大队长 --咖啡汪 一只不是在戏精,就是在戏精路上的极品二哈 前几天刚做了java通过Excel 模板导出复杂统计类exce ...

  9. 移动端excel导出_前端实现Excel导入和导出功能

    介绍 最近项目中让实现一个导入导出Excel的功能,查找了一些插件后发现js-xlsx这个插件,所以就尝试使用了一下,这里将使用方法和遇到的问题简单记录一下. SheetJS js-xlsx 是一款能 ...

最新文章

  1. UVA1391 Astronauts(ACM - ICPC 2006 Europe - Central)(2 - SAT问题、输出方案)
  2. SQL优化基础 使用索引(一个小例子)
  3. 推荐一个python学习的宝库(github的star数71000+)
  4. 【大话Hibernate】Hibernate的核心接口和类
  5. mongodb同时更新一条记录_MongoDB 存储和优化系列一
  6. Treap原理和实现方法
  7. 技术面试中,遇到不会回答的问题怎么破?来,教你几招!
  8. docker容器简介及安装
  9. 网络摄像头实时获取信息
  10. java magic number_避免JDBC查询中的CheckStyle magic number错误
  11. 如何实现文件互拖-VMware Tools (ubuntu系统)安装详细过程与使用
  12. bzoj 4196 树链剖分 模板
  13. 陈天奇:十年机器学习科研之路(附链接)|湾区人工智能
  14. iOS设计模式-适配器
  15. Mac高效笔记软件GoodNotes 5
  16. 贪吃蛇游戏-小程序游戏
  17. 混淆的概念:SIF、CIF、4CIF、D1
  18. 雷云Razer Synapse2.0使用测评 -第二次作业
  19. MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型
  20. macd指标如何看?怎么用MACD指标确定买入和离场点?

热门文章

  1. IPFS: NAT traversal(NAT穿越)
  2. Keras Tutorial: Deep Learning in Python
  3. VirtualAPK:滴滴 Android 插件化的实践之路
  4. anasys hpc集群_这可能是最简单的并行方案,如何基于 AWS ParallelCluster 运行 ANSYS Fluent...
  5. python turtle 颜色数字_python的绘图利器--海龟绘图turtle
  6. volte信令流程详解_VOLTE高清语音通话,呼叫时延低于3秒是如何做到的?
  7. JZOJ 5483. 【清华集训2017模拟11.26】简单路径
  8. android excel 筛选功能,Android实现Excel表格展示数据
  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记
  10. python系统字体_Python matplotlib修改默认字体的操作