Excel将字段添加到Xml映射

时间:2011-11-18 15:22:20

标签: xml excel vba excel-vba

我在Excel 2010工作表上有一个XML地图,我会定期从XML文件的内容中刷新。我最近为XML数据添加了一个新字段,并希望它显示在我的XML映射上。

我只是希望能够添加新字段但是看起来虽然不得不再次导入整个结构,我不想这样做,因为它需要重新开发很多自定义格式。

任何帮助表示感谢。

3 个答案:

答案 0 :(得分:5)

不幸的是,目前Excel中的XML对象模型中没有简单的“刷新”方法。 XML Toolbox for Excel 2003曾经能够做到这一点,但我不确定这是否仍然在Excel 2010中运行(值得一试)。替代方法是编写自己的VBA代码,将“新”模式导入新映射,然后查看“旧”模式的现有元素映射,然后将这些映射重新映射到“新”模式,最后删除“老”的。我知道听起来有点毛茸茸,但如果你的架构没有明显改变,那么它就是答案。

有一个不太优雅的方法,这涉及直接更改工作簿的基础XML中的模式。如果查看xl文件夹下的工作簿结构,您将看到有一个名为xmlMaps.xml的文件,并且在此文件中将是您的架构的副本 - 您可以直接编辑它(添加新元素等)然后,当您在Excel中再次打开它时,新字段将显示在工作簿中使用,保持原始单元格格式不变。

答案 1 :(得分:4)

我将xlsx解压缩为zip并能够手动进行更改,而无需按照此站点上的说明再次删除和添加映射: http://davidovitz.blogspot.com/2010/05/howto-refresh-xml-schema-in-excel.html

答案 2 :(得分:3)

这并非OP所要求的,但它在我的案例中有效,所以我将其添加为可能的解决方案(使用Office 2013)

  1. 右键单击功能区并启用开发人员工具
  2. enter image description here

    1. 转到功能区上的新“开发人员工具”部分,然后单击来源
    2. enter image description here

      1. 这将打开右侧弹出窗口。粗体元素当前映射到您的列。注意事物通过点击它们映射到哪里。在我的情况下,第一个元素映射到A列等是非常简单的。然后右键单击任何粗体并取消映射。
      2. enter image description here

        1. 点击弹出窗口底部的 XML地图按钮

        2. 点击添加并导航至某个文件或输入网址

        3. enter image description here

          1. 如果需要,请删除旧映射

          2. 突出显示所有新元素,然后右键单击以指定新映射。使用您之前记下的笔记来执行此操作。同样,我的情况非常简单,因为列只是附加到末尾。如果您在中间添加了列,则需要将它们重新映射到表的末尾。