动态生成的Excel Xml(通过OpenXml)在所有标记中均带有x:

时间:2019-02-13 16:30:41

标签: excel pivot openxml

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

当我查看包装内部时,我发现Xml标签有一个extar x :,就像workbook.xml就像下面的波纹管一样。

TableA

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

2 个答案:

答案 0 :(得分:0)

select EmployeeName, ARRAY_AGG(struct(EmployeeDetail1, EmployeeDetail2)) from Table1 t1, Table2 t2 where t1.Id = t2.Id GROUP BY EmployeeName 前缀称为https://symfony.com/doc/3.4/form/dynamic_form_modification.html。您还必须在XML文件中看到一个x:属性,该属性指示如何解析此命名空间的架构。

答案 1 :(得分:0)

x中的x:pivotCaches XML名称空间前缀

要使XML为namespace-well-formed,必须有一个声明,该声明将命名空间前缀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>

另请参见