Přístup k datům v dokumentech na serveru
Bez nutnosti použít model objektu aplikace Microsoft Office Word nebo Microsoft Office Excel můžete naprogramovat oproti data přizpůsobení úroveň dokument.To znamená, že přístup data obsažená v dokumentu na serveru, který nemá aplikaci Word nebo Excel nainstalována.Například kód na serveru (například v ASP.NET stránky) můžete upravit data v dokumentu a upravený dokument odeslat koncového uživatele.Když uživatel otevře dokument, datové vazby kódu v sestavení řešení váže upravená data do dokumentu.Je to možné, protože data v dokumentu je oddělen od uživatelského rozhraní.Další informace naleznete v tématu Data uložená v mezipaměti v přizpůsobeních na úrovni dokumentu.
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í dat do mezipaměti pro použití na serveru
Mezipaměť dat objektu v dokumentu, označit jej s CachedAttribute atribut v době návrhu nebo použít StartCaching metoda položku hostitele za běhu.Pokud mezipaměť dat objektu v dokumentu, Visual Studio Tools for Office runtime serializuje objektu do XML řetězec, který je uložen v dokumentu.Objekty musí splňovat určité požadavky způsobilé pro ukládání do mezipaměti.Další informace naleznete v tématu Ukládaní dat do mezipaměti.
Kód na straně serveru lze manipulovat s objekty data v mezipaměti dat.Ovládací prvky vázané na data v mezipaměti instance jsou synchronizovány s uživatelského rozhraní tak, aby změny serveru provedené data zobrazí automaticky při otevření dokumentu na straně klienta.
Přístup k datům v mezipaměti
Data v mezipaměti můžete přistupovat z aplikací mimo kancelář, například z aplikace konzoly, model Windows Forms aplikace nebo webové stránky.Aplikace, která přistupuje k datům mezipaměti musí mít úplný vztah důvěryhodnosti; Webové aplikace s částečnou důvěryhodností nelze vložit, načíst nebo změnit data v mezipaměti v dokumentu sady Office.
Mezipaměť dat je přístupná prostřednictvím hierarchie kolekce, které jsou vystaveny CachedData vlastnost ServerDocument třídy:
CachedData Vrací CachedData, který obsahuje všechna data v mezipaměti v přizpůsobení úroveň dokument.
Každý CachedData obsahuje jeden nebo více CachedDataHostItem objekty.A CachedDataHostItem obsahuje všechna data uložená v mezipaměti objektů, které jsou definovány v rámci jedné třídy.
Každý CachedDataHostItem obsahuje jeden nebo více CachedDataItem objekty.A CachedDataItem představuje jediný data uložená v mezipaměti objektů.
Následující příklad kódu ukazuje, jak získat přístup k mezipaměti řetězec Sheet1 třídy projektu sešitu aplikace Excel.Tento příklad je součástí většího příkladu, který je ServerDocument.Save metoda.
serverDocument1 = New ServerDocument(documentPath)
Dim hostItem1 As CachedDataHostItem = _
serverDocument1.CachedData.HostItems("ExcelWorkbook1.Sheet1")
Dim dataItem1 As CachedDataItem = hostItem1.CachedData("CachedString")
serverDocument1 = new ServerDocument(documentPath);
CachedDataHostItem hostItem1 =
serverDocument1.CachedData.HostItems["ExcelWorkbook1.Sheet1"];
CachedDataItem dataItem1 = hostItem1.CachedData["CachedString"];
Úprava dat v mezipaměti
Upravit data uložená v mezipaměti objektů, obvykle proveďte následující kroky:
XML reprezentace objektu v mezipaměti do nové instance objektu rekonstruovat.XML můžete přistupovat pomocí Xml vlastnost CachedDataItem , která představuje data uložená v mezipaměti objektů.
Proveďte změny této kopie.
Změněný objekt Serializujte zpět do mezipaměti data pomocí jedné z následujících možností:
Pokud chcete automaticky serializuje změny použít SerializeDataInstance metoda.Tato metoda používá DiffGram formát serializace DataSet, DataTablea v mezipaměti dat zadaný objektech dataset.DiffGram Formát zajišťuje, že změny dat mezipaměti offline dokumentu jsou odeslány na server správně.
Chcete-li provést vlastní serializaci pro změny dat v mezipaměti, můžete psát přímo Xml vlastnost.Zadat DiffGram používáte formát DataAdapter aktualizace provedené změny dat v databázi DataSet, DataTable, nebo zadaný dataset.Jinak DataAdapter přidáním nové řádky místo změn existující řádky budou aktualizovat databázi.
Úprava dat bez rekonstrukci aktuální hodnotu.
V některých případech můžete chtít změnit hodnotu objektu v mezipaměti bez první rekonstrukci aktuální hodnotu.Například to můžete provést Pokud změníte hodnotu objektu, který má jednoduchý typ, například řetězec nebo celočíselná, nebo pokud jsou inicializace mezipaměti DataSet v dokumentu na serveru.V těchto případech můžete použít SerializeDataInstance metoda bez první rekonstrukci aktuální hodnotu objektu v mezipaměti.
Následující příklad kódu ukazuje, jak změnit hodnotu řetězce v mezipaměti Sheet1 třídy projektu sešitu aplikace Excel.Tento příklad je součástí většího příkladu, který je ServerDocument.Save metoda.
serverDocument1 = New ServerDocument(documentPath)
Dim hostItem1 As CachedDataHostItem = _
serverDocument1.CachedData.HostItems("ExcelWorkbook1.Sheet1")
Dim dataItem1 As CachedDataItem = hostItem1.CachedData("CachedString")
If dataItem1 IsNot Nothing AndAlso _
Type.GetType(dataItem1.DataType).Equals(GetType(String)) Then
dataItem1.SerializeDataInstance("This is the new cached string value.")
serverDocument1.Save()
End If
serverDocument1 = new ServerDocument(documentPath);
CachedDataHostItem hostItem1 =
serverDocument1.CachedData.HostItems["ExcelWorkbook1.Sheet1"];
CachedDataItem dataItem1 = hostItem1.CachedData["CachedString"];
if (dataItem1 != null &&
Type.GetType(dataItem1.DataType) == typeof(string))
{
dataItem1.SerializeDataInstance("This is the new cached string value.");
serverDocument1.Save();
}
Změna hodnoty Null v mezipaměti dat
Mezipaměť dat neukládá objekty, které mají hodnotu null při uložení a zavření dokumentu.Toto omezení má několik důsledků při změně dat v mezipaměti:
Můžete nastavit libovolný objekt v mezipaměti dat na hodnotu null, všechny objekty v mezipaměti dat bude automaticky nastavena null při otevření dokumentu a celé datové mezipaměti budou vymazány po uložení a zavření dokumentu.Všechny objekty v mezipaměti budou odebrány z mezipaměti dat a CachedData bude kolekce prázdná.
Pokud sestavení řešení s null objektů v mezipaměti data a chcete inicializovat pomocí těchto objektů ServerDocument třídy před dokument je otevřen první, musí zajistit inicializaci všech objektů v mezipaměti data.Pokud inicializovat některé objekty, všechny objekty bude nastavena na null při otevření dokumentu a celé datové mezipaměti budou vymazány po uložení a zavření dokumentu.
Přístup k reprezentujích v mezipaměti
Pokud chcete přístup k datům v zadaný objekt dataset z řešení Office i z aplikace mimo kancelář, jako je aplikace model Windows Forms nebo ASP.NET projektu, musíte definovat zadaný dataset v samostatném sestavení, který odkazuje oba projekty.Pokud přidáte zadaný dataset každého projektu pomocí Průvodce konfigurací zdroje dat nebo Návrháře Dataset, rozhraní.NET Framework bude zacházet s typových datových sad dva projekty jako různé typy.Další informace o vytváření reprezentujích viz Postupy: Vytvoření typové datové sady.
Viz také
Koncepty
Přístup k datům v dokumentech na serveru
Data uložená v mezipaměti v přizpůsobeních na úrovni dokumentu