0
我試圖複製的docx文件的內容,並在C#C#重複DOCX文件中使用OpemXML
這裏使用的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生產力工具,我可以驗證該文件並查看反射的代碼。驗證該文件將提供以下5個錯誤:
所以我認爲,「克隆」功能,我在我的代碼拷貝使用該元素,因爲它是如此,當它被附加到文件中,一些標識發生重複。
任何想法得到一個正確的工作DOCX文件後複製自己?任何替代代碼表示讚賞。
是的,假設你有一個圖像,文本和任何元素。我期待他們重複(附加)到文檔中。 – yazanpro
@ yazanpro,那麼你應該只採取身體的元素。就像:'wordDoc.MainDocumentPart.Document.Body.ChildElements'。使用(WordprocessingDocument wordDoc = WordprocessingDocument.Open(wordFileNamePath,真)){ 的foreach (OpenXmlElement元素wordDoc :' – jn1kk
你的意思是,把它們添加到身體'wordDoc.MainDocumentPart.Document.Body.Append(cloneElement)。 MainDocumentPart.Document.Body.ChildElements) OpenXmlElement cloneElement =(OpenXmlElement)element.Clone(); wordDoc.MainDocumentPart.Document.Body.Append(cloneElement); } wordDoc.MainDocumentPart.Document.Save(); } } 我得到了同樣的問題 – yazanpro