打开 XML:如何将现有的 WordprocessingDocument 保存到 MemoryStream?

问题描述 投票:0回答:1

在我的课堂上,我收到一个

WordprocessingDocument
对象作为另一个方法的返回。我知道该文档是在内存中创建的 (
MemoryStream
)。

现在,我需要获取此

MemoryStream
对象的底层
WordprocessingDocument
,或者将其重新保存到新的
MemoryStream

我需要它作为

MemoryStream
,这样我就可以将它转移到我们的存储库。

如何访问底层

MemoryStream
,或将对象重新保存到新的
MemoryStream

c# openxml memorystream
1个回答
1
投票

您可以将

WordprocessingDocument
克隆到新的
MemoryStream
中,如下所示:

static MemoryStream CloneWordprocessingDocument(WordprocessingDocument document)
{
    MemoryStream memStream = new MemoryStream();
    document.Clone(memStream,true);
    memStream.Position = 0;
    return memStream;
}

我用下面的控制台项目测试了它:

class Program
{
    static void Main()
    {
        WordprocessingDocument wordDocument = WordprocessingDocument.Open("Test.docx", true);

        // Clone the WordprocessingDocument to a MemoryStream
        MemoryStream clonedStream = CloneWordprocessingDocument(wordDocument);

        File.WriteAllBytes("Final.docx", clonedStream.ToArray());
    }

    static MemoryStream CloneWordprocessingDocument(WordprocessingDocument document)
    {
        MemoryStream memStream = new MemoryStream();
        document.Clone(memStream,true);
        memStream.Position = 0;
        return memStream;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.