Как открыть защищенный файл Excel с ClosedXML? - PullRequest
0 голосов
/ 26 февраля 2019

Можно ли использовать 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объект.

1 Ответ

0 голосов
/ 28 февраля 2019

Защита паролем для включения / выключения открытия файла не поддерживается с 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

...