DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: vic_168999
今日帖子: 0
在线用户: 1
导航: 论坛 -> 报表专区 斑竹:sunyesy,iamdream  
作者:
男 rhot (rbeatles) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 8:53:21
标题:
怎样把delphi生成的报表(QReport)直接生成excel文件 浏览:4643
加入我的收藏
楼主: 我看网上大多是用Delphi通过OLE所控制excel,但我想用我生成的报表(QReport)直接生成excel文件。不知要用到什么控件,请哪位提示一下。如果能对该控件简述一下那就更好了。
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/10/17 9:18:03
1楼: uses Excel2000, {C:\Program Files\Borland\Delphi6\Imports}

OleServer;

procedure TFrmMain.WriteExcel(AdsData: TADODataSet; sName, Title: string);
var
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook; 
i, j: integer; 
filename: string;
begin 
filename := concat(extractfilepath(application.exename), sName, '.xls');
try
ExcelApplication1 := TExcelApplication.Create(Application); 
ExcelWorksheet1 := TExcelWorksheet.Create(Application); 
ExcelWorkbook1 := TExcelWorkbook.Create(Application); 
ExcelApplication1.Connect; 
except 
Application.Messagebox('Excel 没有安装!', 'Hello', MB_ICONERROR + mb_Ok);
Abort; 
end; 
try 
ExcelApplication1.Workbooks.Add(EmptyParam, 0); 
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]); 
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet); 
AdsData.First; 
for j := 0 to AdsData.Fields.Count - 1 do 
begin 
ExcelWorksheet1.Cells.item[3, j + 1] := AdsData.Fields[j].DisplayLabel; 
ExcelWorksheet1.Cells.item[3, j + 1].font.size := '10'; 
end; 
for i := 4 to AdsData.RecordCount + 3 do 
begin 
for j := 0 to AdsData.Fields.Count - 1 do 
begin 
ExcelWorksheet1.Cells.item[i, j + 1] :=AdsData.Fields[j].Asstring;
ExcelWorksheet1.Cells.item[i, j + 1].font.size := '10';
end; 
AdsData.Next; 
end;
ExcelWorksheet1.Columns.AutoFit;
ExcelWorksheet1.Cells.item[1, 2] := Title;
ExcelWorksheet1.Cells.Item[1, 2].font.size :='14'; 
ExcelWorksheet1.SaveAs(filename); 
Application.Messagebox(pchar('数据成功导出' + filename), 'Hello',mb_Ok);
finally 
ExcelApplication1.Disconnect; 
ExcelApplication1.Quit; 
ExcelApplication1.Free; 
ExcelWorksheet1.Free; 
ExcelWorkbook1.Free; 
end; 
end;

procedure Tfrmmain.FormCreate(Sender: TObject);
begin
WriteExcel(ADODataSet1, 'ergonge','hhh');
end;


----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 zho1022 (橘佑京) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 9:46:46
2楼: 肯定要自己写了。或者换用fastreport吧!它自带有各种导出控件。
此帖子包含附件:
JPEG 图像
大小:7.7K
----------------------------------------------
实践是检验真理的唯一标准!
作者:
男 rhot (rbeatles) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 10:09:54
2楼: 你用的是ADO,而我用的是BDE,不过这没关系他们区别不大。

var
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook; 
我想可不可以直接用ExcelApplication,ExcelWorksheet,ExcelWorkbook这三个控件,而不是创造这三个对象。

还有我想用我生成的报表(QReport)直接生成excel文件,虽然里面有一些象QRlabel这样的控件,我可以直接读取他,但还有一些象QRDBText这样的控件好象不好读,不知该怎样。
不过还是要多谢大侠的指点迷津。
----------------------------------------------
-
作者:
男 zzy720529 (zzy) ★☆☆☆☆ -
普通会员
2003/10/17 10:21:33
3楼: 兄弟,你用delphi自带的F1BOOK控件试一下。俺曾用该控件作过一个数据库的输出报表。其中,预览用的是QReport控件,打印用的是F1Book,效果还可以。遗憾的是F1Book控件的帮助是English。
----------------------------------------------
-
作者:
男 bryan (bao) ★☆☆☆☆ -
盒子活跃会员
2003/10/17 22:14:32
4楼: 有一个印度姥搞的控件: PsQRFilters
专门提供Quickrep到其它文件类型的转换,
支持以下输出格式 PDF, HTML, RTF, XLS, TXT, JPEG, GIF, BMP, EMF, WMF,
有Delphi和BC的版本,效果相当不错.
不过要花钱买的啊!
Web:    http://www.pragnaan.com

----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/10/17 22:47:59
5楼: 下载,学习,谢谢!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行85.9375毫秒 RSS