uses ComObj;

//DBGrid:指定的DBGrid;SaveFileName:要保存的文件名

function ExportDBGrid(DBGrid: TDBGrid; SaveFileName: string): boolean; var

c,r,i,j: integer;

app: Olevariant;

TempFileName, ResultFileName: string;

begin

try

result := True;

app := CreateOLEObject('Excel.application');

//app.WorkBooks.Add(xlWBatWorkSheet);

except

Application.MessageBox('Excel没有正确安装!',' 警告',MB_OK);

result := False;

exit;

end;

SaveDialog1.DefaultExt := 'xls';

SaveDialog1.FileName:=SaveFileName;

if SaveDialog1.Execute then

TempFileName := SaveDialog1.FileName

else

Exit;

app.Workbooks.add;

app.Visible := false;

Screen.Cursor := crHourGlass;

DBGrid1.DataSource.DataSet.First;

c:=DBGrid1.DataSource.DataSet.FieldCount;

r:=DBGrid1.DataSource.DataSet.RecordCount;

Application.ProcessMessages;

for i:=0 to c-1 do

begin

app.ActiveSheet.Columns[i+1].ColumnWidth:=15;//设置格宽度

app.cells(1,1+i):=DBGrid1.DataSource.DataSet.Fields[i].DisplayLabel;

end;

for j := 1 to r do

begin

for i := 0 to c - 1 do

begin

app.cells[j+1,1].numberformatlocal:='@';//设置成文本

app.cells(j+1,1+i):=DBGrid1.DataSource.DataSet.Fields[i].AsString; end;

DBGrid.DataSource.DataSet.Next;

end;

ResultFileName := TempFileName;

if ResultFileName = '' then

ResultFileName := '数据导出';

if FileExists(TempFileName) then

DeleteFile(TempFileName);

app.Activeworkbook.saveas(TempFileName);

app.Activeworkbook.close(false);

app.quit;

app := unassigned;

end;

Delphi+DBGrid导出Excel的更多相关文章

  1. Delphi DBGridEh导出Excel

    unit Unit_DBGridEhToExcel; interface uses SysUtils, Variants, Classes, Graphics, Controls, Forms, Ex ...

  2. Delphi TXLSReadWriteII导出Excel

    TXLSReadWriteII导出Excle (有点复杂,可以自己简化一下,直接从项目中抓取的) procedure TformSubReport.DataToExcel(_Item: Integer ...

  3. delphi cxgrid导出excel去除货币符号

    版本 : devexpress 13.1.4 打开 包在ExpressExportLibary目录中.  修改FCells.SetCellDataCurrency为FCells.SetCellData ...

  4. Delphi TXLSReadWriteII 导出EXCEL

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  5. Delphi 数据导出到Excel

    好多办公软件特别是财务软件,都需要配备把数据导出到Excel,下面就来介绍两种数据导出方法 1.ADODB导出查询结果(此方法需要安装Excel) 2.二维表数据导出(根据Excel文件结构生成二进制 ...

  6. CxGrid导出Excel时清除颜色的设置

    CxGrid导出Excel时清除颜色的设置 (2011-04-25 16:33:23) 转载▼ 标签: it 分类: Delphi http://www.radxe.com/?p=170 cxgrid ...

  7. C#使用Aspose.Cells导出Excel简单实现

    首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...

  8. 利用poi导出Excel

    import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...

  9. [django]数据导出excel升级强化版(很强大!)

    不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...

随机推荐

  1. Jmeter之tomcat性能测试+性能改进措施

    Jmeter用于tomcat性能测试,因为项目部署在tomcat,正常情况下,一个tomcat可以承受500个并发,通过修改配置,及其相关的tomcat优化,可以承受到1000个并发. 如何测试tom ...

  2. centos7 rpm 安装mysql

    1.wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar 2.tar ...

  3. MATLAB的两种移位运算

    MATLAB的两种移位运算: 1)circshift矩阵移位 circshift:循环移位数组 语法:B = circshift(A,shiftize) 说明: B  = circshift(A,sh ...

  4. AI 机器学习基础

    深度学习是机器学习的一个特定分支. 1.学习算法 对于某类任务T和性能度量P, 2.线性回归 3.正规方程(normal equation) 4.监督学习(supervised learning) 5 ...

  5. AliOS-Things linkkitapp解读

    app-example-linkkitapp是AliOS-Things提供的设备联网并且和阿里云IOT平台数据交互的一个示例程序: 1:application_start()程序在app_entry. ...

  6. Twemproxy Redis 介绍与使用

    Twemproxy是一种代理分片机制,由Twitter开源.Twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回.该方案很好的解决了单个Re ...

  7. javaweb1(小学生四则运算)

    一.设计思想 ①设计三个页面,分别为题数设置页面,题目显示页面以及结果显示页面. ②设计题数设置页面. ③从题数设置页面接收题数,作为循环次数. ④利用随机数生成相应符合条件表达式,并存入数据库. ⑤ ...

  8. mysql分表操作

    一般分表操作有垂直拆分和水平拆分.顾名思义. 1.  垂直拆分是指,这个表的列,即字段,要拆分成两个或多个表. 这个应用场景比如:这个表字段,几个都是int.datetime等,有那么一个是text类 ...

  9. A. A Prank

    题意 有数列从小到大排列,都是不同范围1~ 1000,问你最多去掉多少个数字还能复原 由于wrong很多发所以写一下 链接 [http://codeforces.com/contest/1062/pr ...

  10. 《Linux内核设计与实现》第七章读书笔记

    第七章.中断和中断处理 7.1中断 中断使得硬件得以发出通知给处理器.中断随时可以产生,内核随时可能因为新来到的中断而被打断. 不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标志.操作系统给 ...