DBGridEh导出功能详解SaveDBGridEhToExportFile说明.docx
- 文档编号:2751344
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:9
- 大小:16.25KB
DBGridEh导出功能详解SaveDBGridEhToExportFile说明.docx
《DBGridEh导出功能详解SaveDBGridEhToExportFile说明.docx》由会员分享,可在线阅读,更多相关《DBGridEh导出功能详解SaveDBGridEhToExportFile说明.docx(9页珍藏版)》请在冰点文库上搜索。
DBGridEh导出功能详解SaveDBGridEhToExportFile说明
DBGridEh导出功能详解(SaveDBGridEhToExportFile说明)
DBGridEh导出功能详解(SaveDBGridEhToExportFile说明)
---
经常有用户要求数据导出,对此,我们一直用最原始的办法,打开查询,读取每个字段的数据,逐条的的写入文件。
如下:
procedureTForm10.prExpData(pMode:
Byte);
Var
pFPath:
String;
pFName:
String;//ExpNameofprefix
pFObject:
string;
pMyFile:
TextFile;
pStr:
string;
i:
integer;
begin
pFObject:
='c:
\Exp_Sample.csv';
AssignFile(pMyFile,pFObject);
ReWrite(pMyFile);
withDM.QR_ENJBTR_250dobegin
CLOSE;
open;
//写入标题
fori:
=0toDM.QR_ENJBTR_250.FieldCount-1
dobegin
pStr:
=pStr+DM.QR_ENJBTR_250.FieldDefs.Items[i].Name+',';
end;
WriteLn(pMyFile,pStr);
//写入内容
whilenotEOFdobegin
pStr:
='';
Fori:
=0toFieldCount-1do
begin
pstr:
=pStr+Fields.Fields[i].AsString+',';
end;
//copy(pStr,1,Length(pStr)-1);
WriteLn(pMyFile,pStr);
Next;
end;
end;//Withend;
xMsg:
='--->成功导出PurPart明细表:
'+pFObject;
cpWriteLog(x_pLogFile,xMsg,1);//V2033Add
CloseFile(pMyFile);
end;
后来发现,其实DBGridEh控件提供了一个过程:
SaveDBGridEhToExportFile,提供了很好的导出功能,可以方便的将查询出的数据导出为txt,csv,html等格式的文件。
说明如下:
procedure
SaveDBGridEhToExportFile(ExportClass:
TDBGridEhExportClass;DBGridEh:
TCustomDBGridEh;constFileName:
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);
//导出选择数据
+++
附使用示例:
---
环境:
DelphiVersion6.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|Commaseparatedvalues(*.csv)|*.CSV|HTMLfile
(*.htm)|*.HTM|RichTextFormat(*.rtf)|*.RTF|MicrosoftExcelWorkbook
(*.xls)|*.XLS';
SaveDialog1.FilterIndex:
=0;
6,添加两上按钮,分别为全部导出和部分导出,分别添加以下代码到按钮的单击事件中。
//全部导出过程
procedureTForm1.btnAllExportClick(Sender:
TObject);
var
pExpClass:
TDBGridEhExportClass;//导出文件类型
pExt:
string
;//导出文件扩展名
pExpFile:
string;
//导出文件路径及文件名称
pExpFileExt:
string;
//SaveDialog1返回的文件名的扩展名
begin
//清空SaveDialog1默认文件名
SaveDialog1.FileName:
='';
ifSaveDialog1.Executethenbegin//如果SaveDialog1正确执行
case
SaveDialog1.FilterIndexof//根据FilterIndex设置导出文件类型和扩展名
1:
beginpExpClass:
=TDBGridEhExportAsText;pExt:
='txt';end;
2:
beginpExpClass:
=TDBGridEhExportAsCSV;pExt:
='csv';end;
3:
beginpExpClass:
=TDBGridEhExportAsHTML;pExt:
='htm';end;
4:
beginpExpClass:
=TDBGridEhExportAsRTF;pExt:
='rtf';end;
5:
beginpExpClass:
=TDBGridEhExportAsXLS;pExt:
='xls';end;
else
pExpClass:
=nil;pExt:
='';
end;
if
pExpClass<>nilthenbegin//如果导出文件类型已经被正确设置
pExpFile:
=trim(SaveDialog1.FileName);
pExpFileExt:
=
Copy(pExpFile,Length(pExpFile)-2,3);
//判断返回的文件名称是否已经包含正确的扩展名,如果没有则添加正确的扩展名
ifUpperCase(pExpFileExt)
<>UpperCase(pExt)then
pExpFile:
=pExpFile+'.'+
pExt;
SaveDBGridEhToExportFile(pExpClass,DBGridEh1,pExpFile,True);
//按现有设置导出全部数据。
//X_pMsg:
='Thedatahavesavedas
'+pExpFile;
//stbForm.Panels[0].Text:
=X_pMsg;
MessageDlg('Thedatahavesavedas
'+pExpFile,mtInformation,[mbOk],0);
end;
end;
end;
//部分导出过程
procedureTForm1.btnPartExportClick(Sender:
TObject);
var
pExpClass:
TDBGridEhExportClass;//导出文件类型
pExt:
string
;//导出文件扩展名
pExpFile:
string;
//导出文件路径及文件名称
begin
SaveDialog1.FileName:
='';
if
(ActiveControlisTDBGridEh)then
ifSaveDialog1.Executethenbegin
case
SaveDialog1.FilterIndexof
1:
beginpExpClass:
=
TDBGridEhExportAsText;pExt:
='txt';end;
2:
beginpExpClass
:
=TDBGridEhExportAsCSV;pExt:
='csv';end;
3:
begin
pExpClass:
=TDBGridEhExportAsHTML;pExt:
='htm';end;
4:
beginpExpClass:
=TDBGridEhExportAsRTF;pExt:
='rtf';end;
5:
beginpExpClass:
=TDBGridEhExportAsXLS;pExt:
='xls';end;
else
pExpClass:
=nil;pExt:
='';
end;
ifpExpClass<>nilthenbegin
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:
='Thedatahavesavedas'+pExpFile;
stbForm.Panels[0].Text:
=X_pMsg;
MessageDlg(x_pMsg,mtInformation,[mbOk],0);
end;
end;
end;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DBGridEh 导出 功能 详解 SaveDBGridEhToExportFile 说明