Как ускорить замену текста в 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы