Здравствуйте, я автоматизирую документ Word из приложения winforms с помощью C#. Документ содержит несколько полей слияния, которые я заполняю из своего кода. Это отлично работает для фиксированных полей.Создание повторяющихся блоков в текстовом документе с использованием C#
Однако документ содержит несколько повторяющихся разделов, которые повторяются n раз во время выполнения. Может ли кто-нибудь сказать мне, как создать какой-то блок, который можно вставить несколько раз?
Я попытался вставить текст между двумя закладками, однако это испортило форматирование страницы.
Любой совет будет очень благодарен.
Edit:
Функция ниже, что я использую, чтобы объединить данные по шаблону слова. Словарь содержит имя поля в первой строке и содержимое во втором.
Пользователь получает образец шаблона слова со всеми кодами полей в документе и затем может самостоятельно изменять порядок полей и стилей.
public static void CreateBody(Application wApp, Document wDoc, Dictionary<string, string> fieldContent)
{
//Loop through fields in document body.
foreach (Field mergeField in wDoc.Fields)
{
//Find mailmerge fields in the Word document body.
if (mergeField.Type == WdFieldType.wdFieldMergeField)
{
//Get the fieldName from the template file.
string fieldText = mergeField.Code.Text;
string fieldName = GetFieldName(fieldText);
if (fieldContent.ContainsKey(fieldName))
{
mergeField.Select();
if (fieldContent[fieldName] != "")
{
wApp.Selection.TypeText(fieldContent[fieldName]);
}
else
{
//If the field has no content remove the field text from the word file.
wApp.Selection.TypeText(" ");
}
}
}
}
Сейчас я ищу способ, чтобы повторить блок почты слияние полей в шаблоне и их можно вставить несколько раз, один раз для каждой записи.
Просьба указать код, который вы пробовали. –