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