C# 使用c在word文档中创建重复块

C# 使用c在word文档中创建重复块,c#,ms-word,mailmerge,C#,Ms Word,Mailmerge,您好,我正在使用c从winforms应用程序自动生成word文档。该文档包含许多我从代码中填充的邮件合并字段。这适用于固定字段 但是,文档包含一些在运行时重复n次的重复部分。有人能告诉我如何创建一个可以多次插入的块吗 我曾尝试在两个书签之间插入文本,但这会弄乱页面格式 任何建议都将不胜感激 编辑: 下面的函数是我用来将数据合并到word模板的函数。字典在第一个字符串中保存字段名,在第二个字符串中保存内容 用户将获得一个包含文档中所有字段代码的示例word模板,然后可以自己更改字段顺序和样式 pu

您好,我正在使用c从winforms应用程序自动生成word文档。该文档包含许多我从代码中填充的邮件合并字段。这适用于固定字段

但是,文档包含一些在运行时重复n次的重复部分。有人能告诉我如何创建一个可以多次插入的块吗

我曾尝试在两个书签之间插入文本,但这会弄乱页面格式

任何建议都将不胜感激

编辑:

下面的函数是我用来将数据合并到word模板的函数。字典在第一个字符串中保存字段名,在第二个字符串中保存内容

用户将获得一个包含文档中所有字段代码的示例word模板,然后可以自己更改字段顺序和样式

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(" ");                            
                    }
                }

            }
        }

现在,我正在寻找一种方法,在模板中重复一组邮件合并字段,并将它们插入多次,每个记录插入一次。

下面是帮助您解决问题的MSDN链接


堆栈溢出时不建议使用仅链接的帖子。至少试着总结一下页面上的相关信息,以防URL在将来失效。我应该在问题中提到这一点。我不能使用字符串编写器。数据需要转到word字段或类似变量,因为最终用户需要能够编辑模板文件。更改某些字段的格式和顺序。请显示一些您尝试过的代码。