Delphi中怎样用Excel做报表!

yangming_ok 2001-05-26 08:17:00
感觉用Delphi的标准控件做的报表不够灵活。
借助Excel时,必须把数据全部装载到Excel里后才能打印,这
对小型数据还可以,但对大型数据库却行不通,能不能用Excel生
成一种打印格式,仅在Delphi里调用这种格式而不必把数据装载
到Excel里呢???
向各位大虾请教!!1
...全文
199 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wweng_kl 2001-06-05
  • 打赏
  • 举报
回复
好象不可能做到!
yangming_ok 2001-05-29
  • 打赏
  • 举报
回复
很多天了,怎么没有人理我呀
yangming_ok 2001-05-28
  • 打赏
  • 举报
回复
lt30(PASCAL) 能不能具体一点呀,我有急用!
yangming_ok 2001-05-27
  • 打赏
  • 举报
回复
wangguol(小猪苯苯),你也想要这样的控件吗?
wangguol 2001-05-27
  • 打赏
  • 举报
回复
GuangQingYang(光青阳) I wanna your components ..mail to me wangguol@163.ent

yangming_ok 2001-05-27
  • 打赏
  • 举报
回复
怎么没有人理我啊,在Delphi中,这确实是个很难的问题,尤其是打印
的字段变动教大时,请各位大虾多多指教哦!!!!
yangming_ok 2001-05-27
  • 打赏
  • 举报
回复
GuangQingYang(光青阳) ,能不能把你的空间发给我啊
我的Email :yangming_ok@263.net
lt30 2001-05-27
  • 打赏
  • 举报
回复
使用excel建立一个摸版,然后在delphi中
只使用摸版来操作.
yangming_ok 2001-05-27
  • 打赏
  • 举报
回复
各位大虾,这确实是个很现实的问题呀,解决了它就为Delphi程序员做出了巨大贡献呀!
yangming_ok 2001-05-27
  • 打赏
  • 举报
回复
ffossil() 谢谢你的代码。
这段代码也需要把数据装载到Excell才能打印,能不能不必要把把数据装载到Excell,而
只是用Excell设计打印的格式呢??急!!!
ffossil 2001-05-27
  • 打赏
  • 举报
回复
我控制EXECL 的实验代码,不知对你是否有用
procedure TForm1.startserver(Sender: TObject);
var
i,J,row,column:integer;
begin
Try
ExcelApplication1.Connect;
Except
MessageDlg('Excel may not be installed', mtError, [mbOk], 0);
Abort;
End;

// ExcelApplication1.Visible[0]:=True;

ExcelApplication1.Caption:='Excel Application';
ExcelApplication1.Workbooks.Add(Null,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);

row:=1;
FOR j := 1 to 8 do
begin
column:=1;
for i:=1 to 8 do
begin
ExcelWorksheet1.Cells.Item[row,column]:=j*10+i;
column:=column+1;
end;
Row := Row+1;
end;

ExcelApplication1.Visible[0]:=True;

{
Table1.Open;
row:=1;
While Not(Table1.Eof) do
begin
column:=1;
for i:=1 to Table1.FieldCount do
begin
ExcelWorksheet1.Cells.Item[row,column]:
=Table1.fields[i-1].AsString;
column:=column+1;
end;
Table1.Next;
row:=row+1;
end;
}

end;

procedure TForm1.fiel1Click(Sender: TObject);
begin
startserver(self);
end;

procedure TForm1.printout1Click(Sender: TObject);
begin
ExcelWorksheet1.PrintOut;
end;

procedure TForm1.previous1Click(Sender: TObject);
begin
ExcelWorksheet1.PrintPreview;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
end;

procedure TForm1.open1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
ExcelApplication1.Workbooks.Open(OpenDialog1.FileName,null,null,null,null,null,null,null,null,null,null,null,null,0);
end;
wpyyl 2001-05-26
  • 打赏
  • 举报
回复
用ole来实现就可一了
GuangQingYang 2001-05-26
  • 打赏
  • 举报
回复
说得好,我和你有同样的想法,先画,再打。开始我也这么想, 但我实在不会用ADO控件,理想最终变成幻想, 我最终决定自己编写一个Excel功能的报表控件,以表(数据库中的表)的格式存放,用户操作起来和用Excel一样,但它是我编的,以后编写打印程序,自然随心所欲了。你想要这个控件吗? 我可以发给你。
7030 2001-05-26
  • 打赏
  • 举报
回复
用clipboard粘贴到excel中then print 也挺快的!

5,392

社区成员

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

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