Поделиться через


Архитектура смарт-тега

Обновлен: Ноябрь 2007

Применение

Сведения, приведенные в данном разделе, относятся только к указанным проектам 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.SmartTag и Microsoft.Office.Tools.Excel.SmartTag. До тех пор пока не требуется создавать собственный распознаватель смарт-тегов, можно использовать экземпляры этих классов во время добавления смарт-тегов в документ.

Класс SmartTagBase выполняет следующие функции.

  • Свойства Terms и Expressions, которые содержат узнаваемые термины для смарт-тегов. Чтобы задать простую строку, добавьте ее в свойство Terms. Чтобы задать сложную строку, добавьте регулярное выражение, описывающее строку, в свойство Expressions.

  • Свойство Actions, содержащее действия, выполняемые при выборе смарт-тега пользователем.

  • Распознаватель смарт-тегов по умолчанию, который сравнивает пользовательский ввод с содержимым свойств Terms и Expressions.

Действия

Когда пользователь выбирает смарт-тег, он может выполнить одно или несколько действий, специфичных для данного смарт-тега. Каждое действие представлено экземпляром класса Microsoft.Office.Tools.Word.Action или Microsoft.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 анализируют строки, содержащие внедренные пробелы, или строки, содержащие буквы, числа и символы, и разделяют их на отдельные маркеры. Например, если пользователь ввел "отчет по продажам", Word и Excel создадут маркеры "продажам" и "отчет". Аналогично, если пользователь ввел "продажи2005", Word и Excel создадут маркеры "продажи" и "2005".

Если требуется, чтобы смарт-тег распознавал строку, содержащую встроенные пробелы или строку с сочетанием букв, чисел и символов, не добавляйте строку в свойство Terms. Вместо этого добавьте регулярное выражение, которое описывает строку, в свойство Expressions или создайте собственный распознаватель, который будет выполнять поиск строки.

Создание распознавателя смарт-тегов

Чтобы создать свой собственный распознаватель смарт-тегов, унаследуйте новый класс от SmartTagBase, Microsoft.Office.Tools.Word.SmartTag или Microsoft.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

Вызовите метод CommitSmartTag параметра site метода Recognize.

Параметр site является объектом, реализующим интерфейс ISmartTagRecognizerSite. Интерфейс доступен после добавления ссылки на библиотеку типов Microsoft Smart Tags 2.0 в проект. Дополнительные сведения см. в документации Smart Tag SDK в библиотеке MSDN.

Сохранение данных в контейнер свойств и извлечение данных из него

Смарт-теги могут хранить данные в коллекции пар "ключ-значение", которые известны под названием "контейнер свойств". Каждое значение и ключ в контейнере свойств является строкой.

Смарт-теги Visual Studio Tools for Office предоставляют два способа доступа к контейнеру свойств.

  • Можно обработать события Click или BeforeCaptionShow класса Microsoft.Office.Tools.Word.Action или Microsoft.Office.Tools.Excel.Action и использовать свойство Properties параметра аргумента события для записи или чтения из контейнера свойств смарт-тегов. Свойство Properties возвращает объект, реализующий интерфейс ISmartTagProperties. Интерфейс ISmartTagProperties доступен после добавления ссылки на библиотеку типов Microsoft Smart Tags 2.0 в проект.

  • Можно реализовать метод Recognize в классе, который является производным от класса SmartTagBase, Microsoft.Office.Tools.Word.SmartTag или Microsoft.Office.Tools.Excel.SmartTag. Параметр site данного метода предоставляет метод GetNewPropertyBag, возвращающий объект ISmartTagProperties, который можно использовать для записи или чтения из контейнера свойств смарт-тегов.

Примеры записи в контейнер свойств и считывания из него в см. в разделах Практическое руководство. Создание в приложении Word смарт-тегов с настраиваемыми распознавателями и Практическое руководство. Создание смарт-тегов с настраиваемыми распознавателями в Excel.

Регулярные выражения и контейнер свойств

После назначения регулярного выражения смарт-тегу Visual Studio Tools for Office, распознаватель по умолчанию, добавляет пару "код-значение" для каждой захваченной группы регулярного выражения в контейнер свойств смарт-тега.

Пример, демонстрирующий это, см. в разделе Пошаговое руководство. Создание смарт-тега с помощью настройки уровня документа.. Дополнительные сведения о захваченных группах в регулярных выражениях, см. в разделах Конструкции группирования и Классы регулярных выражений.

См. также

Задачи

Практическое руководство. Разрешение смарт-тегов в Word и Excel

Практическое руководство. Добавление смарт-тегов в документы Word

Практическое руководство. Добавление смарт-тегов в книги Excel

Практическое руководство. Создание в приложении Word смарт-тегов с настраиваемыми распознавателями

Практическое руководство. Создание смарт-тегов с настраиваемыми распознавателями в Excel

Пошаговое руководство. Создание смарт-тега с помощью настройки уровня документа.

Пошаговое руководство. Создание смарт-тега с помощью надстройки уровня приложения

Основные понятия

Общие сведения о смарт-тегах