excel

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

有没有办法让excel文档不能复制,或是复制后不能有效使用.

· 网友精彩回答:

发表者:ynsmcn

不能复制恐怕做不到,除非你不让别人用,加密或者用文件系统的权限来保护。  
  让他不能有效使用可以设置保护密码,不过不太有效,很容易破解。  
  相对好一点的办法是写一个宏,打开文档时检测运行环境符合要求才把关键内容写到sheet里,再保护好宏代码。  
  绝对安全是不可能的。。。

发表者:kieran

不让复制貌似不可能,不让别人看到就是了.  
   
  还是通过设置一个比较复杂的密码吧,"工具"->"选项"->"安全性"里设置

发表者:cxa_2002

好像做不到啊,除非微软开放源代码......

发表者:yiqun_zhao

如果楼主认可“不能复制是做不到”,“那么复制后不能有效使用,应该还是可以”就经不起推敲。  
   
  复制可以超越工作簿的保护,除了格式需要重新设置,数据及公式都不会丢失。因此,很难既让人看到内容,又不能复制。  
   
  以下是我的一点思路:[但是没有经过推敲,也没有尝试过,不一定正确,仅供参考!]  
  您不妨使用vba,赋给权限,并要求密码校验。然后检测进行的操作,如果是没有经过有效权限校验的情况下进行复制操作,那么屏蔽事件。  
  [但是,能否/如何监测系统的操作,还需要好好研究。]  
   
  对于您的这个问题:“某计算机复制到其他计算机”  
  如果是文件的复制,那么您可以尝试使用vba,检测excel文档打开文档的计算机名和文件路径,如果文件路径是本地,并且不是指定的计算机名,则关闭。如果文件路径是网络,而来源计算机不是不是指定的计算机名,则关闭。  
   
  但是这样会有一个问题:如果设置宏优先级,那么是可以禁用宏的,也就是说vba不生效。  
   
  这样看来,又要人家能看,又不能复制使用,这种实现的操作性存在很大障碍。

发表者:sanshanyu

可以自己建立一个excel文件放在一个隐蔽的目录中,你需要保护的内容就放在这个文件里,然后在你要拿给别人看的那个excel文件中的自动运行宏中增加代码将先前的文件中的内容复制过来。  
   
   
  这样做后,如果别人把文件从你机器上复制走了后再打开就会发现什么内容都没有  
   
 

.
处理 SSI 文件时出错
© 2006-2008 All Rights Reserved