dbgrideh 本身 导出就一个函数

这个人的这种写法是实际应用过程中的很不错的写法,可以研究 修改 借鉴下

uses DBGridEhImpExp;  不要忘记引用这个

procedure DBGridehToExport(lsdbgrideh:TDBGridEh);
var
ExpClass: TDBGridEhExportClass;
Ext: string;
lssavedialog: tsavedialog;
begin
try
lssavedialog := tsavedialog.Create(nil);
lssavedialog.Filter := '*.xls|*.xls|*.csv|*.csv|*.htm|*.htm|*.rtf|*.rtf|*.txt|*.txt';
lssavedialog.FileName := 'file1';
if lssavedialog.Execute then
begin
case lssavedialog.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsText; Ext := 'xls'; end;
2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'txt'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(lssavedialog.FileName, Length(lssavedialog.FileName) - 2, 3)) <> UpperCase(Ext) then
lssavedialog.FileName := lssavedialog.FileName + '.' + Ext;
if FileExists(lssavedialog.FileName) then
begin
if application.MessageBox('文件名已存在,是否覆盖', '提示', MB_ICONASTERISK or MB_OKCANCEL) <> idok then
begin
exit;
end;
end;
Screen.Cursor := crHourGlass;
try
SaveDBGridEhToExportFile(ExpClass, lsDBGridEh, lssavedialog.FileName, true);
except
ShowMessage('NO');
end;
Screen.Cursor := crDefault;
end;
end;
finally
lssavedialog.Free;
end;
end;

 

posted on 2011-12-29 09:52  del88  阅读(9)  评论(0编辑  收藏  举报