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

时间:2013-08-13 13:32:08

标签: c# ms-word mailmerge

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

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

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

非常感谢任何建议。

编辑:

以下功能是我用来将数据合并到单词模板上的功能。 Dictionary包含第一个字符串中的字段名称和第二个字符串中的内容。

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

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

            }
        }

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

1 个答案:

答案 0 :(得分:0)

以下是MSDN链接,可帮助您解决问题。

Building a Word Document Using SQL Server Data