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
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.
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.
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
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.
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.
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