利用delphi如何打印Excel所有Sheet

肥仔胧 2009-08-04 09:11:38
以下是delphi控制Excel的打印,問題是只能打印一個Sheet,要如何做到一起打印所有Sheet

var
FExcelApp: Variant

FExcelApp := CreateOleObject('Excel.Application');
FExcelApp.Visible := False;
FExcelApp.WorkBooks.Open(FInFile);
FExcelApp.WorkSheets[1].Activate;
FExcelApp.ActiveSheet.PrintOut;
FExcelApp.WorkBooks.Close;
FExcelApp.Quit;
FExcelApp := Unassigned;
...全文
170 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Princezhouf 2009-08-05
  • 打赏
  • 举报
回复
不懂 全设置成了ActiveSheet不就一起打印了吗
hxy3100 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 anbangs 的回复:]
樓上兩位,都不是我想要的結果,我要的是一次性打印,以上都是利用循環分次打印

因為我是通過虛擬機打印成其他文件格式的,如果分次打印的話,會打印成n個文件,而不是打印成一個文件
[/Quote]
那只能用一个笨办法了,先创建一个临时sheet,将其它sheet中所有内容合并到临时sheet中,再将临时sheet设为当前活动sheet,然后ActiveSheet.PrintOut
Princezhouf 2009-08-05
  • 打赏
  • 举报
回复
把楼上的FExcelApp.ActiveSheet.PrintOut;放到循环外边来
肥仔胧 2009-08-05
  • 打赏
  • 举报
回复
樓上兩位,都不是我想要的結果,我要的是一次性打印,以上都是利用循環分次打印

因為我是通過虛擬機打印成其他文件格式的,如果分次打印的話,會打印成n個文件,而不是打印成一個文件
肥仔胧 2009-08-05
  • 打赏
  • 举报
回复
當前只能有一個ActiveSheet

创建一个临时sheet,将其它sheet中所有内容合并到临时sheet中
這個要怎麼實現呢?
luckyboy97 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 supertitan001 的回复:]
  FExcelApp := CreateOleObject('Excel.Application');
  FExcelApp.Visible := False;
  FExcelApp.WorkBooks.Open(FInFile);
  for i := 1 to FExcelApp.worksheets.count do
  begin
    FExcelApp.worksheets[i].activate;
    FExcelApp.ActiveSheet.PrintOut;
  end;
  FExcelApp.WorkBooks.Close;
  FExcelApp.Quit;
  FExcelApp := Unassigned;

[/Quote]
SuperTitan001 2009-08-04
  • 打赏
  • 举报
回复
FExcelApp := CreateOleObject('Excel.Application');
FExcelApp.Visible := False;
FExcelApp.WorkBooks.Open(FInFile);
for i := 1 to FExcelApp.worksheets.count do
begin
FExcelApp.worksheets[i].activate;
FExcelApp.ActiveSheet.PrintOut;
end;
FExcelApp.WorkBooks.Close;
FExcelApp.Quit;
FExcelApp := Unassigned;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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