将多个(xml)word文档合并到1个文档

时间:2010-08-31 18:49:29

标签: c# vb.net openxml openxml-sdk

我有一个word文档中的多个<body>标记。 我使用open xml sdk执行此操作。所以新文档应该用openxml

生成

身体来自

WordprocessingDocument.Open("C:\Temp\Test.docx").MainDocumentPart.Document.Body.OuterXml

我在列表中有如此不同的身体。具有不同的价值观。更改了xml中的一些文本。并将它们保存在新列表中。

现在必须在新word文档中列出该列表。我怎样才能做到这一点?我试过altChunk。但我的word文档总是腐败。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您可以使用sdk创建WordDocument。我认为这是

WordProcessingDocument.Create("path_and_name_with_.docx").MainDocumentPart.Document.append(yourBodyList);

你也可以使用SDK工具获取不起作用的结果文档并查看它的XML,或者只是将doc重命名为.zip扩展名,看看为什么它不起作用。

答案 1 :(得分:0)

如果您在没有克隆的情况下从其他文档添加yourbodylist,则此函数将抛出异常。 我们必须为每个body元素使用CloneNode(deep:true)

WordProcessingDocument.Create("path_and_name_with_.docx").MainDocumentPart.Document.append(yourBodyList); 这可能会导致异常。 请参阅此帖:Cannot insert the OpenXmlElement "newChild" because it is part of a tree

CloneNode(true)将创建元素的克隆,而不包含任何对父元素的链接或引用。 并为您的多身体问题。获取每个body的子元素并将其添加到新的Body()元素中。 希望这有帮助!