Приложение области задач Office: как выполнять поиск и замену в документе Word?

Мы разрабатываем приложение панели задач Office, которое выполняет поиск определенного текста и заменяет его значениями.

Например, у нас есть текстовый документ вроде:

Total invoice of this year <<thisYear>> is <<totalInvoice>>

В приложении панели задач, когда пользователь нажимает кнопку, приложение должно искать текст, окружающий ‹< >>, и заменять их реальными значениями из данных из Интернета. Результат должен выглядеть так:

Total invoice of this year 2015 is $2,000,078.34

Я новичок в приложении панели задач Office, как мне это сделать?

============== Обновлено =================

Я ничего не делал, кроме запуска демоверсии от MS. Демонстрация показывает, как получить выделенный текст из текстового документа. Это легко понять.

function getDataFromSelection() {
    Office.context.document.getSelectedDataAsync(Office.CoercionType.Text,
        function (result) {
            if (result.status === Office.AsyncResultStatus.Succeeded) {
                app.showNotification('The selected text is:', '"' + result.value + '"');
            } else {
                app.showNotification('Error:', result.error.message);
            }
        }
    );
}

Однако я не нашел ни Find, ни Replace API, кроме этого:

Document API
    Document object
        bindings property
        customXmlParts property
        mode property
        settings property
        url property
        addHandlerAsync method
        getActiveViewAsync method
        getFileAsync method
        getFilePropertiesAsync method
        getSelectedDataAsync method
        goToByIdAsync method
        removeHandlerAsync method
        setSelectedDataAsync method
        ActiveViewChanged event
        SelectionChanged event

person Zach    schedule 29.04.2015    source источник
comment
Пожалуйста, покажите нам, что вы сделали?   -  person DhruvJoshi    schedule 29.04.2015
comment
Я обновил вопрос, @DhruvJoshi, пожалуйста, посмотрите.   -  person Zach    schedule 29.04.2015
comment
Глядя на формулировку бизнес-задачи, я считаю, что для этого вам не нужно приложение, поскольку слияние писем в документе Word делает именно то, что вам нужно.   -  person DhruvJoshi    schedule 29.04.2015


Ответы (1)


Согласно документации MS, вы можете сделать следующее

Применимо к: типам приложений в области контента и панели задач

Для взаимодействия с данными документа в Excel, PowerPoint и Word API предоставляет объект Document. Вы можете использовать члены объекта Document для доступа к данным следующими способами:

  1. Чтение и запись в активные выборки в виде текста, смежных ячеек (матриц) или таблиц.
  2. Табличные данные (матрицы или таблицы).
  3. Привязки (созданные с помощью методов add объекта Bindings).
  4. Пользовательские части XML (только для Word).
  5. Настройки или состояние приложения сохраняются для каждого приложения в документе.

Также чуть ниже сказано

Объект Document поддерживает четыре способа доступа разработчиков к содержимому документа:

  1. Доступ на основе выбора
  2. Доступ на основе привязки
  3. Настраиваемый доступ на основе частей XML (только Word)
  4. Полный доступ на основе документов (только PowerPoint и Word)

В еще одной документации MS объясняет, что выбор является важной частью рабочего процесса приложений. Рабочий процесс

Я считаю, что вашими единственными маршрутами будут:

  1. Попросите пользователя выбрать весь документ, а затем нажмите кнопку, чтобы запустить код замены, вероятно, setSelectedDataAsync методом.
  2. Получите полный документ с помощью метода Document.getFileAsync и замените ‹< .. ›› в коде, а затем создайте новый документ. См. Пример получения всего содержимого здесь.
person DhruvJoshi    schedule 29.04.2015