word — выделяет результаты поиска без постоянного изменения форматирования документа

#office-js

#office-js

Вопрос:

Я хотел бы выделить результаты поиска аналогично тому, что делает встроенный поиск word. Другими словами, я не хочу, чтобы действие поиска имело побочные эффекты в документе, например, путем изменения цвета шрифта в возвращаемых текстовых диапазонах.

 var searchResults = paragraph.search(searchValue);
context.load(searchResults, { select: 'text, font, style' });
 

желаемая функциональность в Word

Ответ №1:

на данный момент единственный способ реализовать свой сценарий — это просмотреть коллекцию результатов поиска и изменить цвет выделения для каждого диапазона, как я показываю во фрагменте ниже. Чтобы отменить эту операцию, вам нужно снова выполнить поиск и восстановить выделение белым цветом.

 Word.run(function (context) {

            // Queue a command to search the document
            var searchResults = context.document.body.search('string you want to search for');
            context.load(searchResults, 'font');
            return context.sync().then(function () {
                console.log('Found count: '   searchResults.items.length);

                // Queue a set of commands to change the font for each found item.
                for (var i = 0; i < searchResults.items.length; i  ) {
                   
                    searchResults.items[i].font.highlightColor = '#FFFF00'; //Yellow
                   
                }

                return context.sync();
            });
        })
.catch(function (error) {
    console.log('Error: '   JSON.stringify(error));
    if (error instanceof OfficeExtension.Error) {
        console.log('Debug info: '   JSON.stringify(error.debugInfo));
    }
}); 

Комментарии:

1. Проблема в том, что цвет выделения не обязательно белый, поэтому, я думаю, мне нужно отслеживать исходное выделение.

2. знаете ли вы, включено ли выделение результатов поиска в дорожную карту? Немного беспокоит то, что выделение результатов поиска влияет на стек отмены.

3. вы правы, мы действительно скоро добавим поддержку для этого. вы сможете установить для цвета выделения значение «null», чтобы убрать выделение. но это станет общедоступным через несколько месяцев. что касается вашего запроса на выделение результатов поиска, это отличная идея, было бы здорово, если бы вы могли поделиться ею с нашим пользовательским голосовым каналом officespdev.uservoice.com/forums/224641-general/category /…