Проблема с использованием Interop Range.Find, когда диапазон содержит таблицу - PullRequest
0 голосов
/ 13 сентября 2011

Я пытаюсь написать надстройку слова (с C #), которая ищет в документе все вхождения определенных фрагментов текста и вносит некоторые изменения в найденные фрагменты текста.

Я создал цикл, который использует Range.Find, чтобы получить все диапазоны в документе, которые содержат фрагмент текста, и использовать объекты диапазона, которые он возвращает, чтобы выполнить манипуляции позже. Однако возникает проблема, когда в документе есть таблица.

В моей первой попытке это я просто продолжал создавать новый диапазон, от конца моего последнего найденного вхождения до конца документа, а затем снова искать в этом новом диапазоне, пока он не вернет найденные значения. Когда я сделал это с документом, содержащим таблицу, он просто застрял внутри таблицы и создал бесконечный цикл.

Затем я нашел эту статью: http://www.codeproject.com/KB/office/wordaddinpart1.aspx, и при использовании функции Find, описанной в статье, она успешно продолжается через таблицу, но, к сожалению, не может успешно получить все значения в этой таблице, что Мне нужно это сделать.

У кого-нибудь есть советы по решению этой проблемы? Я видел пару людей, говорящих о наличии этой проблемы, но без решений.

1 Ответ

0 голосов
/ 13 сентября 2011

Я бы предложил для этого использовать OpenXml SDK.Офисное взаимодействие - это пережиток.Вот статья, которая объясняет, как использовать OpenXml SDK для поиска в документе Word:

http://msdn.microsoft.com/en-us/library/bb508261.aspx

Вот SO вопрос, в котором обсуждается, как заменить изображение в документе Word с помощью OpenXmlSDK:

Заменить изображение в документе Word, используя OpenXML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...