发信人: delphifan()
整理人: delphifan(2000-12-05 18:44:47), 站内信件
|
Delphi3.0中数据的导出
用户通常希望能在一些字处理程序中直接获取数 据库中的数据。Delphi功能如此 强大,当然不会错过这 些方面的应用。以下介绍三种导出方式:
一、数据导出为EXCEL和WORD文档
通过Delphi提供的OLE可以方便地访问其他提 供OLE接口的应用程序,例如EXCEL 、WORD等。 EXCEL中提供的完善的数据处理功能,使得数据导出 到EXCEL成为一 个迫切的需要。
主要的工作步骤为:
1.创建连接及工作簿。
2.读取数据库数据并写入EXCEL文档。
3.保存结果并退出ExCEL。
主要的过程示例如下:
procedure GenerteXLSFile(strFileName:string);
var
ExcelApp,MyWorkBook:Variant;
begin
try
ExcelApp:=CreateOleObject('Excel.Application');
MyWorkBook:=CreateOleobject('Excel.Sheet');
except
application.Messagebox('无法打开Xls文件,请确认已 经安装EXCEL.', ",mb_OK+mb_IconStop);
Exit;
end;
MyworkBook:=ExcelApp.workBooks.Add;
//在此处插入读数据库及写Excel文档的代码
try
MyWorkBook.saveas(strFileName);
MyWorkBook.close;
ExcelApp.Quit;
ExcelApp:=Unassigned; //释放VARIANT变量
except //当存为一个已有的文档而又不覆盖时将
MyWorkBook.close; //产生一个例外
ExcclApp.Quit;
end;
end;
其中写Excel文档的关键语句如下:
MyWorkBook.WorkSheets[1].Cells[1,1].Value: ='1234';
相关的对象参考可以在OFFICE目录下的帮助文 件VBAXLS.HLP中找到。
Delphi还提供了一个与WORD连接的例子供开 发者参考,不过没有考虑到中文WOR D所以“Insert query”按键无效,只能把窗体的标题修改为“简体中文 (中国) ”。必须把其中判断语种的语句从
if(Lang='Englist(US)')or(Lang='Englist(UK)')then
修改为
if Lang<>'Englist(US)'then
//不等号的右边随便写一个字符串即可
这样就可以在中文版的WORD中看到查询的结果了。
二、数据导出为TXT文档
利用Delphi中的QuickRep控件可以把打印结果 输出为文本格式。示例如下:
MyQuickRep.ExportFilter:=TQRAscillExportFilter.Create('C:\test.txt');
MyQuickRep.Prepare;
MyQuickRep.ExportFilter.Free;
三、数据导出为HTML文档
同样地,可以通过QuickRep控件把打印结果输出 为HTML格式。示例如下:
MyQuickRep.ExportFilter:=TQRAsciiExportFilter.Create('C:\test.htm');
MyQuickRep.Prepare;
MyQuickRep.ExportFilter.Free;
---------------------------------------------------------------------- ----------
-- =================================================
== [email protected] ==
== [一个真正有内容、较实用的Delphi网站] ==
== http://lmd.yeah.net http://lmd.126.com ==
=================================================
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.100.19.163]
|
|