Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态生成的Excel Xml(通过OpenXml)在其所有标记中都有一个x:_Excel_Pivot_Openxml - Fatal编程技术网

动态生成的Excel Xml(通过OpenXml)在其所有标记中都有一个x:

动态生成的Excel Xml(通过OpenXml)在其所有标记中都有一个x:,excel,pivot,openxml,Excel,Pivot,Openxml,因此,我在一个空工作簿(已经建立了数据连接)上动态创建了一个数据透视表,并成功保存:文档甚至成功打开。为什么Excel GUI:一切看起来都正常,工作正常 当我查看包的内部时,我发现Xml标记有一个extar x:,比如workbook.Xml就像bellow <x:pivotCaches> <x:pivotCache cacheId=”1″ r:id=”rId4″ /> </x:pivotCaches> 有人知道为什么我们有这个额外的x:?只

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

当我查看包的内部时,我发现Xml标记有一个extar x:,比如workbook.Xml就像bellow

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


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

x:
前缀称为。您还必须在XML文件中看到一个
xmlns:x
属性,该属性指示如何解析此命名空间的架构。
x:
前缀称为。您还必须在XML文件中看到一个
xmlns:x
属性,该属性指示如何解析此命名空间的架构。
x:pivotCaches
中的
x
是一个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>

另请参见


  • x:pivotCaches
    中的
    x
    是一个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>
    
    
    
    另请参见


    非常感谢。是的,添加了x:prefix,但是是由OpenXML隐式添加的。我想我必须显式地添加默认名称空间,以阻止OpenXml这样做。那么,如何通过OpenXml为工作簿添加默认名称?我深入研究发现AddNamespace声明需要前缀…非常感谢。是的,添加了x:prefix,但是是由OpenXML隐式添加的。我想我必须显式地添加默认名称空间,以阻止OpenXml这样做。那么,如何通过OpenXml为工作簿添加默认名称?我深入研究发现AddNamespace声明需要前缀…谢谢。这是正确的。但是如何在OpenXml中为Excel工作簿xml添加xmlns=“…”?我研究了SetAttribute、AddNamespaceDeclaration,但它们似乎都不适用于默认名称空间!!!你问过有人为什么我们有这个额外的x:?我已经回答了。如果您还有一个编码问题,您应该发布一个新问题,其中包括您尝试过的内容。你当前的问题不是为了支持你的后续行动而写的,评论也不是构建所需细节的地方。这很公平。你确实回答了原来的问题。我也刚刚让SetAttribute工作,但是x:prefix仍然存在:我怀疑我需要显式删除xlmns:x。在任何情况下,x:的出现都不会造成伤害,现在我明白了它的起源和含义,我就把它留在那里。这篇评论只是想对原始问题得出一个结论。非常感谢,收获颇丰。这是正确的。但是如何在OpenXml中为Excel工作簿xml添加xmlns=“…”?我研究了SetAttribute、AddNamespaceDeclaration,但它们似乎都不适用于默认名称空间!!!你问过有人为什么我们有这个额外的x:?我已经回答了。如果您还有一个编码问题,您应该发布一个新问题,其中包括您尝试过的内容。你当前的问题不是为了支持你的后续行动而写的,评论也不是构建所需细节的地方。这很公平。你确实回答了原来的问题。我也刚刚让SetAttribute工作,但是x:prefix仍然存在:我怀疑我需要显式删除xlmns:x。在任何情况下,x:的出现都不会造成伤害,现在我明白了它的起源和含义,我就把它留在那里。这篇评论只是想对原始问题得出一个结论。非常感谢,收获颇丰。