智能标记概述

智能标记是一些附带有类型信息的文本字符串;当文档中出现符合条件的文本字符串时,该字符串就会被识别出来,然后用户可以执行适用于该字符串类型的操作。 例如,您可以创建用于识别股票代码的智能标记。 当用户键入包含四个字母的大写字符串时,可以提供一个与股票有关的操作(如在 Internet 上查找股票价格)的列表。

**适用于:**本主题中的信息适用于 Excel 2007 和 Word 2007 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能

Visual Studio 中的 Office 开发工具提供了一些 API,可用来快速将智能标记添加到 Microsoft Office Word 文档和 Microsoft Office Excel 工作簿。 有关演示如何使用这些类的示例,请参见如何:向 Word 文档添加智能标记如何:向 Excel 工作簿添加智能标记

若要运行智能标记,最终用户必须在 Word 或 Excel 中启用智能标记。 有关更多信息,请参见如何:在 Word 和 Excel 中启用智能标记

若要为 Word 或 Excel 以外的其他应用程序创建智能标记,必须使用智能标记 SDK。 有关更多信息,请参见在 Word 和 Excel 以外的其他应用程序中创建智能标记。

重要说明重要事项

在 Excel 2010 和 Word 2010 中已弃用智能标记。 虽然您仍可以在 Excel 2010 和 Word 2010 的项目中使用相关 API,但这些应用程序不会自动识别项,并且已识别的项也不再带有下划线。 用户必须通过右击文本并单击上下文菜单上的“其他操作”,才能触发识别功能并查看与文本关联的自定义操作。 有关 Word 2010 中的此更改的更多信息,请访问 https://go.microsoft.com/fwlink/?LinkId=178847。 有关 Excel 2010 中的此更改的更多信息,请参见 https://go.microsoft.com/fwlink/?LinkId=197379

使用 Visual Studio 中的 Office 开发工具创建的智能标记的功能

在 Word 或 Excel 的项目中编写智能标记的代码时,可以使用 IntelliSense、集成帮助以及 Visual Studio 的其他功能。 智能标记的所有代码都属于一个类;您不必创建单独的操作类和识别器类。 有关智能标记类的更多信息,请参见智能标记的结构

文档作用域

使用 Visual Studio 中的 Office 开发工具创建的智能标记的行为方式与文档级项目和应用程序级项目不同。

如果在文档级自定义项中创建智能标记,则该智能标记只在属于此自定义项的文档中运行,而不是在所有打开的 Word 或 Excel 文档中都运行。 这意味着,如果将智能标记应用于多种文档,您将能识别可能太过普通而无法识别的文本。 例如,五位数的数字在发票中可能只表示产品编号,但在人力资源文档中它可能表示雇员编号。 如果智能标记仅在发票中起作用,则无需担心智能标记会错误地识别这五位数而将操作分配给一个雇员编号。

如果您在应用程序级外接程序中创建智能标记,可以使智能标记仅可供某个特定文档使用,或者使它可供在 Word 或 Excel 中打开的每个文档使用(这类智能标记也称为“应用程序级智能标记”)。

部署与注册

不同于使用智能标记 SDK 创建的智能标记,使用 Visual Studio 中的 Office 开发工具创建的智能标记不需要单独进行部署或注册。 此外,也无需专门为智能标记设置安全策略;这些标记将在为解决方案设置安全性时运行。

在 Word 和 Excel 以外的其他应用程序中创建智能标记

只能在 Word 和 Excel 的项目中使用由 Visual Studio 中的 Office 开发工具提供的智能标记类。 不过,其他 Office 应用程序也支持智能标记,例如 PowerPoint 和 Outlook(当 Word 作为电子邮件编辑器使用时)。 若要为这些应用程序创建智能标记,必须使用智能标记 SDK。 此过程包括以下两个主要步骤:

  1. 创建实现必需的 ISmartTagRecognizerISmartTagAction COM 接口的智能标记 DLL(托管程序集或非托管 DLL)。

  2. 将智能标记 DLL 部署到最终用户的计算机上,并创建使 Microsoft Office 应用程序能够发现该智能标记 DLL 的必需的注册表项。

有关更多信息,请参见 MSDN Library 中的智能标记 SDK 文档。

通常情况下,不应在使用 Visual Studio 中的 Office 项目模板之一创建的外接程序中实现智能标记 COM 接口。 而应在其他程序集或非托管 DLL 中实现它们。 否则,会将冗余代码加载到内存中,因为 Office 应用程序会加载两次外接程序程序集:在应用程序加载外接程序时加载一次,在应用程序发现并加载系统上安装的智能标记 DLL 时再加载一次。 外接程序程序集的每个实例将加载到单独的应用程序域中。

请参见

任务

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

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

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

如何:在 Word 和 .NET Framework 3.5 中使用自定义识别器创建智能标记

如何:在 Excel 和 .NET Framework 3.5 中使用自定义识别器创建智能标记

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

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

概念

智能标记的结构

其他资源

Office UI 自定义