文档级自定义项中的缓存数据

文档级自定义的主要目标是将数据与办公室文档中的视图分开。 数据是指存储在文档中的信息,包括数字和文本。 视图是指Microsoft 办公室 Word 和 Microsoft 办公室 Excel 的用户界面和对象模型。

Visual Studio 通过将数据嵌入为 数据岛(也称为 数据缓存),将数据与文档级自定义中的视图分开。 无需启动 Word 或 Excel 即可直接读取或修改数据。 当需要修改服务器上未安装Microsoft 办公室的文档中的数据时,这非常有用。 Word 和 Excel 适用于客户端环境;它们不设计为在服务器上运行。

适用于: 本主题中的信息适用于 Excel 和 Word 的文档级项目。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。

有关文档级自定义的详细信息,请参阅办公室解决方案开发概述(VSTO)文档级自定义的体系结构。

了解缓存的数据编程模型

数据岛可以包含解决方案中满足特定要求的任何对象。 这些对象包括 DataSet 对象、 DataTable 对象和可由类序列化 XmlSerializer 的任何其他对象。 有关更多信息,请参见缓存数据

若要提供缓存数据的视图,可以将文档上的Windows 窗体控件和宿主控件绑定到数据岛中的对象。 数据岛和数据绑定控件之间的数据绑定使两者保持同步。 还可以向独立于控件的数据添加验证代码。 有关详细信息,请参阅将数据绑定到办公室解决方案中的控件。

主机控件是 Excel 和 Word 对象模型中本机对象的扩展版本。 与本机对象不同,主机控件可以直接绑定到托管数据对象。 有关详细信息,请参阅主机项和主机控件概述以及办公室文档概述上的Windows 窗体控件。

访问服务器上的缓存数据

若要访问文档中的缓存数据,可以使用该 ServerDocument 类。 此类是 Visual Studio Tools for 办公室 运行时的一部分,可以在服务器上使用它,而无需运行 Excel 或 Word。 当用户在修改缓存数据后打开文档时,绑定到数据的任何控件都会自动同步到更改,并且用户会显示更新的数据。 有关详细信息,请参阅 服务器上的文档中的访问数据。

Excel 和 Word 不需要写入服务器上的数据,只需在客户端上查看它。 Excel 和 Word 甚至不需要安装在服务器上。 这提高了可伸缩性,并能够对包含数据岛的文档执行快速批处理。

用于脱机使用的数据缓存

将数据存储在数据岛可实现脱机方案。 当用户首次打开文档或从服务器请求文档时,数据岛将填充最新数据。 数据岛缓存在文档中,然后脱机可用。 用户(和代码)可以操作数据,即使没有可用的实时连接。 当用户重新连接时,可以将对数据的更改传播回服务器数据源。

比较缓存数据和自定义 XML 部件

2007 年Microsoft 办公室系统中引入了自定义 XML 部件,作为在文档中存储任意 XML 片段的方法。 尽管自定义 XML 部件在许多与数据缓存相同的方案中都很有用,但数据岛和自定义 XML 部件之间存在一些差异。 有关自定义 XML 部件的详细信息,请参阅 自定义 XML 部件概述

下表列出了一些差异和相似之处。

问题/特征 数据缓存 自定义 XML 部件
哪些办公室应用程序可以使用这些应用程序? 以下应用程序的文档级自定义:

-Excel
-词
适用于以下应用程序的文档级和应用程序级解决方案:

-Excel
-幻灯片
-词
可以存储哪些类型的数据? 自定义程序集中满足特定要求的任何公共对象。 有关更多信息,请参见缓存数据 任何 XML 数据。
是否可以在不启动Microsoft 办公室应用程序的情况下访问数据? 是的,通过使用 ServerDocument Visual Studio Tools for 办公室 运行时提供的类。 是的,通过使用命名空间中的 System.IO.Packaging 类,或使用 Open XML 格式 SDK。