Sdílet prostřednictvím


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:

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:

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

  2. Proveďte změny této kopie.

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