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


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

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

Применение

Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office.

Тип проекта

  • Проекты уровня документа

Версия Microsoft Office

  • Word 2003

  • Word 2007

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

В этом пошаговом руководстве демонстрируется создание смарт-тега в настройке уровня документа для Word. Смарт-тег распознает строки, содержащие значения температуры по Фаренгейту. Смарт-тег включает действие, которое преобразует значение в температуру по Цельсию и заменяет распознанный текст на строку, представляющую значение температуры по Цельсию.

Чтобы обеспечить работу данного смарт-тега, конечные пользователи должны включить поддержку смарт-тегов в приложении Word. Дополнительные сведения см. в разделе Практическое руководство. Разрешение смарт-тегов в Word и Excel.

В данном пошаговом руководстве рассмотрены следующие задачи:

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

  • Создание действия, которое извлекает данные из смарт-тега и модифицирует распознанный смарт-тегом текст.

ms268701.alert_note(ru-ru,VS.90).gifПримечание.

На компьютере могут отображаться имена или расположения некоторых элементов пользовательского интерфейса Visual Studio, отличающиеся от указанных в дальнейших инструкциях. Эти элементы определяются используемой версией Visual Studio и ее параметрами. Дополнительные сведения см. в разделе Параметры Visual Studio.

Обязательные компоненты

Для выполнения инструкций данного пошагового руководства необходимы следующие компоненты:

  • Visual Studio Tools for Office (необязательный компонент Visual Studio 2008 Professional и Visual Studio Team System).

  • Microsoft Office Word 2003 или Microsoft Office Word 2007.

Visual Studio Tools for Office устанавливается по умолчанию с перечисленными версиями Visual Studio. Чтобы проверить, установлен ли данный набор средств, см. раздел Установка средств Visual Studio для Office.

Создание нового проекта

Для начала следует создать проект документа Word.

Создание нового проекта

Visual Studio откроет новый документ Word в режиме конструктора и добавит проект Мой смарт-тег в Обозреватель решений.

Настройка проекта

Проект должен содержать ссылку на библиотеку DLL смарт-тега и использовать регулярные выражения.

Настройка проекта

  1. В меню Проект выберите команду Добавить ссылку.

  2. На вкладке COM выберите Microsoft Smart Tags 2.0 Type Library и нажмите кнопку ОК.

  3. В Обозревателе решений щелкните правой кнопкой мыши файл ThisDocument.vb (для Visual Basic) или ThisDocument.cs (для C#) и выберите в меню пункт Просмотреть код.

  4. Добавьте следующую строку в начало файла.

     [Visual Basic]
    Imports System.Text.RegularExpressions
    
    using System.Text.RegularExpressions;
    

Создание смарт-тега

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

Создание смарт-тега

  1. Замените обработчик событий ThisDocument_Startup класса ThisDocument следующим кодом. Этот код создает SmartTag, представляющий смарт-тег Visual Studio Tools for Office и добавляет регулярное выражение к списку терминов, распознаваемых смарт-тегом.

    WithEvents action1 As Microsoft.Office.Tools.Word.Action
    
    Private Sub ThisDocument_Startup(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles Me.Startup
    
        Dim smartTag1 As New Microsoft.Office.Tools.Word.SmartTag( _
            "www.microsoft.com/Demo#DemoSmartTag", _
            "Demonstration Smart Tag")
    
        smartTag1.Expressions.Add( _
            New Regex("(?'number'[+-]?\b[0-9]+)?\s?(F|f)\b"))
    
    private Microsoft.Office.Tools.Word.Action action1;
    
    private void ThisDocument_Startup(object sender, System.EventArgs e)
    {
        Microsoft.Office.Tools.Word.SmartTag smartTag1 =
            new Microsoft.Office.Tools.Word.SmartTag(
            "www.microsoft.com/Demo#DemoSmartTag",
            "Demonstration Smart Tag");
    
        smartTag1.Expressions.Add(new Regex(
            @"(?'number'[+-]?\b[0-9]+)?\s?(F|f)\b"));
    
  2. Создайте новое действие Action и добавьте его к свойству Actions смарт-тега. Действие Action представляет собой элемент, который пользователь может выбрать в меню смарт-тега.

    action1 = New Microsoft.Office.Tools.Word.Action( _
        "Convert to Celsius")
    
    smartTag1.Actions = _
        New Microsoft.Office.Tools.Word.Action() {action1}
    
    action1 = new Microsoft.Office.Tools.Word.Action(
        "Convert to Celsius");
    
    smartTag1.Actions = new
        Microsoft.Office.Tools.Word.Action[] {action1};
    
  3. Присоедините смарт-тег к документу путем добавления SmartTag к свойству VstoSmartTags. В C# присоедините обработчик событий к событию Click действия.

        Me.VstoSmartTags.Add(smartTag1)
    End Sub
    
        this.VstoSmartTags.Add(smartTag1);
    
        action1.Click += new
            Microsoft.Office.Tools.Word.ActionClickEventHandler(
            action1_Click);
    }
    

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

Обработчик событий извлекает значение температуры по шкале Фаренгейта, используя ключ number, который находится в контейнере свойств смарт-тега. Затем обработчик событий преобразует значение температуры по Фаренгейту в температуру по Цельсию и заменяет распознанную строку.

В этом примере ключ number идентифицирует захватывающую группу из регулярного выражения, назначенного смарт-тегу. Дополнительные сведения о контейнерах свойств и регулярных выражениях в смарт-тегах Visual Studio Tools for Office см. в разделе Архитектура смарт-тега.

Создание обработчика событий

  • Скопируйте в класс ThisDocument следующий код.

    Private Sub action1_Click(ByVal sender As Object, _
        ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
        Handles action1.Click
    
        Dim value As String = e.Properties.Read("number")
        Dim fahrenheit As Double = System.Convert.ToDouble(value)
        Dim celsius As Integer = Fix(fahrenheit - 32) * 5 / 9
        e.Range.Text = celsius.ToString() + "C"
    End Sub
    
    void action1_Click(object sender,
        Microsoft.Office.Tools.Word.ActionEventArgs e)
    {
        string value = e.Properties.get_Read("number");
        double fahrenheit = System.Convert.ToDouble(value);
        int celsius = (int)(fahrenheit - 32) * 5 / 9;
        e.Range.Text = celsius.ToString() + "C";
    }
    

Проверка работы приложения

Теперь можно проверить работу документа, чтобы убедиться, что смарт-тег преобразовывает температуру по шкале Фаренгейта в температуру по шкале Цельсия.

Проверка рабочей книги

  1. Необходимо включить поддержку смарт-тегов в Word.

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

  2. Нажмите клавишу F5 для запуска проекта.

  3. Введите строку, которая соответствует регулярному выражению смарт-тега, например, 60F, 60° F или 60 F.

    ms268701.alert_note(ru-ru,VS.90).gifПримечание.

    Чтобы ввести символ градусов (°), нажмите и удерживайте клавишу ALT и наберите на цифровой клавиатуре 248.

  4. Щелкните значок смарт-тега, который отображается над распознанной строкой, и затем выберите пункт меню Convert to Celsius.

  5. Убедитесь, что исходная строка заменена на новую (т.е. на значение температуры по шкале Цельсия).

См. также

Задачи

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

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

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

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

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

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

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

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

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