使用OpenXML在Word文档中动态插入2个表

时间:2015-11-30 06:11:02

标签: ms-word openxml

我要求在word文档中插入2个表。我正在使用OpenXML API。当我尝试插入第二个表时,它会给我一个错误 - Cannot insert the OpenXmlElement “newChild” because it is part of a tree

以下是我的代码:

if (fieldname.Trim().Equals("Table"))
{
    if (!checkCount)
    {
         var tabRun = new Run(table);
         var anc = field.Ancestors<Paragraph>().FirstOrDefault();
         anc.RemoveAllChildren();
         anc.Append(tabRun);
     }
     else
     {
         var tabRun = table;
         var anc = field.Ancestors<Paragraph>().FirstOrDefault();
         anc.RemoveAllChildren();
         anc.Append(tabRun);
     }
}

当代码第二次执行时,标志checkCount将为真。 fieldname指的是将被表替换的合并域。

我无法弄清楚这个问题的原因。

1 个答案:

答案 0 :(得分:0)

如上所述herehere,您需要克隆要提前插入的节点以处理问题。发生此错误的原因是您尝试添加的节点不是新创建的,而是已经是树的一部分。