下面是我以前写的一段代码,功能是将当前显示的DBGRIDEH中的内容导出成多种格式
procedure Tfrm_KHZL.BitBtn5Click(Sender: TObject);
var ExpClass:TDBGridEhExportClass;
Ext:String;
begin
DM1.SaveDialog1.FileName := 'file1';
// if (ActiveControl is TDBGridEh) then
if DM1.SaveDialog1.Execute then
begin
case DM1.SaveDialog1.FilterIndex of //我设了SaveDialog1的文件类型为以下三种,所以可以导出成三种格式
1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
2: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(DM1.SaveDialog1.FileName,Length(DM1.SaveDialog1.FileName)-2,3)) <> UpperCase(Ext) then //若没有扩展名,则加上
DM1.SaveDialog1.FileName := DM1.SaveDialog1.FileName + '.' + Ext;
if not FileExists(DM1.SaveDialog1.FileName) then
SaveDBGridEhToExportFile(ExpClass,DBGridEh1,DM1.SaveDialog1.FileName,True) //导出————关键
else
application.MessageBox('文件已经存在!','导出失败',MB_ICONERROR);
end;
end;
end;
其实看你的内容,功能已经完成,用不着再换控件了
用 星仔 的方法对你可能最简单