Word打开文件时发现不可读的内容错误

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

我遇到错误“ Word在abc.docx中发现了不可读的内容。您要恢复此文档的内容吗?”,同时打开Word(.docx)文件。

我已经尝试了Internet上提供的所有解决方案,但没有成功。下面是我将内容写入流中的代码。

using (MemoryStream editingMemoryStream = new MemoryStream())
{
    dailyTemplate.Position = 0;
    dailyTemplate.CopyTo(editingMemoryStream);
    editingMemoryStream.Position = 0;

    using (WordprocessingDocument newDoc = WordprocessingDocument.Open(editingMemoryStream, true))
    {
        WP.Body templateBody = newDoc.MainDocumentPart.Document.Body;
        var main = newDoc.MainDocumentPart;
        //* some code is here*//

        var clone = templateBody.CloneNode(true);
        parent.Document.Body.AppendChild(new WP.Paragraph(new WP.Run(clone)));
        parent.Document.Save();
    }
}

该文件包含2个带有一些标签的表。

c# openxml asp.net-core-2.1 openxml-sdk memorystream
1个回答
0
投票

[看一下您的代码,好像您要在以下两行代码中将w:body元素(Body实例)添加到w:r元素(Run实例):

var clone = templateBody.CloneNode(true);
parent.Document.Body.AppendChild(new WP.Paragraph(new WP.Run(clone)));

在上面的摘录中,clone是具有其所有子元素的Body实例(w:body元素)。我只能假设parent是其他MainDocumentPartWordprocessingDocument。您要为新的Paragraphw:p)附加一个w:rRun)和一个w:bodyBody),并为其附加子项。这是无效的Open XML,很可能是Word抱怨的原因。

© www.soinside.com 2019 - 2024. All rights reserved.