С# Удалить пароль из защищенного паролем (зашифрованного) файла excel, используя пароль файла

Я пытаюсь открыть защищенный паролем файл excel (версии xls, xlsx, xlsm). Мне нужно открыть файлы и удалить пароль из каждого файла. У меня есть все доступные пароли для файлов, которые должны быть обработаны.

Я не могу использовать Microsoft Interop Excel, так как Excel должен быть установлен на сервере, чтобы это работало. Я уже использую Aspose.Cells для открытия файлов, не защищенных паролем. Но я хочу иметь возможность сохранить файл, перезаписав его без пароля.

У кого-нибудь есть предложения? заранее спасибо

Код до сих пор

public static void RemovePassword(string filePath, string password){
  LoadOptions loadOptions = new LoadOptions();
  loadOptions.Password = password;

  Workbook src = new Workbook(filePath, loadOptions);
  //need a way of removing the password from the file.
}

person Liam Millar    schedule 27.01.2019    source источник


Ответы (2)


Вы можете использовать метод Снять защиту в Workbook:

LoadOptions loadOptions = new LoadOptions();
loadOptions.Password = password;

Workbook workbook = new Workbook(filePath, loadOptions);
workbook.Unprotect(password);
// or workbook.Settings.Password = "";
workbook.Save(filePath);
person Sani Singh Huttunen    schedule 27.01.2019
comment
применяется ли это к зашифрованному файлу, который необходимо удалить? - person gumuruh; 21.09.2019

Спасибо за ваш ответ, я заметил, что ваше первое предложение снимает защиту только со структуры книг.

workbook.Unprotect(password);

В моем случае я хочу расшифровать фактический файл, защищенный паролем (зашифрованный).

Второе предложение отлично работает, спасибо!

 workbook.Settings.Password = "";
 workbook.Save(filePath);

В очередной раз благодарим за помощь

person Liam Millar    schedule 28.01.2019