18

在对从其他 XML 文件导入的数据进行一些修改后,我想将数据导出回 XML 文件(这些第一行变量永远不会改变)。

当我单击开发人员>>导出

Excel 显示:

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

即使我什么都不做修改数据也会发生这种情况。

我在 YouTube 上观看了几个导出教程,但没有一个涵盖我的问题。

4

4 回答 4

13

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

office.microsoft.com

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

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

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

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

列表列表

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

非规范化数据

  • XML 表包含已在模式中定义为一次的元素(maxoccurs 属性设置为 1)。当您将此类元素添加到 XML 表时,Excel 会使用该元素的多个实例填充表列。

选择

  • 映射元素是模式构造的一部分。
于 2013-06-13T17:22:20.167 回答
1

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

于 2021-03-06T18:42:31.823 回答
0

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

我发现,在我导入 XML 实例而不是模式的情况下,Excel 会错误地(正如我不希望的那样)从该实例推断模式。这是因为我希望可重复的记录在我用来创建地图的 XML 中只有一个实例。(我在这里为将来的导入创建一个模板,而不是尝试导入现有数据,所以我只有一个记录,其中包含一些虚拟数据。)我只是将带有虚拟数据的记录复制到它的第一个实例下面,这样就可以是两个记录......一切都是金色的。进口和出口突然起作用了。

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

于 2021-07-07T14:24:39.360 回答
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>
于 2021-05-10T17:16:05.273 回答