使用Closedxml库创建密码保护的Excel文件

6

我是c# asp.net的新手,尝试使用第三方库“Closedxml”创建XLS文件。现在,我还想用密码保护XLS文件,该怎么做呢?

希望您能提供帮助。 提前感谢您的帮助。 Ashish


你可以直接谷歌搜索,那里会给出很多解决方案。这里有一个:https://msdn.microsoft.com/zh-cn/library/7czw9wzs.aspx (请注意,在项目中需要添加Excel库的引用)这里还有一个相同的解决方案:https://dev59.com/qUfRa4cB1Zd3GeqP_sDe - Noel Widmer
看起来你不能使用ClosedXML设置密码保护或者取消密码保护,但是@NoelWidmer的链接应该足以在你使用ClosedXML创建后进行保护。 - Mir
2个回答

7

我遇到了同样的问题——需要在不使用Interop库的情况下保护Excel文件。

With ClosedXML you can password protect at the worksheet level: 
var ws = wb.Worksheets.Add("someworksheet");
ws.Protect("123");  // 123 will be the password

看起来您可以锁定工作簿的结构(防止工作表添加/删除/重命名),但不能设置密码,尽管我还没有对此进行广泛测试:

var wb = new XLWorkbook();
wb.Protect(bool LockStrucure, bool LockWindows); 

参考资料: 工作表保护示例


这在PowerShell中是否可行? - Stephanie
2
这对我不起作用。Excel文件打开时没有要求密码。 - Noobie3001
这对我不起作用。 - twostepdevelopers

3
无法在ClosedXML中使用密码保护文件,请参见github

因为这是可能的,可以参考@JesseZ的答案,所以请不要点踩。 - ModusPwnens
2
检查一下我的链接,它不可能的,JesseZ的答案不起作用。 - Cerveser
也许我们在谈论不同的事情,因为JesseZ的答案对我完全有效。那是用于保护工作表免受编辑,而不是整个文件免受打开。这就是你所说的吗? - ModusPwnens
是的,我说的是密码保护整个文件以免被打开。 - Cerveser
+1,因为@Cerveser,你是完全正确的。您可以保护单个工作表免受编辑,但无法使用ClosedXML密码保护文档以防止打开。原始问题未指定他们想要哪种类型的保护。 - Ryan Sorensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接