关于DBGridEh导出的问题

gerrylc 2006-09-16 03:08:16
DBGRIDEH中的数据可以直接导出为EXCEL文件么?而不需要写好多代码,如果有,请告之,谢谢
...全文
187 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ron_xin 2006-09-16
  • 打赏
  • 举报
回复
SaveDBGridEhToExportFile(TDBGridEhExportAsHTML,DBGridEh1,SaveDialog1.FileName + '.xls';,true);
vfork 2006-09-16
  • 打赏
  • 举报
回复
mark一下
gerrylc 2006-09-16
  • 打赏
  • 举报
回复
我的表头是用代码控制的'|'的形式,还可以用别的方式控制吗?
gerrylc 2006-09-16
  • 打赏
  • 举报
回复
十分感谢ron_xin(星雨),已经导出成功了,还有一个问题就是我用的是多层表头,但是导出来的是'|'的形式,可以按多层表头的形式导出么????
ron_xin 2006-09-16
  • 打赏
  • 举报
回复
注意要uses DBGridEhImpExp;
ron_xin 2006-09-16
  • 打赏
  • 举报
回复
procedure TFrimFiveReport.FlatButton1Click(Sender: TObject);
var
ExpClass:TDBGridEhExportClass;
Ext:String;
begin

SaveDialog1.FileName :='五日报';
if SaveDialog1.Execute then
begin
case SaveDialog1.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
2: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
3: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
4: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
5: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <> UpperCase(Ext) then
SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
try
SaveDBGridEhToExportFile(ExpClass,DBGridEh1,SaveDialog1.FileName,true);
except
msshow('保存失败!');
end;
end;

end;

end;
xz_fj 2006-09-16
  • 打赏
  • 举报
回复
SaveDBGridEhToExportFile(TDBGridEhExportAsXLS, DBGridEh, FileName, False);
在他人的DBGridEh导出到Excel的基础上进行改进,增加功能如下: 1、支持多个DBGridEH同时导出到Excel的不同Sheet页 2、进度条与数据进度保持一致 3、增加了进度百分比显示 //调用方法: procedure TForm1.Button1Click(Sender: TObject); var DbOut: TDBGridEhToExcel; i: integer; begin try DbOut := TDBGridEhToExcel.Create(Self); for i := 0 to 9 do //初始化数组 begin DbOut.DBGridEhRecAry[i].TempDBGridEh := nil; DbOut.DBGridEhRecAry[i].TitleName := ''; DbOut.DBGridEhRecAry[i].SheetTabName := ''; end; //有多少个DBGridEh的数据要导出,此处表示两个 DbOut.DBGridEhRecLength := 2; //统计结果一 DbOut.DBGridEhRecAry[0].TempDBGridEh := dbgSpotCheckCount; DbOut.DBGridEhRecAry[0].TitleName := '统计结果一'; DbOut.DBGridEhRecAry[0].SheetTabName := '统计结果一'; //统计结果二 DbOut.DBGridEhRecAry[1].TempDBGridEh := dbgValuationCount; DbOut.DBGridEhRecAry[1].TitleName := '统计结果二'; DbOut.DBGridEhRecAry[1].SheetTabName := '统计结果二'; DbOut.TitleName := '统计结果'; DbOut.ShowProgress := True; DbOut.ShowOpenExcel := True; DbOut.ExportToExcel; finally FreeAndNil(DbOut); end; end; 还可以改进的地方,比如: 1、标题栏占用几行,字体,字体颜色,字体大小,背景颜色可以封装提供设置方法; 2、字段标题字体,字体颜色,字体大小; 3、表格样式设置; 就是动态数据不会封装到类里面,如果有高人封装得更好一些,请发一份我;

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧