首页 > 解决方案 > 动态生成的 Excel Xml(通过 OpenXml)在其所有标签中都有 ax:

问题描述

因此,我在一个空工作簿(已经建立了数据连接)上动态创建了一个数据透视表,并成功保存:文档甚至成功打开了 Excel GUI:一切似乎正确且工作正常。

当我查看包内部时,我发现 Xml 标记有一个 extar x:,就像 workbook.xml 如下所示;。

<x:pivotCaches>
    <x:pivotCache cacheId=”1″ r:id=”rId4″ />
</x:pivotCaches>

有人知道为什么我们有这个额外的 x: 吗?只有在我将 pivotCaches 标记添加到 workbook.xml 后才会发生这种情况。我正在使用 OpenXml 2.7.1

标签: excelpivotopenxml

解决方案


xinx:pivotCaches是一个XML 命名空间前缀。

要使 XML 具有良好的命名空间格式,必须有一个声明将命名空间前缀x与命名空间 URI 绑定,例如http://schemas.openxmlformats.org/spreadsheetml/2006/main. 您的 XML 片段目前的命名空间格式不规范,因为它使用了未声明的 XML 命名空间前缀。

命名空间前缀可以在其使用祖先的任何位置或更高位置声明:

<x:pivotCaches xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
    <x:pivotCache cacheId=”1″ r:id=”rId4″ />
</x:pivotCaches>

如果声明了默认的 XML 命名空间,则可以省略命名空间前缀:

<pivotCaches xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
    <pivotCache cacheId=”1″ r:id=”rId4″ />
</pivotCaches>

也可以看看


推荐阅读