以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] Excel报表打印安全问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=25154)

--  作者:eric803
--  发布时间:2012/11/1 18:48:00
--  [求助] Excel报表打印安全问题
今天一直在测试下EXCEL报表功能,发现在按模板XLS生成目标打印xls文件时,必须生成实体文件到硬盘,这样就存在用户可以复制,修改打印用的目标XLS文件,
Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单.xls")
 Dim fl As String = ProjectPath & "Reports\\出库单.xls"
 Book.Build()    ‘已生成了xls
 Book.Save(fl)  
 Dim App As New MSExcel.Application
 Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
 Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
 App.Visible = True
 
 
 \'设置 不显示警告信息对话框, 这样设置了“打印设置或页边距”后不会提示保存了EXCEL
 App.DisplayAlerts = False
   
 Ws.PrintPreview
 App.Quit
 ‘删除EXCEL,但还是有漏洞,用户可以使用只读的方式打开EXCEL再另存后操作
 If FileSys.FileExists(fl) Then \'如果指定的文件存在
     FileSys.DeleteFile(fl,2,2)  
 End If
 

 能否有方法实现 直接在内存在生成EXCEL,硬盘中根本不生成文件,用户看不到EXCEL也就保证了打印的安全性。

--  作者:lihe60
--  发布时间:2012/11/1 19:33:00
--  

我提供个思路:

1、生成excel文件

2、打印该文件

3、关闭该文件

4、彻底删除该文件

上面4步全步用代码实现。


--  作者:lin_hailun
--  发布时间:2012/11/1 20:00:00
--  
 楼主是怎样测试的?

 不能把文件存储在其他位置么?……

 未遇到过,一起探讨。

--  作者:eric803
--  发布时间:2012/11/1 20:33:00
--  
 

1、生成excel文件

2、打印该文件

3、关闭该文件

4、彻底删除该文件

上面4步全步用代码实现。


我也是这样做的! 
[此贴子已经被作者于2012-11-1 20:34:24编辑过]

--  作者:szp2012
--  发布时间:2012/11/1 22:01:00
--  
狐表引进 E+grid 报表插件就好了,类似易表报表功能