是否可以使用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对象。
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