2013-08-13 1 views
1

Здравствуйте, я автоматизирую документ 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(" ");        
        } 
       } 

      } 
     } 

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

+0

Просьба указать код, который вы пробовали. –

ответ

0

Вот ссылка MSDN, которая поможет вам решить вашу проблему.

Building a Word Document Using SQL Server Data

+0

Сообщения только для ссылок препятствуют переполнению стека. Попытайтесь как минимум суммировать соответствующую информацию со страницы, если URL-адрес будет мертв в будущем. –

+0

Я должен был упомянуть об этом в вопросе. Я не могу использовать строковый писатель. Данные должны перейти в текстовое поле или подобную переменную, поскольку конечный пользователь должен иметь возможность редактировать файл шаблона. Как изменить форматирование, так и порядок некоторых полей. –