Compartilhar via


Método WorkbookBase.UnprotectDocument

Chamado pelo Visual Studio Tools for Office runtime para que você possa remover a proteção de senha da pasta de trabalho e permitem que os dados em cache a ser salvo.

Namespace:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel.v4.0.Utilities (em Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)

Sintaxe

'Declaração
Protected Overridable Sub UnprotectDocument
protected virtual void UnprotectDocument()

Comentários

Substitua esse método em um projeto de nível de documento do Excel, se sua pasta de trabalho está protegida usando uma senha e contém dados em cache que podem ser alterados em tempo de execução. Na implementação deste método, use o Unprotect método para temporariamente Desproteger pasta de trabalho.

Por padrão, as alterações nos dados armazenados em cache em uma pasta de trabalho protegida por senha não são persistentes quando a pasta de trabalho é salvo. Para salvar as alterações aos dados em cache, você deve substituir os métodos a seguir em seu projeto:

  • UnprotectDocument. Quando a pasta de trabalho é salvo, o Visual Studio Tools for Office runtime chama este método. Adicione o código desse método que temporariamente Desprotege a pasta de trabalho. Isso permite que as alterações dos dados em cache a ser salvo.

  • ProtectDocument. Depois que a pasta de trabalho é salvo, o Visual Studio Tools for Office runtime chama este método. Adicione o código desse método que reaplica a proteção para a pasta de trabalho.

For more information, see Como: Cache de dados em um documento protegido por senha.

Exemplos

O exemplo de código a seguir demonstra como substituir o UnprotectDocument método para desproteger temporariamente a pasta de trabalho, para que as alterações dos dados em cache podem ser salvos. Primeiro, o exemplo salva o atual ProtectStructure e ProtectWindows valores, para que o mesmo tipo de proteção pode ser reaplicado posterior a ProtectDocument método. Para usar esse código, executá-lo do ThisWorkbook a classe em um projeto de nível de documento para o Excel. O código pressupõe que a senha é armazenada em um campo chamado 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);
}

Segurança do .NET Framework

Consulte também

Referência

WorkbookBase Classe

Namespace Microsoft.Office.Tools.Excel

ProtectDocument

Outros recursos

Cache de dados

Como: Cache de dados em um documento protegido por senha