Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 22.07.2011
Сообщений: 11
1

Как ускорить замену текста в Shapes через Microsoft.Office.Interrop.Word

04.11.2015, 16:06. Показов 2177. Ответов 3

Author24 — интернет-сервис помощи студентам
Добрый день!
Есть способ замены текста в фигурах с надписями документа Word:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 
        {
        }               
    }
}
Работает Очень медленно. Можно ли сделать то же, но быстрее?

Добавлено через 4 часа 20 минут
Нашел другой способ.
Создаю отчет в виде Word-документа, в котором есть простой текст, таблицы, а также схемы, исполненные с помощью фигур с надписями. Для программного заполнения полей отчета и надписей на схеме, луче использовать заметки (Bookmarks).

Добавление заметки в документ Word 2013:
Отмечаем место в документе, затем Вставка -> Ссылки -> Заметки, именуем, добавляем.

Работа с заметкой:
C#
1
2
3
4
private void update_Bookmark(string bookmarkName, string text)
{
    document.Bookmarks[bookmarkName].Range.Text = text;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2015, 16:06
Ответы с готовыми решениями:

Копирование текста из Microsoft Office Word
Добрый день! Подскажите, пожалуйста, как можно скопировать текст из документа Microsoft Office...

Microsoft.Office.Interop.Word поиск текста
Здравствуйте. Есть документ Word. В нем есть текст: Категория возрастная: дети Пол: любой...

HP 2050a - печать текста в Microsoft Office Word
Здравствуйте. Суть проблемы такая. Текст в ворде. Первая часть - обычный текст. Вторая часть -...

Ссылки открываются через Microsoft Office Word, а не Google Chrome
В моем документе PDF есть текстовая гиперссылка и при нажатии страница открывается почему то через...

3
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
06.11.2015, 14:35 2
Цитата Сообщение от Fahrrad Посмотреть сообщение
Работа с заметкой:
C#
1
2
3
4
private void update_Bookmark(string bookmarkName, string text)
{
    document.Bookmarks[bookmarkName].Range.Text = text;
}
После такой работы закладка будет удалена
0
0 / 0 / 0
Регистрация: 22.07.2011
Сообщений: 11
06.11.2015, 16:34  [ТС] 3
Цитата Сообщение от ViterAlex Посмотреть сообщение
После такой работы закладка будет удалена
Спасибо за замечание!
В частности у меня не планируется далее программно использовать заполненный документ, и текст исправно вносится. Лучшего способа заполнения полей документа я пока не нашел.
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
07.11.2015, 02:20 4
Можно ещё через поля и DocVariables.
1
07.11.2015, 02:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2015, 02:20
Помогаю со студенческими работами здесь

Использование Microsoft.Office.Interop.Word на компьютере без установленного пакета MS office
Есть приложение, которое использует Microsoft.Office.Interop.Word, на компах с установленным офисом...

Как установить компонент microsoft.office.interop.word?
Скачал компонент microsoft.office.interop.word Как его установить?

Как подключить библиотеку Microsoft.Office.Tools.Word
Что необходимо сделать, чтобы работала библиотека Microsoft.Office.Tools.Word ??

Как добавить ссылку Microsoft.Office.Interop.Word?
Добрый день, подскажите пожалуйста как добавить ссылку Microsoft.Office.Interop.Word в студию, сам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru