Sdílet prostřednictvím


Postupy: Ukládání dat do mezipaměti v dokumentu chráněném heslem

Přidat data do mezipaměti data v dokumentu nebo sešitu, který je chráněn heslem, nejsou změny dat v mezipaměti automaticky uloženy.Změny můžete uložit data v mezipaměti přepsáním dvě metody v projektu.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu v těchto aplikacích: Excel 2013 a Excel 2010; Word 2013 a Word 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Ukládání do mezipaměti v dokumentech aplikace Word

Mezipaměť dat v dokumentu aplikace Word, který je chráněn heslem

  1. V ThisDocument třídy, označit veřejná pole nebo vlastnosti do mezipaměti.Další informace naleznete v tématu Ukládaní dat do mezipaměti.

  2. Přepsat DocumentBase.UnprotectDocument metoda ThisDocument třídy a z dokumentu odebrat ochranu.

    Při uložení dokumentu Visual Studio Tools for Office runtime volá tuto metodu poskytnout příležitost k odemknutí dokumentu.To umožňuje změny uložit data v mezipaměti.

  3. Přepsat DocumentBase.ProtectDocument metoda ThisDocument třídy a znovu použít ochranu dokumentu.

    Po uložení dokumentu Visual Studio Tools for Office runtime volá tuto metodu k vám příležitost znovu použít ochranu dokumentu.

Příklad

Následující příklad kódu ukazuje, jak do mezipaměti data v dokumentu aplikace Word, který je chráněn heslem.Před kód odebere ochranu v DocumentBase.UnprotectDocument metoda uloží aktuální ProtectionType hodnotu, takže stejný typ ochrany lze znovu v DocumentBase.ProtectDocument metoda.

<CachedAttribute()> _
Public CachedString As String = "This string is cached in the document." 

Private protectionTypeValue As Word.WdProtectionType

Protected Overrides Sub UnprotectDocument()
    If Me.ProtectionType <> Word.WdProtectionType.wdNoProtection Then
        protectionTypeValue = Me.ProtectionType
        Me.Unprotect(securelyStoredPassword)
    End If 
End Sub 

Protected Overrides Sub ProtectDocument()
    Me.Protect(protectionTypeValue, password:=securelyStoredPassword)
End Sub
[CachedAttribute]
public string CachedString = "This string is cached in the document.";

private Word.WdProtectionType protectionTypeValue;

protected override void UnprotectDocument()
{
    if (this.ProtectionType != Word.WdProtectionType.wdNoProtection)
    {
        protectionTypeValue = this.ProtectionType;
        this.Unprotect(ref securelyStoredPassword);
    }
}

protected override void ProtectDocument()
{
    this.Protect(protectionTypeValue, ref missing,
        ref securelyStoredPassword, ref missing, ref missing);
}

Probíhá kompilace kódu

Přidat tento kód ThisDocument tříd v projektu.Tento kód předpokládá, že heslo je uložena v poli s názvem securelyStoredPassword.

Ukládání do mezipaměti v sešitech aplikace Excel

V projektech aplikace Excel tento postup je nutný, pouze při ochraně celého sešitu pomocí hesla pomocí Workbook.Protect metoda.Tento postup není nutné chránit konkrétní listu heslem pomocí Worksheet.Protect metoda.

Mezipaměť dat v sešitu aplikace Excel, který je chráněn heslem

  1. V ThisWorkbook třídy nebo některé z Sheetn označení třídy, veřejná pole nebo vlastnosti do mezipaměti.Další informace naleznete v tématu Ukládaní dat do mezipaměti.

  2. Přepsat WorkbookBase.UnprotectDocument metoda ThisWorkbook třídy a odstranit zámek ze sešitu.

    Při uložení sešitu Visual Studio Tools for Office runtime volá tuto metodu k nabídne možnost Odemknout sešit.To umožňuje změny uložit data v mezipaměti.

  3. Přepsat WorkbookBase.ProtectDocument metoda ThisWorkbook třídy a znovu použít ochranu dokumentu.

    Po uložení sešitu Visual Studio Tools for Office runtime volá tuto metodu k vám příležitost znovu použít ochranu sešitu.

Příklad

Následující příklad kódu ukazuje, jak do mezipaměti data v sešitu aplikace Excel, který je chráněn heslem.Před kód odebere ochranu v WorkbookBase.UnprotectDocument metoda uloží aktuální ProtectStructure a ProtectWindows hodnoty, takže stejný typ ochrany lze znovu v WorkbookBase.ProtectDocument metoda.

<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);
}

Probíhá kompilace kódu

Přidat tento kód ThisWorkbook tříd v projektu.Tento kód předpokládá, že heslo je uložena v poli s názvem securelyStoredPassword.

Viz také

Úkoly

Postupy: Ukládání dat do mezipaměti pro použití v režimu offline nebo na serveru

Postupy: Ukládání zdroje dat v dokumentu systému Office do mezipaměti prostřednictvím kódu programu

Koncepty

Ukládaní dat do mezipaměti