excel - 动态生成的 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
解决方案
x
inx: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>
也可以看看
推荐阅读
- java - 如何在 ARCore 和 Sceneform 中翻译对象?
- java - Netbeans:无断点开始调试
- c# - 标记对象更改时如何更新 WinForms TreeView?
- android - 显示处理程序的剩余时间
- c++ - 模板参数中的访问控制
- visual-studio - 如何使 Visual Studio 项目从 .props 文件继承英特尔性能库的配置设置?
- kubernetes - 无法通过主授权网络访问 Google 私有集群
- javascript - 如何使用 React Hooks 重构现有代码?
- python-3.x - 是否有一个属性可以捕获散景数据表中数据的顺序?
- spring - Accessing JWT Token from a Spring Boot Rest Controller