Foxtable(狐表)用户栏目专家坐堂 → [求助]EXCEL报表打印的问题


  共有21652人关注过本帖树形打印复制链接

主题:[求助]EXCEL报表打印的问题

帅哥哟,离线,有人找我吗?
t_fs
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:431 积分:2808 威望:0 精华:0 注册:2008/9/1 8:46:00
[求助]EXCEL报表打印的问题  发帖心情 Post By:2009/4/21 10:45:00 [只看该作者]

EXCEL报表直接打印代码
Dim Proc As New Process
Proc.File = "C:\test.xls"
Proc.Verb = "Print" '指定动作
Proc.Start()


      以上是直接打印EXCEL报表的代码,如果稍加改动一下,改成先直接预览然后再打印。

     请高手帮助修改一下。谢谢!

[此贴子已经被作者于2009-4-21 10:45:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/21 11:13:00 [只看该作者]

如果这样,删除
Proc.Verb = "Print" '指定动作

这样直接预览,如果想打印,再单击打印按钮。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/4/21 11:23:00 [只看该作者]

属性Verb可以设置打开的动作,不同的外部程序,支持的动作会不同,对于Excel文件,支持三个Verb动作:
Open: 打开,这也是默认的动作。
OpenAsReadOnly:以只读方式打开
Print:打印,完成打印后自动关闭

 回到顶部
帅哥哟,离线,有人找我吗?
t_fs
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:431 积分:2808 威望:0 精华:0 注册:2008/9/1 8:46:00
  发帖心情 Post By:2009/4/21 13:25:00 [只看该作者]

以下是引用狐狸爸爸在2009-4-21 11:13:00的发言:
如果这样,删除
Proc.Verb = "Print" '指定动作

这样直接预览,如果想打印,再单击打印按钮。

      删除    Proc.Verb = "Print"    后,并不是直接预览,而是打开文件。 
    
      正如yangming所述:

      Open: 打开,这也是默认的动作。


再请教一下yangming,我按如下代码测试,没有达到以只读方式打开的目的,难道代码不正确吗?

Dim Proc As New Process
Proc.File = "C:\test.xls"
Proc.Verb = "OpenAsReadOnly"      '指定动作
Proc.Start()

    谢谢回复!


 回到顶部
美女呀,离线,留言给我吧!
shxiaoya
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1442 威望:0 精华:2 注册:2008/9/7 21:30:00
  发帖心情 Post By:2009/4/21 13:40:00 [只看该作者]

 

Dim Book As New XLS.Book
Dim
Sheet As XLS.Sheet = Book.Sheets(0)
Sheet.Locked = True '禁止编辑
Book.Save(
"C:\test.xls") '保存工作簿
Dim
Proc As New Process '打开工作簿
Proc.File = "C:\test.xls"
Proc.Start()


 回到顶部
美女呀,离线,留言给我吧!
yangming
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/4/21 13:44:00 [只看该作者]

OpenAsReadOnly,这个没有达到目的,那是微软的问题,目前只能按五楼的代码处理只读的问题了
[此贴子已经被作者于2009-4-21 13:46:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
t_fs
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:431 积分:2808 威望:0 精华:0 注册:2008/9/1 8:46:00
  发帖心情 Post By:2009/4/21 14:19:00 [只看该作者]

以下是引用shxiaoya在2009-4-21 13:40:00的发言:
 

Dim Book As New XLS.Book
Dim
Sheet As XLS.Sheet = Book.Sheets(0)
Sheet.Locked = True '禁止编辑
Book.Save(
"C:\test.xls") '保存工作簿
Dim
Proc As New Process '打开工作簿
Proc.File = "C:\test.xls"
Proc.Start()

  谢谢回复!
  上述功能可以实现禁止编辑了,但它打开的不是原来已存在的电子表格文件,而是一个新建立的空白表格。
不知错在哪儿了?


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/4/21 14:24:00 [只看该作者]

以下是引用t_fs在2009-4-21 14:19:00的发言:

  谢谢回复!
  上述功能可以实现禁止编辑了,但它打开的不是原来已存在的电子表格文件,而是一个新建立的空白表格。
不知错在哪儿了?


你看看代码,这个代码就是新建一个Excel文件,并不是基于模板的。


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/4/21 15:15:00 [只看该作者]

以下是引用t_fs在2009-4-21 14:19:00的发言:

  谢谢回复!
  上述功能可以实现禁止编辑了,但它打开的不是原来已存在的电子表格文件,而是一个新建立的空白表格。
不知错在哪儿了?

im Book As New XLS.Book(ProjectPath & "Attachments\模板.xls") '打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Book.Build() '生成细节区
Book.Save("D:\保存路径\reports\模板.xls") '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = "D:\保存路径\reports\模板.xls"

Proc.Start()


 回到顶部
美女呀,离线,留言给我吧!
yangming
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/4/21 15:58:00 [只看该作者]

Dim Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls") '打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet.Locked = True '禁止编辑
Book.Build() '生成细节区
Book.Save("c:\reports\test.xls") '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = "c:\reports\test.xls"
Proc.Start()
这样看看,你可以在范例中的:Excel报表.table中的命令窗口中测试此代码

 回到顶部
总数 13 1 2 下一页