紧急求助delphi中用excel做报表的问题

cc79 2003-10-17 09:50:01
我是一个新手,要用到在delphi中用excel做做报表。可是没有方向,哪位高人有一个或能给我做一个把结果集写到excel中,且excel中已经有一固定的报表格式。
很急的,请多帮助。
信箱:xucbbc@163.com
...全文
57 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwqzl925 2003-10-17
  • 打赏
  • 举报
回复
我有同样的程序,数据赋值正确,但excel显示没有数据,请教高手是什么原因?
caoxdong 2003-10-17
  • 打赏
  • 举报
回复
我用过的一段代码,供你参考!


unit excelyy;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids, IBDatabase, Db,
IBCustomDataSet, IBQuery, Excel97, OleServer;

type
TForm1 = class(TForm)
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
SaveDialog1: TSaveDialog;
IBQuery1: TIBQuery;
DataSource1: TDataSource;
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
connectBtn: TBitBtn;
insertdadaBtn: TBitBtn;
saveBtn: TBitBtn;
quitBtn: TBitBtn;
closeappBtn: TBitBtn;
Label1: TLabel;
procedure connectBtnClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure insertdadaBtnClick(Sender: TObject);
procedure saveBtnClick(Sender: TObject);
procedure quitBtnClick(Sender: TObject);
procedure closeappBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.connectBtnClick(Sender: TObject);
begin
try
ExcelApplication1.Connect;
except
MessageDlg('是否正确安装了Excel?',mtError,[mbok],0);
abort;
end;
ExcelApplication1.Visible[0]:=true;
ExcelApplication1.Caption:='Excel应用';
ExcelApplication1.Workbooks.Add(Null,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
IBQuery1.close;
IBQuery1.open;
showmessage(intToStr(IBQuery1.fieldcount));
end;

procedure TForm1.insertdadaBtnClick(Sender: TObject);
Var
i,row,column:integer;
begin
ExcelWorksheet1.Cells.Item[1,1]:='表编号';
ExcelWorksheet1.Cells.Item[1,2]:='表代号';
ExcelWorksheet1.Cells.Item[1,3]:='表名称';
ExcelWorksheet1.Cells.Item[1,4]:='表说明';
row:=2;
While NOT(IBQuery1.eof) Do
begin
Column:=1;
for i:=1 to IBQuery1.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row,column]:=IBQuery1.fields[i-1].AsString;
Column:=Column+1;
end;
IBQuery1.Next;
row:=row+1;
end;
end;

procedure TForm1.saveBtnClick(Sender: TObject);
begin
if Savedialog1.Execute then
ExcelWorksheet1.SaveAs(SaveDialog1.FileName);
end;

procedure TForm1.quitBtnClick(Sender: TObject);
begin
ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
end;

procedure TForm1.closeappBtnClick(Sender: TObject);
begin
Close;
end;

end.
cronycai 2003-10-17
  • 打赏
  • 举报
回复
哈哈,我也有同样的问题!望各位大虾能够伸伸援手

5,386

社区成员

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

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