有可能以编程方式密码保护Excel电子表格?

我们目前在我们的服务器上创buildExcel电子表格,然后邮寄给客户。 我们现在需要密码保护这些文件。 是否可以以编程方式将Excel密码保护添加到这些文件?

我不希望在服务器上安装Excel,并使用表单自动化来执行此操作。

我是一个C#/ .net开发人员,但任何语言/方法来做到这一点,将不胜感激

您也可以通过http://hivelink.io查看“HiveLink”。 这是一项服务,允许您通过为用户创build电子表格的轻量级版本来保护您的Excel电子表格。 轻量级版本只有input界面,所有的计算被删除,输出结果界面。 您可以向每个用户发送邀请,他们可以下载轻量级电子表格,input他们的input并在不久之后收到结果。 HiveLink将电子表格安全地连接到用户,并通过原始电子表格运行并返回结果。

我会build议使用经过validation的encryption软件包。 (例如PGP)由excel提供的密码保护不如以前强。

感谢您的答复。 看来,我不能轻易地做我所问的。 所以我不得不使用自动化。 !st我添加了一个引用到excel互操作,然后下面的代码做了我所需要的。 (从带有2个参数文件名和密码的命令行运行)

static void Main(string[] args) { if (args.Length != 2) return; string filename = args[0]; string password = args[1]; if (!File.Exists(filename)) return; Excel.Application oexcel; Excel.Workbook obook; oexcel = new Excel.Application(); oexcel.DisplayAlerts = false; obook = oexcel.Workbooks.Open(filename, 0, false, 5, "", "", true, System.Reflection.Missing.Value, "\t", false, false, 0, true, 1, 0); try { obook.SaveAs(filename, Password: password, ConflictResolution: XlSaveConflictResolution.xlLocalSessionChanges); } finally { obook.Close(); oexcel.Quit(); } } 

编辑 :误解了问题,不理睬。

我将解决这个最简单的方法是通过encryption压缩。

任何我能想到的将需要在服务器上的Excel,并使用Excel自动化。

然而,另一种select是SharpZipLib ,并将Excel文件放在密码保护的ZIP文件中。 Windows XP和更好的运输与ZIP默认处理程序可以处理密码,所以净效应是一个密码保护的文件,他们只需要首先提取,但不需要额外的软件。 唯一的缺点是密码保护邮编使用一个有缺陷的algorithm,我不相信Windows的Windowsshell扩展程序可以理解AES。

你不是一个简单的任务,但不pipe怎样,你都应该看看Gray Knowlton的文章“使用Open XML在Office 2007中进行文档encryption”, url是http://blogs.technet.com/b/gray_knowlton/archive/ 2008/09/02 /文档encryption在办公室-2007-与开放,xml.aspx

另外请查看http://social.msdn.microsoft.com/Forums/en-US/oxmlsdk/thread/c48048a3-4013-419f-b612-3d971acb1919上的MSDN主题

我希望这个能有一点帮助。

:O)

还没有尝试过,但http://xlsgen.arstdesign.com/intro.html看起来像它可能适合你(特别是http://xlsgen.arstdesign.com/core/locked.html上的细节)

作为一个推论,在几年前我们正在开发的一个项目中,我们有一个可以使用互操作库创buildExcel文件的系统。 在开发中,它工作得很好,在testing中,它工作正常,但每次在舞台上爆炸。 最后追踪到MS 支持服务器环境中的互操作程序集。 我们的升级是服务器2008年,testing是2003年,所以你的里程可能会非常,如果你要与互操作服务器上。