FastReport中如何将DBGrid的内容保存成Excel文件?

alongman 2003-01-14 04:53:49
希望详细点,谢谢!
...全文
65 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
alongman 2003-01-15
  • 打赏
  • 举报
回复
没人用FastReport吗?
黄纸片 2003-01-15
  • 打赏
  • 举报
回复
Grid导出、打印等控件很多,如EhLib(DBGridEh),不建议使用fastreport
winsock2000 2003-01-15
  • 打赏
  • 举报
回复
fastreport导出实在不稳定呀,有得时候导出是空白,有时候有数据,但显示乱七八糟!还是不要用吧!
alongman 2003-01-14
  • 打赏
  • 举报
回复
FastReport中有此功能,但我不会用。那位用过此功能的帮帮忙
xianxiangzi 2003-01-14
  • 打赏
  • 举报
回复
我的方法完全可以实现你的功能,不过听说有其他的方法,可能跟好一些,希望大家参与讨论
xianxiangzi 2003-01-14
  • 打赏
  • 举报
回复
希望会对你有所帮助!
将查询结果显示在DBGrid中,再生成Excel文件


procedure Tmulti_searchform.ButtontoExcelClick(Sender: TObject);
var
eclApp,WorkBook:Variant;
//声明为OLE Automation 对象
xlsfilename,dir_name:string;
i,j,n:integer;
begin
//savedialog1.Execute;
savedialog1.Filter:='Excel files(*.xls)|*.xls';
dir_name:=ExtractFilePath(Application.ExeName)+'ExcelBook\';
if not directoryexists(dir_name) then
createdir(dir_name);
savedialog1.InitialDir:=dir_name;
if savedialog1.Execute=true then
begin
xlsFileName:=savedialog1.FileName;
try
//创建OLE对象Excel Application与 WorkBook
eclApp:=CreateOleObject('Excel.Application');
WorkBook:=CreateOleobject('Excel.Sheet');
except
ShowMessage('您的机器里尚未安装Microsoft Excel。');
Exit;
end;
try
//ShowMessage('新建一个EXCEL文件,并保存');
Application.MessageBox('将新建一个EXCEL文件,并保存','注意',MB_OK+MB_Defbutton1)
finally
progressbar1.Visible:=true;
workBook:=eclApp.workBooks.Add;
multi_dataMForm.ADODataSet3.first;
i:=1;
j:=1;
for n:=0 to multi_dataMForm.ADODataSet3.fieldcount-1 do
begin
eclApp.cells(i, j):=self.DBGrid1.Columns.Items[n].Title.Caption;
// eclApp.cells(i, j):=multi_dataMForm.ADODataSet3.fields[n]..displaylabel;
j:=j+1;
end;
multi_dataMForm.ADODataSet3.Active:=true;
multi_dataMForm.ADODataSet3.first;
while not multi_dataMForm.ADODataSet3.eof do
begin
inc(i);
for j:=0 to multi_dataMForm.ADODataSet3.fieldcount-1 do
begin
progressbar1.Position:=(i*100) div multi_dataMForm.ADODataSet3.RecordCount;
eclApp.cells(i,j+1):=multi_dataMForm.ADODataSet3.Fields.Fields[j].Text;
end;
multi_dataMForm.ADODataSet3.Next;
end;
progressbar1.Visible:=false;
WorkBook.saveas(xlsFileName);
WorkBook.close;
end;
end;
end;
alongman 2003-01-14
  • 打赏
  • 举报
回复
没有,我的意思是想导出DBGrid中显示的内容
黄纸片 2003-01-14
  • 打赏
  • 举报
回复
FastReport中有DBGrid吗???

5,392

社区成员

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

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