我正在尝试复制 docx 文件内容并使用 C# 中的 OpenXML 将它们保存在同一个文件中
这是代码:
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(wordFileNamePath, true))
{
foreach(OpenXmlElement element in wordDoc.MainDocumentPart.Document.ChildElements)
{
OpenXmlElement cloneElement = (OpenXmlElement)element.Clone();
wordDoc.MainDocumentPart.Document.Append(cloneElement);
}
wordDoc.MainDocumentPart.Document.Save();
}
代码运行良好,可以满足我的需要。我的问题是生成的 docx 文件已部分损坏。当我打开我的文件时,我收到以下两条消息:
单击“确定”然后单击“是”将正常打开文件。但是,该文件一直被损坏,直到我“另存为”它(使用相同或不同的名称)。这就是新保存的文件变得固定的方式。
通过使用适用于 Microsoft Office 的 Open XML SDK 2.5 Productivity Tool,我可以验证文件并查看反映的代码。验证文件会出现以下 5 个错误:
所以我认为我在代码中使用的“克隆”功能会按原样复制元素,因此当它附加到文档时,会发生一些 ID 重复。
复制自身后获得正确工作的 DOCX 文件的任何想法?任何替代代码表示赞赏。