excel:无法保存或导出xml数据。此工作簿中的xml映射不可导出

时间:2012-10-09 06:36:05

标签: xml excel

我遇到了一个excel XML导出问题。为了简化问题,我会采取以下步骤:

1.Data>>来自XML数据导入。

实际上,我想在对数据进行一些修改后再次将其导出回XML文件(那些第一行变量永远不会改变)

2.然后点击开发>>出口。它显示“无法保存或导出XML数据。此工作簿中的XML映射不可导出”。 (即使我对数据没有任何修改)。 我已经在YouTube上看了几个导出教程视频,但似乎没有解决我的问题。我还没有找到问题。

4 个答案:

答案 0 :(得分:8)

通常的原因是Excel不理解非常复杂的XML。

来自office.microsoft.com

  

如果无法保留映射元素与其他元素的关系,则无法导出XML映射。由于以下原因,可能无法保留此关系:

     

映射元素的模式定义包含在具有以下属性的序列中:

     
      
  • maxoccurs属性不等于1.
  •   
  • 序列中定义了多个直接子元素,或者将另一个合成器作为直接子元素。
  •   
  • 具有相同重复父元素的非重复同级元素将映射到不同的XML表。
  •   
  • 多个重复元素映射到同一个XML表,并且重复不是由祖先元素定义的。
  •   
  • 来自不同父项的子元素映射到同一XML表。
  •   
     

此外,如果XML映射包含以下XML架构构造之一,则无法导出XML映射:

     

列表清单

     
      
  • 一个项目列表包含第二个项目列表。
  •   
     

非规范化数据

     
      
  • XML表包含在架构中定义的元素,该元素出现一次(maxoccurs属性设置为1)。将这样的元素添加到XML表时,Excel会使用该元素的多个实例填充表列。
  •   
     

选择

     
      
  • 映射元素是架构构造的一部分。
  •   

答案 1 :(得分:0)

我遇到了类似的问题。这是一个简单的工作表,仅包含 8 列,但 XML 导出不断抛出此错误。我发现如果元素在 XML 模式中出现的顺序与列在工作表中出现的顺序不匹配,我就会收到这个错误。我将工作表中的列重新排列为与架构中元素的顺序相同,并且导出成功。

答案 2 :(得分:0)

在很多网页上都有关于如何导出为 xml 的说明(例如:https://www.excel-easy.com/examples/xml.html)。当我为预先存在的数据创建架构时,我遇到了以下问题。

  1. 忘记为行设置单个外部包装器标记(导致我进入此页面的错误的主要原因)
  2. 没有正确获取数据类型(看起来像数字的实际上是文本 - 我认为这更令人讨厌,但我先修复了它)。

转换为架构的 XML 应如下所示(我不知道它是否需要两个“示例行”,但它有助于记住外部标记):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<singleOuterWrapperTag>
    <rowTag>
        <columnA>Data Type (numeric, text)</columnA>
        <columnB>Data Type</columnB>
    </rowTag>
    <rowTag>
        <columnA>Data Type (numeric, text)</columnA>
        <columnB>Data Type</columnB>
    </rowTag>
</singleOuterWrapperTag>

答案 3 :(得分:0)

所以我会在这里贡献我的解决方案。当然,它可能不是你的,但它仍然是有用的信息,我相信它会帮助某人。

我发现,在我导入 XML 实例而不是架构的情况下,Excel 会错误地(不是我想要的)从该实例推断架构。这是因为我想要重复的记录在我用来创建地图的 XML 中只有一个实例。 (我在这里创建了一个模板以供将来导入,还没有尝试导入现有数据,所以我只有一个包含一些虚拟数据的记录。)我只是复制了记录在其第一个实例下面的虚拟数据,以便有是两张唱片......一切都是金色的。导入和导出突然起作用了。

给那些和我在同一条船上的人一个便条。