Я писал этот небольшой драгоценный камень прежде:
//@TODO: Rewrite this, it sucks. Seriously.
Обычно это - хороший знак, что я достиг конца своей сессии кодирования за ночь.
Как построен ваш шаблон? Использует ли он базовую схему XML, загруженную как часть * .docx? Или вы используете элементы управления содержимым вне ленты разработчика, и в этом случае каждый элемент управления однозначно идентифицируется по заданному имени тега? Оба этих подхода упростят идентификацию определенных разделов вашего документа, поскольку вы можете контролировать, где будут располагаться таблицы или абзацы.
Кроме того, вы можете рассмотреть возможность использования Open XML SDK 2.0 (использует .NET 3.5). Он включает удобный инструмент Document Reflector, который позволяет вам открывать и проверять любой документ Open XML и показывает, как сгенерировать код для любого элемента, на который вы нажимаете.
Кроме того, чтобы узнать больше об элементах управления контентом, вы можете проверить их сообщения:
Можете ли вы использовать переменные / поля документа? Просто зайдите в Insert-> Quick Parts-> Fields-> Doc Variable, введите имя переменной.
пример: http://www.codeproject.com/KB/office/Fill_Mergefields.aspx
Вы также можете просто использовать текстовые значения-заполнители, такие как «## insert_first_name ##», а затем выполнить поиск и заменить эти переменные.
Я думаю, вы ищете либо закладки, либо элементы управления содержимым (на вкладке «Разработчик ленты», пример кода здесь )
Я использовал именованные диапазоны в Excel для той же цели.