合并文件

时间:2010-03-17 19:28:30

标签: c# openxml openxml-sdk

我正在尝试使用OpenXML SDK 2.0将两个docx文档合并到一个docx文档中。应该合并文档而不会丢失其样式和自定义页眉和页脚。我希望我可以使用AltChunk和分节符来实现这一点。但我无法让它发挥作用。

我有可能做的事吗?有人能给我一个如何实现这一目标的提示吗?

2 个答案:

答案 0 :(得分:4)

上述答案根本不正确!这完全是AltChunk的设计目标,而且效果很好!

注意:文档不会合并到一个文档中UNTIL Word第一次打开文件(显然必须保存文件或磁盘上的文件不会更新。)

有关如何正确执行此操作的详细信息,请参阅此博客: https://blogs.msdn.com/b/ericwhite/archive/2008/10/27/how-to-use-altchunk-for-document-assembly.aspx?Redirected=true

P.S。至于使用生产力工具检查Open XML,我的意见是只安装官方Visual Studio Open XML插件并从Visual Studio打开Office文档来检查它们,这非常方便! : - )

答案 1 :(得分:1)

使用'Open XML Productivity Tool'我分析了docx文档的结构,并得出结论认为使用Altchunk开箱即用将文档与其样式,页眉,页脚等合并是不可能的。 。您可以从open xml sdk单独下载该工具。

我现在正在做的和正在做的是将所有内容手动复制到文档中,确保所有样式引用,标题引用,页脚引用,...都被保留。这意味着在将它们复制到文档中并将旧ID中的所有引用更改为新id之前,我会给它们一个新的唯一ID。有很多代码可以做到这一点,但上面提到的工具确实有帮助。

添加分节符也很困难。您应该知道SectionProperties - 标记描述了该部分的所有属性,并且SectionProperties - 标记下可以有一个Body标记,用于描述最后一部分的属性。因此,添加新的sectionbreak意味着将最后SectionProperties - 标记复制到该部分的最后一段,并在SectionProperties - 标记下添加新的Body - 标记。我还从生产力工具中获得了大量信息。