C#从一个word文档中复制一个table并添加到另一个word文档中

C# copy a table from a word document and add it to another word document

我想从 MS Word 文档中获取 table,然后将 table 添加到另一个文档及其所有格式。我正在使用 OOXML 来执行此操作。为了识别特定的 table,我分配了 "Alt Text -> Title",并且我能够从源文档中获取 table 及其内容。我已将 table 添加到具有特定“替代文本 -> 标题”的目标文档,并且也能够获取它。

我使用下面的代码将 table 添加到目标文档。但是,当我打开目标文档时,它显示 MS Word 错误消息。

MS 字错误 -> "The file is corrupt and cannot be opened."

当我针对此错误单击“确定”时,当我单击“是”时它显示消息 "Word found unreadable content in .docx. Do you want to recover the contents of this document? If you trust the source of this document, click Yes."。

它显示带有 table 及其所有格式的目标文档。

如何删除此 error/warning 消息?我对导致此错误的代码做错了什么?

注意: table 我正在尝试使用 Hyperlink 复制一些文本,这导致了问题。如果我删除超链接,它会正常工作。

TableProperties tableProperty = sourceDocument.Document.Body.Descendants<TableProperties>().Where(tp => tp.TableCaption != null && tp.TableCaption.Val.InnerText.Contains("sourceTable")).FirstOrDefault();

TableProperties destTableProperty = destinationDocument.Document.Body.Descendants<TableProperties>().Where(tp => tp.TableCaption != null && tp.TableCaption.Val.InnerText.Contains("destinationTable")).FirstOrDefault();

sourceTable = (Table)tableProperty.Parent;
destinationTable = (Table)destTableProperty.Parent;
destinationTable.InsertBeforeSelf<Table>((Table)sourceTable.CloneNode(true));
destinationTable.Remove();

这个问题是如何将 table 从一个 Word 文档复制到另一个文档,上述代码可以很好地实现相同的目的。

有关文档损坏的 warning/error 消息的原因是 table 文本中的超链接。如果我删除超链接,它会正常工作。

对于超链接问题,我将 post 分开问题并关闭此问题。