文档级自定义项中的数据模型

更新:2007 年 11 月

适用对象

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

项目类型

  • 文档级项目

Microsoft Office 版本

  • 2007 Microsoft Office system

  • Microsoft Office 2003

有关更多信息,请参见按应用程序和项目类型提供的功能

Visual Studio Tools for Office 中的文档级解决方案的主要目的是将 Office 文档中的数据与视图分开。数据是指存储在文档中的信息,包括数字和文本。视图是指 Microsoft Office Word 和 Microsoft Office Excel 的用户界面和对象模型。

Visual Studio Tools for Office 通过实现以“数据岛”(也称为“数据缓存”)形式嵌入数据,从而将文档级自定义项中的数据与视图分开。无需启动 Word 或 Excel 便可直接读取或修改数据。当需要在未安装 Microsoft Office 的服务器上修改文档中的数据时,这非常有用。Word 和 Excel 的设计初衷是在客户端环境中使用,而非在服务器上运行。

有关文档级自定义项的更多信息,请参见 Office 解决方案开发概述文档级自定义项的体系结构

了解缓存数据编程模型

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

若要提供缓存数据的视图,可将文档上的 Windows 窗体控件和“宿主控件”绑定到数据岛中的对象上。数据岛与数据绑定控件之间的数据绑定将使二者保持同步。也可以将验证代码添加到独立于控件的数据中。有关更多信息,请参见将数据绑定到控件

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

访问服务器上的缓存数据

若要访问文档中的缓存数据,可以使用 ServerDocument 类。此类是 Visual Studio Tools for Office 运行时的一部分,不用运行 Excel 或 Word 便可在服务器上使用此类。用户在您修改缓存数据后打开文档时,任何绑定到该数据的控件将自动与更改同步,并向用户呈现已更新的数据。有关更多信息,请参见访问服务器上的文档数据

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

缓存数据以便脱机使用

将数据存储在数据岛中可以支持脱机方案。当用户最初从服务器上打开文档或请求文档时,数据岛将由最新的数据填充。数据岛缓存在文档中,然后可以脱机使用。这样,即使当时没有可用的连接,用户(及您的代码)也可以处理数据。当用户重新连接时,可以将对数据所做的更改传回服务器数据源。

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

自定义 XML 部件作为一种存储文档中的任意 XML 片段的方法引入到了 2007 Microsoft Office system 中。尽管在许多情况下既可以使用自定义 XML 部件,也可以使用数据缓存,但 Visual Studio Tools for Office 数据岛与自定义 XML 部件之间存在一些差异。有关自定义 XML 部件的更多信息,请参见自定义 XML 部件概述

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

数据缓存

自定义 XML 部件

哪些 Office 应用程序可以使用它们?

以下应用程序的文档级自定义项:

  • Excel 2007

  • Excel 2003

  • Word 2007

  • Word 2003

以下应用程序的文档级和应用程序级解决方案:

  • Excel 2007

  • PowerPoint 2007

  • Word 2007

可以存储哪些类型的数据?

满足某些要求的自定义项程序集中的任何公共对象。有关更多信息,请参见 缓存数据

任何 XML 数据。

是否能够在不启动 Microsoft Office 应用程序的情况下访问数据?

是的,方法是通过使用 Visual Studio Tools for Office 运行时提供的 ServerDocument 类。

是的,方法是通过使用 System.IO.Packaging 命名空间中的类(从 .NET Framework 3.0 开始)。

请参见

其他资源

Office 解决方案中的数据

Visual Studio Tools for Office 解决方案的结构