智能标记的结构

更新:2007 年 11 月

适用对象

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

文档级项目

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

应用程序级项目

  • Excel 2007

  • Word 2007

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

Visual Studio Tools for Office 提供了一个灵活的智能标记对象模型,通过使用此模型,可以将智能标记快速添加到 Microsoft Office Word 文档和 Microsoft Office Excel 工作簿中。在高级情况下,您还可以创建自己的智能标记识别器,并访问存储在智能标记中的数据。

有关 Visual Studio Tools for Office 智能标记的更多信息,请参见智能标记概述

对象模型概述

Visual Studio Tools for Office 智能标记的对象模型为智能标记和智能标记执行的操作提供单独的类。有关演示如何向文档添加 Visual Studio Tools for Office 智能标记的代码示例,请参见如何:向 Word 文档添加智能标记如何:向 Excel 工作簿添加智能标记

智能标记

Visual Studio Tools for Office 智能标记是派生自 SmartTagBase 抽象类的任意类的实例。Visual Studio Tools for Office 包含两个实现 SmartTagBase 抽象类的类:Microsoft.Office.Tools.Word.SmartTagMicrosoft.Office.Tools.Excel.SmartTag。除非需要创建自己的智能标记识别器,否则,当您向文档中添加智能标记时,您可以使用这些类的实例。

SmartTagBase 类提供了以下功能:

  • TermsExpressions 属性,其中包含智能标记的可识别术语。若要指定简单的字符串,请将该字符串添加到 Terms 属性中。若要指定复杂的字符串,请将说明该字符串的正则表达式添加到 Expressions 属性中。

  • Actions 属性,包含用户选择该智能标记时执行的操作。

  • 比较用户输入与 TermsExpressions 属性的内容的默认智能标记识别器。

操作

当用户选择智能标记时,该用户可以执行特定于该智能标记的一项或多项操作。每项操作由 Microsoft.Office.Tools.Word.ActionMicrosoft.Office.Tools.Excel.Action 类的一个实例表示。这些类提供了 BeforeCaptionShow 和 Click 事件:

  • BeforeCaptionShow 事件紧跟着用户单击智能标记图标之后、智能标记菜单显示之前引发。如果要在运行时修改智能标记菜单中操作的标题,请处理此事件。

  • 用户在智能标记菜单中单击操作的标题时将引发 Click 事件。若要在用户单击操作时运行代码,请处理此事件。

这些事件的事件处理程序接收 Microsoft.Office.Tools.Excel.ActionEventArgs(对于 Excel)或 Microsoft.Office.Tools.Word.ActionEventArgs(对于 Word),通过所接收的此参数,可访问已识别的文本及此文本的位置。

默认的文本识别行为

当用户在文档或工作簿中键入文本时,Word 和 Excel 会根据该文本创建一个标记列表。SmartTagBase 类中的默认智能标记识别器接收此标记列表以及用户键入的完整文本。默认识别器在满足以下任一条件时标识智能标记:

  • Terms 属性中的一个字符串与文档或工作簿中的一个标记完全匹配。

  • Expressions 属性中的一个正则表达式与用户键入的完整文本匹配。

Word 和 Excel 在用户键入字符串时将包含嵌入空格或组合了字母、数字和符号的字符串解析为分开的标记。例如,如果用户键入“sales report”,Word 和 Excel 会创建标记“sales”和“report”。同样,如果用户键入“2005sales”,Word 和 Excel 会创建标记“2005”和“sales”。

如果想让智能标记识别包含嵌入空格或组合了字母、数字和符号的字符串,则不要向 Terms 属性添加字符串。而是应该向 Expressions 属性添加说明该字符串的正则表达式,或者创建自己的用于搜索该字符串的识别器。

创建智能标记识别器

若要创建自己的智能标记识别器,请从 SmartTagBaseMicrosoft.Office.Tools.Word.SmartTagMicrosoft.Office.Tools.Excel.SmartTag 派生一个新类,并重写 Recognize 方法。

在实现 Recognize 时,您必须搜索智能标记术语的文本,如果找到智能标记术语,您还必须用 Word 或 Excel 手动注册智能标记。有关如何创建 Visual Studio Tools for Office 智能标记识别器的示例,请参见如何:在 Word 中创建具有自定义识别器的智能标记如何:在 Excel 中创建具有自定义识别器的智能标记

手动注册智能标记的过程取决于派生类的智能标记类。下表列出了注册智能标记的不同选项。

派生类的类

如何注册智能标记

Microsoft.Office.Tools.Word.SmartTag

调用 SmartTag.PersistTag 方法。

Microsoft.Office.Tools.Excel.SmartTag

调用 SmartTag.PersistTag 方法。

SmartTagBase

调用 Recognize 方法的 site 参数的 CommitSmartTag 方法。

site 参数是一个实现 ISmartTagRecognizerSite 接口的对象。当您向项目中添加对 Microsoft Smart Tags 2.0 类型库的引用时,此接口可用。有关更多信息,请参见 MSDN Library 中的智能标记 SDK 文档。

存储和检索属性包中的数据

智能标记可以在键/值对集合(称为属性包)中存储数据。属性包中的每个值和键都是一个字符串。

Visual Studio Tools for Office 智能标记提供了以下两种访问属性包的方式:

有关如何读写属性包的示例,请参见如何:在 Word 中创建具有自定义识别器的智能标记如何:在 Excel 中创建具有自定义识别器的智能标记

正则表达式和属性包

当您将正则表达式分配给 Visual Studio Tools for Office 智能标记时,默认的识别器会将正则表达式中的每个捕获组的键/值对添加到智能标记属性包。

有关演示此行为的示例,请参见 演练:使用文档级自定义项创建智能标记。有关正则表达式中的捕获组的更多信息,请参见分组构造正则表达式类

请参见

任务

如何:在 Word 和 Excel 中启用智能标记

如何:向 Word 文档添加智能标记

如何:向 Excel 工作簿添加智能标记

如何:在 Word 中创建具有自定义识别器的智能标记

如何:在 Excel 中创建具有自定义识别器的智能标记

演练:使用文档级自定义项创建智能标记

演练:使用应用程序级外接程序创建智能标记

概念

智能标记概述