WorkbookBase.UnprotectDocument - метод
Вызывается Visual Studio Tools for Office (cреда выполнения), так что можно удалить защиту паролем из книги и разрешить сохранение кэшированных данных.
Пространство имен: Microsoft.Office.Tools.Excel
Сборка: Microsoft.Office.Tools.Excel.v4.0.Utilities (в Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)
Синтаксис
'Декларация
Protected Overridable Sub UnprotectDocument
protected virtual void UnprotectDocument()
Заметки
Перегрузите этот метод в проекте уровня документа для Excel, если ваша книга защищены при помощи пароля и содержит кэшированные данные, которые могут быть изменены во время выполнения.При реализации этого метода используйте метод Unprotect для временного отключения защиты вашей книги.
По умолчанию изменения кэшированных данных в книге, защищенной паролем, не сохраняются при сохранении книги.Чтобы сохранить изменения в кэшированных данных, необходимо перегрузить в проекте следующие методы:
UnprotectDocument.При сохранении книги среда выполнения Visual Studio Tools for Office (cреда выполнения) вызывает данный метод.Добавьте код в этот метод, чтобы на время снять защиту с книги.Это позволяет сохранить изменения кэшированных данных.
ProtectDocument.После сохранения книги среда выполнения Visual Studio Tools for Office (cреда выполнения) вызывает данный метод.Добавьте код в этот метод, чтобы снова защитить книгу.
Дополнительные сведения см. в разделе Практическое руководство. Кэширование данных в документе, защищенном паролем.
Примеры
В следующем примере кода демонстрируется перегрузка метода UnprotectDocument для временного снятия защиты с вашей книги, чтобы сохранить измененные кэшированные данные.Сначала в примере сохраняются текущие значения ProtectStructure и ProtectWindows, так что некоторые типы защиты позднее могут быть применены в методе ProtectDocument.Чтобы использовать данный код, запустите его из класса ThisWorkbook в проекте уровня документа для приложения Excel.В этом коде предполагается, что пароль хранится в поле с именем securelyStoredPassword.
<CachedAttribute()> _
Public CachedString As String = "This string is cached in the workbook."
Private protectStructureValue As Boolean
Private protectWindowsValue As Boolean
Protected Overrides Sub UnprotectDocument()
protectStructureValue = Me.ProtectStructure
protectWindowsValue = Me.ProtectWindows
Me.Unprotect(securelyStoredPassword)
End Sub
Protected Overrides Sub ProtectDocument()
Me.Protect(securelyStoredPassword, protectStructureValue, _
protectWindowsValue)
End Sub
[CachedAttribute]
public string CachedString = "This string is cached in the workbook.";
private bool protectStructureValue;
private bool protectWindowsValue;
protected override void UnprotectDocument()
{
protectStructureValue = this.ProtectStructure;
protectWindowsValue = this.ProtectWindows;
this.Unprotect(securelyStoredPassword);
}
protected override void ProtectDocument()
{
this.Protect(securelyStoredPassword, protectStructureValue,
protectWindowsValue);
}
Безопасность платформы .NET Framework
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Microsoft.Office.Tools.Excel - пространство имен
Другие ресурсы
Практическое руководство. Кэширование данных в документе, защищенном паролем