C# OpenXml、Word和C

C# OpenXml、Word和C,c#,openxml,C#,Openxml,这是我的问题:我正在尝试使用OpenXml和C执行邮件合并。为此,我必须创建一个Word文档,该文档的页数与我的数据集中的行数相同。我的数据集是一个CSV文件 我创建了一个新文档,并尝试在该文档的每一页上复制我的模板。不幸的是,只有第一页的格式正确,我的模板被复制到了上面。为了复制,我使用了InnerXml,我正试图将其从模板复制到新word文档的每一页 我知道我的问题来自我的指示,但我不知道如何解决它 这是我的密码: string fileName = @"MyTemplate"; using

这是我的问题:我正在尝试使用OpenXml和C执行邮件合并。为此,我必须创建一个Word文档,该文档的页数与我的数据集中的行数相同。我的数据集是一个CSV文件

我创建了一个新文档,并尝试在该文档的每一页上复制我的模板。不幸的是,只有第一页的格式正确,我的模板被复制到了上面。为了复制,我使用了InnerXml,我正试图将其从模板复制到新word文档的每一页

我知道我的问题来自我的指示,但我不知道如何解决它

这是我的密码:

string fileName = @"MyTemplate";
using (WordprocessingDocument pkgDoc = WordprocessingDocument.Open(fileName, true))
{
    pkgDoc.ChangeDocumentType(DocumentFormat.OpenXml.WordprocessingDocumentType.Document);
    var test = (pkgDoc.MainDocumentPart.RootElement.InnerXml);

    string filenamecible = @"@MyNewWordDocument";

    using (WordprocessingDocument package = WordprocessingDocument.Create(filenamecible, WordprocessingDocumentType.Document))
    {
        MainDocumentPart mainPart = package.AddMainDocumentPart();

        //Create DOM tree for simple document. 

        mainPart.Document = new Document();

        for (int i = 0; i < csvline.Count; i++)
        {
            mainPart.RootElement.InnerXml = test;
            var x = new Break() { Type = BreakValues.Page };;
            mainPart.Document.Append(x);
            mainPart.Document.Save();
        }

        package.MainDocumentPart.Document.Save();
    }

}

如果有人遇到同样的问题,我会找到解决方案,代码如下:

string fileName = @"MyTemplate";
using (WordprocessingDocument pkgDoc = WordprocessingDocument.Open(fileName, true))
{
    pkgDoc.ChangeDocumentType(DocumentFormat.OpenXml.WordprocessingDocumentType.Document);
    var test = (pkgDoc.MainDocumentPart.RootElement.InnerXml);

string filenamecible = @"@MyNewWordDocument";

using (WordprocessingDocument package = WordprocessingDocument.Create(filenamecible, WordprocessingDocumentType.Document))
{
    MainDocumentPart mainPart = package.AddMainDocumentPart();

    //Create DOM tree for simple document. 

    mainPart.Document = new Document();

    for (int i = 0; i < csvline.Count; i++)
    {
         var x = new Break() { Type = BreakValues.Page };
         Body b = new Body(test);
         mainPart.Document.Append(b);
         mainPart.Document.Append(x);
         mainPart.Document.Save();
    }

    package.MainDocumentPart.Document.Save();
}

}

问题是什么?解决方案是什么?你两个都没提到。你也应该使用描述性标题。我在段落中说过。我得到了一个CSV文件,我想创建一个Word文档,其中包含的页数与CSV文件中的行数相同。此外,因为我正在执行邮件合并功能,所以我必须在新文档的每一页中复制模板Word。我的单词模板是你好X先生,你出生在X。。。其想法是创建一个新的Word文档,其中包含Hello先生X,您出生在X的每个页面中。页面数与csv文件行数相同。