文档级自定义项中的数据概述

更新:2007 年 11 月

适用对象

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

项目类型

  • 文档级项目

Microsoft Office 版本

  • 2007 Microsoft Office system

  • Microsoft Office 2003

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

Microsoft Office 文档通常用作数据储存库。过去,这表示您必须启动 Office 应用程序才能访问数据。但是,在 Microsoft Office Word 或 Microsoft Office Excel 的文档级自定义项中,可以将数据存储在嵌入的数据岛中,无需启动 Excel 或 Word 即可访问数据岛。

分离数据和文档

数据岛是一个 XML 文档,其中包含嵌入在 Office 文档中的数据;无需运行 Office 应用程序即可访问该 XML 文档。数据实际存在于两个地方,即文档和单独的嵌入数据岛中。在数据岛与文档之间使用了数据绑定以使它们保持同步。如果服务器上运行的代码修改了数据岛,则在文档打开并且文档中的代码运行时,Office 文档会与数据岛进行同步。

此模型具有以下几项优势:

  • 面向架构的编程

  • 数据缓存

  • 服务器端数据访问

面向架构的编程

Visual Studio Tools for Office 使用键入的数据集提供面向架构的编程模型,以便与数据岛交互。这样,您便可以将验证代码添加到独立于文档的数据中。通过将验证与文档分离,可以将数据验证代码移植到其他文档中。

数据缓存

数据岛使用可脱机使用的数据填充。当文档中的缓存数据项包含数据时,该文档将与数据岛进行交互。使用 CachedAttribute 属性声明的数据源保留在数据岛中。有关更多信息,请参见缓存数据如何:缓存数据以便脱机使用或在服务器上使用

服务器端数据访问

由于可以从外部访问数据岛,因此无需启动 Office 就可以修改嵌入在文档中的数据,从而能够在服务器上对文档进行快速批处理。请注意,只能访问缓存中的数据,而不是文档中的所有数据。

在不启动 Office 应用程序的情况下填充服务器上的文档

可以在服务器上填充嵌入文档中的数据岛,而无需启动 Office 应用程序。可以创建一个文档,并将数据的架构与该文档关联。然后,该文档就存储在服务器上。服务器端代码(例如,ASP.NET 页面背后的代码)将调用 Visual Studio Tools for Office 运行时中的方法来填充数据岛。有关更多信息,请参见访问服务器上的文档数据

在不启动 Office 应用程序的情况下向 ASP.NET 服务器页面公开文档中嵌入的数据

可以通过创建文档并将数据架构与该文档相关联来公开数据。然后,该文档就存储在服务器上。ASP.NET 页面中的代码会将该文档视为数据源,并且可以读取和修改嵌入的数据岛。ASP.NET 提供了一些组件,这些组件可以从文档中读取数据岛,将其作为数据源向 ASP.NET 页面公开,并且允许对数据进行读写访问。有关更多信息,请参见 如何:从服务器上的工作簿中检索缓存的数据

脱机编辑文档

通过到服务器的连接填充数据岛后,便可以在断开连接的情况下使用文档,如搭乘不提供网络连接的飞机旅行时。即使不存在到服务器的活动连接,也可以使用并操作数据岛中的数据。连接可用后,便可以将对数据岛所做的更改传播回服务器数据源。有关更多信息,请参见保存数据概述如何:使用宿主控件中的数据更新数据源

数据安全性

如果您的解决方案与外部数据源(如数据库、Web 服务或其他服务器应用程序)连接,请在数据源端以及客户端验证所有输入。由于可以从文档外部访问该文档中缓存的数据,因此这些数据可能与您预期的内容不一样。出于同一原因,请不要在缓存中包含不想让用户查看的数据。

有关安全处理数据的指南,请参见 安全性和用户输入安全客户端应用程序 (ADO.NET)

请参见

概念

将数据绑定到控件

缓存数据

访问服务器上的文档数据

XML 架构和数据 (Visual Studio Tools for Office)

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

其他资源

Office 解决方案中的数据