OpenXML表副本提供OpenXmlUnknownElement

本文关键字:OpenXmlUnknownElement 副本 OpenXML | 更新日期: 2023-09-27 18:26:23

我正在使用OpenXML SDK和Word来生成标签。基本Word文档有一个页面,其中包含一个表、两行和两个单元格,每个单元格代表一个标签。我的计划是根据SQL结果集的大小根据需要添加页面。页面的追加可以工作,但正文中的表数不会改变。有没有刷新Element数组的方法?我想我可以得到结果集的大小,并附加所需的页数,然后关闭并重新打开文档,但我猜我错过了一些简单的东西。

报告了错误的问题抱歉,文档在Word中看起来是正确的,但在生产力工具中没有。我更新了代码以显示我最近的尝试。iTest现在报告正确数量的表,但在生产力工具中,添加的表被标记为OpenXmlUnknownElement

for (int i = 0; i < pages; ++i)
{
    Table table = new Table(doc.MainDocumentPart.Document.Body.Elements<Table>().First().CloneNode(true));
    doc.MainDocumentPart.Document.Body.Append(table);
}
int iTest = doc.MainDocumentPart.Document.Body.Elements<Table>().Count();

xml显示生成了一个额外的<w:tbl>

<w:tbl xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:tbl>
    <w:tblPr>
      <w:tblStyle w:val="TableGrid" />

因此,真正的问题是,如何使用OpenXMLSDK复制和粘贴表?

OpenXML表副本提供OpenXmlUnknownElement

new和CloneNode是多余的,InsertAfter也不是必需的,但将表放在一起。因为我不会更新标签,直到稍后在First()之后插入才能达到我的目的。

for (int i = 0; i < pages; ++i)
{
    doc.MainDocumentPart.Document.Body.InsertAfter(doc.MainDocumentPart.Document.Body.Elements<Table>().First().CloneNode(true), MDP.Document.Body.Elements<Table>().First());
}

尝试Descendants<Table>而不是Elements<Table>

同时发布您身体的XML,这样我们可以更好地帮助您。

相关文章:
  • 没有找到相关文章