合并多个(xml) word 文档到 1 个文档
我的 Word 文档中有多个 标签。 我使用 open xml sdk 来完成此操作。因此,新文档应该使用 openxml 生成。
正文来自
WordprocessingDocument.Open("C:\Temp\Test.docx").MainDocumentPart.Document.Body.OuterXml
我在列表中有如此不同的正文。具有不同的价值观。更改了 xml 中的一些文本。并将它们保存在一个新列表中。
现在必须将该列表放入新的 Word 文档中。我怎样才能做到这一点?我尝试过 altChunk。但我的word文档总是损坏。
有人可以帮助我吗?
I have multiple <body>
tags from an word document.
I do this with the open xml sdk. So the new document should generated with openxml
The body's comes from
WordprocessingDocument.Open("C:\Temp\Test.docx").MainDocumentPart.Document.Body.OuterXml
I have so different body's in a list. With al different values. Changed some text in the xml. And saved them in a new list.
Now must that list in an new word document. How can i do that? I tried altChunk. But my word document is always corrupt.
Somebody that can help me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 sdk 创建 WordDocument。我认为
您还可以获取不起作用的结果文档,并使用 SDK 工具查看它的 XML,或者只是将文档重命名为 .zip 扩展名,然后查看它不起作用的原因。
You can create a WordDocument using the sdk. I think it's
You could also take the resulting documents that don't work and look at it's XML using the SDK tool or just rename the doc to .zip extension and see why it doens't work.
如果您从另一个文档添加您的bodylist而不进行克隆,则此函数将引发异常。
我们必须对每个主体元素使用
CloneNode(deep:true)
。WordProcessingDocument.Create("path_and_name_with_.docx").MainDocumentPart.Document.append(yourBodyList);
这可能会导致异常。
请参阅这篇文章: 无法插入 OpenXmlElement “newChild”,因为它是树的一部分
CloneNode(true) 将创建元素的克隆,并且没有任何对父元素的链接或引用。
对于您的多身体问题。获取每个 body 的子元素并将其添加到新的 Body() 元素中。
希望这有帮助!
This function will throw exception if you are adding yourbodylist from another document without cloning.
We have to use
CloneNode(deep:true)
for each body elements.WordProcessingDocument.Create("path_and_name_with_.docx").MainDocumentPart.Document.append(yourBodyList);
This might cause exception.
Refer this post: Cannot insert the OpenXmlElement "newChild" because it is part of a tree
CloneNode(true) will create clone of the element and without any links or references to the parent.
And for your multi Body problem. get the child elements of each body and add it to a new Body() element.
Hope this helps!