Delphi+DBGrid导出Excel
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的更多相关文章
- Delphi DBGridEh导出Excel
unit Unit_DBGridEhToExcel; interface uses SysUtils, Variants, Classes, Graphics, Controls, Forms, Ex ...
- Delphi TXLSReadWriteII导出Excel
TXLSReadWriteII导出Excle (有点复杂,可以自己简化一下,直接从项目中抓取的) procedure TformSubReport.DataToExcel(_Item: Integer ...
- delphi cxgrid导出excel去除货币符号
版本 : devexpress 13.1.4 打开 包在ExpressExportLibary目录中. 修改FCells.SetCellDataCurrency为FCells.SetCellData ...
- Delphi TXLSReadWriteII 导出EXCEL
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- Delphi 数据导出到Excel
好多办公软件特别是财务软件,都需要配备把数据导出到Excel,下面就来介绍两种数据导出方法 1.ADODB导出查询结果(此方法需要安装Excel) 2.二维表数据导出(根据Excel文件结构生成二进制 ...
- CxGrid导出Excel时清除颜色的设置
CxGrid导出Excel时清除颜色的设置 (2011-04-25 16:33:23) 转载▼ 标签: it 分类: Delphi http://www.radxe.com/?p=170 cxgrid ...
- C#使用Aspose.Cells导出Excel简单实现
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
- 利用poi导出Excel
import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...
- [django]数据导出excel升级强化版(很强大!)
不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...
随机推荐
- 20175310 《Java程序设计》第3周学习总结
20175310<Java程序设计>第3周学习总结 教材学习内容总结 本周学习了第四章的内容,相比前三章来说,第四章内容较多而且比较复杂,花了大量的时间学习.学习的主要内容如下: 类.方法 ...
- 数据库隔离级别深入理解(ORACLE)
TRANSACTION_READ_UNCOMMITTED 1 这种隔离级别最低,脏读,不可重复读,幻读都会发生,我用的oracle,并没有支持这个级别,不作研究. TRANSACTION_READ_C ...
- 命名 PRIMARY KEY 约束
1.注释:如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时). mysql> ALTER TABLE appcc_user ADD CO ...
- HNOI2015做题笔记
HNOI2015 亚瑟王(概率DP) 根据期望的线性性,我们只需要算出每一种卡牌触发的概率就可以算出期望的值 考虑与第\(i\)张卡牌触发概率相关的量,除了\(p_i\)还有前\(i-1\)张卡牌中触 ...
- Luogu4770 NOI2018 你的名字 SAM、主席树
传送门 UPD:发现之前被smy误导的一个细节,改过来之后就AC了-- 一道比较套路的SAM题,虽然我连套路都不会-- 先考虑前\(68pts\),也就是\(l=1 , r=|S|\)的情况.我们对\ ...
- Zookeeper-集群与单机实践
我用的是linux,CentOS7.3,zookeeper的版本是3.4.6,工具XShell.上传zookeeper的压缩包后我们开始操作. 集群模式: 1.解压zookeeper,路径随意 tar ...
- OLED小记
1.点阵组成OLED,OLED中有一个GRAM区域,区域中的值直接刷新到屏幕上,对应关系是1bit对应一个像素点: 2.要点亮一个像素点,只需要将GRAM中的对应bit位写1即可.GRAM中是分页来管 ...
- Solr数据库导入
Solr数据库导入 1.在MySQL中创建一张表t_solr,并插入测试数据. 2.把E:\Solr\solr-4.10.4\example\example-DIH\solr\db\conf下的adm ...
- host大法之GitHub上不去
dns解析慢,github上不去,慢 修改host. windows下路径为:C:\Windows\System32\drivers\etc\hosts Linux下路径:/etc/hosts 加入: ...
- python基础学习笔记(十)
魔法方法.属性 ------------------------ 准备工作 为了确保类是新型类,应该把 _metaclass_=type 入到你的模块的最开始. class NewType(Objec ...