Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 1
Регистрация: 08.01.2014
Сообщений: 60
1

OpenXML и замена закладок в Word

13.03.2014, 12:07. Показов 2889. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, требуется заменять закладки в файле docx, использовать interop не хочется, так как очень уж медленная эта штука. Смотрю в сторону openxml, для excel есть сторонняя библиотека EPPlus, но она работает только с excel. Для Word пришлось скачать библиотеку от MS. Повозился, в результате получилось сделать поиск и замену содержимого в закладках.

Правда есть пара НО:
1) При использовании interop сами закладки убираются и остается только замененный текст, а в случае с openxml закладки остаются
2) При использовании interop форматирование остается каким и было до замены, а в случае с openxml шрифт и размер меняются....

Действую следующим образом:
1) Создаю словарь
2) В словарь заношу все закладки
3) Если имеется нужная мне закладка ее заменяю

Вот как я меняю текст в закладке:
C#
1
2
3
4
5
6
7
8
9
10
11
private void ReplaceInBookmark(BookmarkStart bookmarkStart, string text)
        {
            OpenXmlElement elem = bookmarkStart.NextSibling();
            while (elem != null && !(elem is BookmarkEnd))
            {
                OpenXmlElement nextElem = elem.NextSibling();
                elem.Remove();
                elem = nextElem;
            }
            bookmarkStart.Parent.InsertAfter<Run>(new Run(new Text(text)), bookmarkStart);
        }
Вопрос:

Как сохранить форматирование и удалить саму закладку оставив только замененный текст?

Прошу помощи у знающих, т. к. объем документов для замены около нескольких тысяч, требуется постоянно, и ждать пока interop все сделает нет ни времени ни желания.

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2014, 12:07
Ответы с готовыми решениями:

Получение номера абзаца OpenXML word
Есть документ Word и в нём много пронумерованных абзацев. Подскажите как получить номер абзаца?

Экспорт таблицы DataGridView в Word используя OpenXml SDK
Бодрого времени суток! Есть форма, на которой добавляются в грид строки, необходимо данные этого...

Программное создание закладок в документе Word
Всем здравствуйте. Подскажите пожалуйста как можно программно добавлять в документ word...

Замена текста в колонтитулах Word-a
Приветствую, Друзья! Есть код который находит и заменяет текст в вордовском документе. Но он не...

0
13.03.2014, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2014, 12:07
Помогаю со студенческими работами здесь

Замена текста в закладках Word
Есть 2 ворд документа с идентичными закладками. Пытаюсь в цикле текст закладок из первого документа...

Замена слов по шаблону Word (C#)
Всем добрый вечер! Помогите плз. Есть Ворд файл: Спарвка1.doc. В нем расставлены метки, например...

Некорректно производится замена в документе Word
Вот так работает: wordSearchReplace(&quot;папа&quot;, &quot;мама&quot;, ref wordApp, 20);//заменяет слова &quot;папа&quot; на...

Interop.Word, замена ключевых слов в документе
Здравствуйте. VisualStudio 2008, Office 2007, никак не могу реализовать замену ключевых слов в...


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

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