在对从其他 XML 文件导入的数据进行一些修改后,我想将数据导出回 XML 文件(这些第一行变量永远不会改变)。
当我单击开发人员>>导出
Excel 显示:
无法保存或导出 XML 数据。此工作簿中的 XML 映射不可导出。
即使我什么都不做修改数据也会发生这种情况。
我在 YouTube 上观看了几个导出教程,但没有一个涵盖我的问题。
通常的原因是 Excel 不能理解非常复杂的 XML。
如果无法保留映射元素与其他元素的关系,则无法导出 XML 映射。由于以下原因,这种关系可能无法保留:
映射元素的模式定义包含在具有以下属性的序列中:
- maxoccurs 属性不等于 1。
- 该序列定义了多个直接子元素,或者将另一个合成器作为直接子元素。
- 具有相同重复父元素的非重复同级元素映射到不同的 XML 表。
- 多个重复元素映射到同一个 XML 表,并且重复不是由祖先元素定义的。
- 来自不同父级的子元素映射到同一个 XML 表。
此外,如果 XML 映射包含以下 XML 架构构造之一,则无法导出它:
列表列表
- 一个项目列表包含第二个项目列表。
非规范化数据
- XML 表包含已在模式中定义为一次的元素(maxoccurs 属性设置为 1)。当您将此类元素添加到 XML 表时,Excel 会使用该元素的多个实例填充表列。
选择
- 映射元素是模式构造的一部分。
我有一个类似的问题。这是一张简单的表格,仅包含 8 列,但 XML 导出一直抛出此错误。我发现如果元素在 XML 模式中出现的顺序与列在工作表中出现的顺序不匹配,我会收到此错误。我将工作表中的列重新排列为与架构中元素的顺序相同,并且导出成功。
所以我会在这里贡献我的解决方案。当然,它可能不是你的,但它仍然是有用的信息,我相信它会对某人有所帮助。
我发现,在我导入 XML 实例而不是模式的情况下,Excel 会错误地(正如我不希望的那样)从该实例推断模式。这是因为我希望可重复的记录在我用来创建地图的 XML 中只有一个实例。(我在这里为将来的导入创建一个模板,而不是尝试导入现有数据,所以我只有一个记录,其中包含一些虚拟数据。)我只是将带有虚拟数据的记录复制到它的第一个实例下面,这样就可以是两个记录......一切都是金色的。进口和出口突然起作用了。
只是给那些和我在同一条船上的人的便条。
在很多网页上都有关于如何导出到 xml 的说明(例如:https ://www.excel-easy.com/examples/xml.html )。当我为预先存在的数据创建模式时,我遇到了以下问题。
转换为模式的 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>