首页 DBGridEh导出功能详解(SaveDBGridEhToExportFile说明)

DBGridEh导出功能详解(SaveDBGridEhToExportFile说明)

举报
开通vip

DBGridEh导出功能详解(SaveDBGridEhToExportFile说明)DBGridEh导出功能详解(SaveDBGridEhToExportFile说明) DBGridEh导出功能详解(SaveDBGridEhToExportFile说明)作者:sunjun0427 来源:博客园 发布时间:2010-12-16 13:38 阅读:125 次 原文链接 [收藏] DBGridEh导出功能详解(SaveDBGridEhToExportFile说明) --- 经常有用户要求数据导出,对此,我们一直用最原始的办法,打开查询,读取每个字段的数据,逐条的的写入文件。如下: procedu...

DBGridEh导出功能详解(SaveDBGridEhToExportFile说明)
DBGridEh导出功能详解(SaveDBGridEhToExportFile说明) DBGridEh导出功能详解(SaveDBGridEhToExportFile说明)作者:sunjun0427 来源:博客园 发布时间:2010-12-16 13:38 阅读:125 次 原文链接 [收藏] DBGridEh导出功能详解(SaveDBGridEhToExportFile说明) --- 经常有用户要求数据导出,对此,我们一直用最原始的办法,打开查询,读取每个字段的数据,逐条的的写入文件。如下: procedure TForm10.prExpData(pMode:Byte); Var pFPath:String; pFName:String; //Exp Name of prefix pFObject:string; pMyFile:TextFile; pStr:string; i:integer; begin pFObject:='c:\Exp_Sample.csv'; AssignFile(pMyFile,pFObject); ReWrite(pMyFile); with DM.QR_ENJBTR_250 do begin CLOSE; open; //写入标题 for i:=0 to DM.QR_ENJBTR_250.FieldCount-1 do begin pStr:=pStr+DM.QR_ENJBTR_250.FieldDefs.Items[i].Name+','; end; WriteLn(pMyFile,pStr); //写入内容 while not EOF do begin pStr:=''; For i:=0 to FieldCount-1 do begin pstr:=pStr+Fields.Fields[i].AsString+','; end; //copy(pStr,1,Length(pStr)-1); WriteLn(pMyFile,pStr); Next; end; end; //With end; xMsg:='--->成功导出PurPart明细 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf :'+pFObject; cpWriteLog(x_pLogFile,xMsg,1); // V2033 Add CloseFile(pMyFile); end; 后来发现,其实DBGridEh控件提供了一个过程:SaveDBGridEhToExportFile,提供了很 好的导出功能,可以方便的将查询出的数据导出为txt,csv,html等格式的文件。 说明如下: procedure SaveDBGridEhToExportFile( ExportClass: TDBGridEhExportClass; DBGridEh: TCustomDBGridEh; const FileName: String; IsSaveAll: Boolean); 其中: ExportClass--导出文件类型,可以为以下值:TDBGridEhExportAsText, TDBGridEhExportAsCsv, TDBGridEhExportAsHTML, TDBGridEhExportAsRTF, TDBGridEhExportAsVCLDBIF,TDBGridEhExportAsXLS. DBGridEh--DBGridEh控件 FileName--要导出的文件路径名称 IsSaveAll--是否导出全部数据:Y-导出全部数据;N:导出选择部分数据。 注意: 使用时必须添加新的引用单元:DBGridEhImpExp(以下两个引用单元也必须存在: DBGridEh, EhLibBDE)。 示例: SaveDBGridEhToExportFile(pExpClass,dbgMain,pExpFile,True); //导出全部数据。 SaveDBGridEhToExportFile(pExpClass,TDBGridEh(ActiveControl),pExpFile,False); //导出选择数据 +++ 附使用示例: --- 环境:Delphi Version6.0[Build 6.163]+EhlibV3.4 准备介绍如下: 1,在窗体uses中,添加新的引用单元:DBGridEhImpExp(以下两个引用单元也必须存在: DBGridEh, EhLibBDE)。 2,在窗体中添加一个DBGridEh控件,并设置名称为:dbgMain(可以随意命名的)。 3,设置DBGridEh控件可以多重选择:在属性页中设置options-dgMultiSelect=true。 为的是可以选择范围,导出部分数据。 4,为DBGridEh控件指定DataSource数据源。 5,添加TSaveDialog控件SaveDialog1,设定文件类型列表,和默认文件类型,如下(也 可以直接在属性页中设置): SaveDialog1.Filter:='Text files (*.txt)|*.TXT|Comma separated values (*.csv)|*.CSV|HTML file (*.htm)|*.HTM|Rich Text Format (*.rtf)|*.RTF|Microsoft Excel Workbook (*.xls)|*.XLS'; SaveDialog1.FilterIndex:=0; 6,添加两上按钮,分别为全部导出和部分导出,分别添加以下代码到按钮的单击事件中。 //全部导出过程 procedure TForm1.btnAllExportClick(Sender: TObject); var pExpClass:TDBGridEhExportClass; //导出文件类型 pExt:string ; //导出文件扩展名 pExpFile:string; //导出文件路径及文件名称 pExpFileExt:string; //SaveDialog1返回的文件名的扩展名 begin //清空SaveDialog1默认文件名 SaveDialog1.FileName := ''; if SaveDialog1.Execute then begin //如果SaveDialog1正确执行 case SaveDialog1.FilterIndex of //根据FilterIndex设置导出文件类型和 扩展名 1: begin pExpClass := TDBGridEhExportAsText; pExt := 'txt'; end; 2: begin pExpClass := TDBGridEhExportAsCSV; pExt := 'csv'; end; 3: begin pExpClass := TDBGridEhExportAsHTML; pExt := 'htm'; end; 4: begin pExpClass := TDBGridEhExportAsRTF; pExt := 'rtf'; end; 5: begin pExpClass := TDBGridEhExportAsXLS; pExt := 'xls'; end; else pExpClass := nil; pExt := ''; end; if pExpClass <> nil then begin //如果导出文件类型已经被正确设置 pExpFile:= trim(SaveDialog1.FileName); pExpFileExt:= Copy(pExpFile,Length(pExpFile)-2,3); //判断返回的文件名称是否已经包含正确的扩展名,如果没有则添加正确的扩 展名 if UpperCase(pExpFileExt) <> UpperCase(pExt) then pExpFile := pExpFile + '.' + pExt; SaveDBGridEhToExportFile(pExpClass,DBGridEh1,pExpFile,True); //按 现有设置导出全部数据。 //X_pMsg:='The data have saved as '+pExpFile; //stbForm.Panels[0].Text:=X_pMsg; MessageDlg('The data have saved as '+pExpFile,mtInformation,[mbOk],0); end; end; end; //部分导出过程 procedure TForm1.btnPartExportClick(Sender: TObject); var pExpClass:TDBGridEhExportClass; //导出文件类型 pExt:string ; //导出文件扩展名 pExpFile:string; //导出文件路径及文件名称 begin SaveDialog1.FileName := ''; if (ActiveControl is TDBGridEh) then if SaveDialog1.Execute then begin case SaveDialog1.FilterIndex of 1: begin pExpClass := TDBGridEhExportAsText; pExt := 'txt'; end; 2: begin pExpClass := TDBGridEhExportAsCSV; pExt := 'csv'; end; 3: begin pExpClass := TDBGridEhExportAsHTML; pExt := 'htm'; end; 4: begin pExpClass := TDBGridEhExportAsRTF; pExt := 'rtf'; end; 5: begin pExpClass := TDBGridEhExportAsXLS; pExt := 'xls'; end; else pExpClass := nil; pExt := ''; end; if pExpClass <> nil then begin pExpFile:= trim(SaveDialog1.FileName); if UpperCase(Copy(pExpFile,Length(pExpFile)-2,3)) <> UpperCase(pExt) then pExpFile := pExpFile + '.' + pExt; SaveDBGridEhToExportFile(pExpClass,TDBGridEh(ActiveControl),pExpFile,False); X_pMsg:='The data have saved as '+pExpFile; stbForm.Panels[0].Text:=X_pMsg; MessageDlg(x_pMsg,mtInformation,[mbOk],0); end; end; end;
本文档为【DBGridEh导出功能详解(SaveDBGridEhToExportFile说明)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_496339
暂无简介~
格式:doc
大小:23KB
软件:Word
页数:7
分类:
上传时间:2018-03-26
浏览量:139