Как ускорить замену текста в Shapes через Microsoft.Office.Interrop.Word - C#
Формулировка задачи:
Добрый день!
Есть способ замены текста в фигурах с надписями документа Word:
Работает Очень медленно. Можно ли сделать то же, но быстрее?
private void replace_Str_Shape(object strToFindObj, object replaceStrObj) { object replaceTypeObj = Word.WdReplace.wdReplaceAll; for (int i = 1; i <= document.Shapes.Count; i++) { try { document.Shapes[i].TextFrame.TextRange.Find.Execute(strToFindObj, missingObj, missingObj, missingObj, missingObj, missingObj, missingObj, missingObj, missingObj, replaceStrObj, replaceTypeObj, missingObj, missingObj, missingObj, missingObj); } catch { } } }
Нашел другой способ.
Создаю отчет в виде Word-документа, в котором есть простой текст, таблицы, а также схемы, исполненные с помощью фигур с надписями. Для программного заполнения полей отчета и надписей на схеме, луче использовать заметки (Bookmarks).
Добавление заметки в документ Word 2013:
Отмечаем место в документе, затем Вставка -> Ссылки -> Заметки, именуем, добавляем.
Работа с заметкой:
private void update_Bookmark(string bookmarkName, string text) { document.Bookmarks[bookmarkName].Range.Text = text; }
Решение задачи: «Как ускорить замену текста в Shapes через Microsoft.Office.Interrop.Word»
textual
Листинг программы
private void update_Bookmark(string bookmarkName, string text) { document.Bookmarks[bookmarkName].Range.Text = text; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д