如何修改DocX文件并使用OpenXML SDK保存到其他位置?

时间:2013-12-05 15:36:14

标签: openxml openxml-sdk

我想使用OpenXML SDK 2.0执行以下操作:

  1. 打开A.docx
  2. 修改文档
  3. 将修改后的文档另存为B.docx
  4. A& B将是方法的参数,它们可以是相同的。假设它们不相同,则根本不应修改A.

    我看不到“SaveAs”方法,实际上`WordprocessingDocument'类似乎并不支持文件位置的概念。

    我该怎么做?

2 个答案:

答案 0 :(得分:2)

我使用内存流并将其传递给WordprocessingDocument.Open方法。在我完成文档更改后,我只是将字节写入目标:

var source = File.ReadAllBytes(filename);
using (var ms = new MemoryStream()) {
    ms.Write(source, 0, source.Length);
    /* settings defined elsewhere */
    using (var doc = WordprocessingDocument.Open(ms, true, settings)) {
        /* do something to the doc */
    }
    /* used in File.WriteAllBytes elsewhere */
    return ms.ToArray();
}

答案 1 :(得分:1)

已经给出的答案

+1 ......

这是一篇MSDN文章,讨论如何使用内存中的Open XML文档。我认为你会发现它是相关的。

http://msdn.microsoft.com/en-us/library/office/ee945362.aspx