如何使用ClosedXML打开受保护的Excel文件?

问题描述 投票:-2回答:1

是否可以使用ClosedXML打开受密码保护的Excel文件?如果是这样,怎么样?

我尝试使用Interop,但速度很慢。

Using Interop.Excel
Microsoft.Office.Interop.Excel.Application wb = xlApp.Workbooks.Open(Filename: "c:\TEST\MyFileProtected.xlsx", ReadOnly: true, Password: "PASSWORD");

我也尝试使用ClosedXML但没有成功

string path = openFileDialog1.FileName.ToString();

var wb = new XLWorkbook(path);
wb.Unprotect("password");

我收到了错误

“文件包含损坏的数据”创建XLWorkbook对象。

c# excel protected closedxml xlsm
1个回答
1
投票

ClosedXML / OpenXML不支持用于启用/禁用文件打开的密码保护。见https://blogs.msdn.microsoft.com/openspecification/2009/07/17/overview-of-protected-office-open-xml-documents/

您只能锁定OpenXML文档的结构和窗口,这确实是wb.Protect()方法的作用。

也就是说,ClosedXML仅支持传统保护方法。 Excel 2013中引入的较新保护方法和密码哈希算法尚不支持。请参阅https://github.com/ClosedXML/ClosedXML/issues/866

© www.soinside.com 2019 - 2024. All rights reserved.