2011-11-18 79 views
9

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

我只是希望能够添加新的字段,但它出现,尽管不得不再次导入整个结构,我不想这样做,因为它需要重新开发许多自定义格式化。

任何帮助表示赞赏。

回答

5

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

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

+0

该工具箱是一个讨厌的,它首先需要.NET框架1.1,然后它拒绝安装一个未指定的原因,所以我不得不手动提取文件从msi,当我最终得到它出现在Excel中,重新加载XML映射按钮将显示重新映射对话框,但其中没有列出任何模式。它只适用于映射到数据源的模式吗(我们不是)? – GSerg

2

这不正是OP问对,但它的工作在我的情况,所以我(使用Office 2013)

  1. 右键单击您的丝带和启用开发者工具将它作为一个可能的解决方案

enter image description here

  • 转到您的丝带新的开发人员工具部分,然后点击来源
  • enter image description here

  • 这将打开一个右侧飞出。粗体元素当前映射到您的列。注意通过点击它们映射的地方。在我的情况下,第一个映射到A列的元素非常简单,然后右键单击任何粗体,然后取消映射。
  • enter image description here

  • 点击XML地图按钮弹出

  • 点击的底部添加并导航到一个文件或输入一个URL

  • enter image description here

  • 如果你想

  • 突出显示你所有的新元素,右击并分配一个新的映射删除旧的映射。使用您之前记下的笔记来做到这一点。再一次,我的情况非常简单,因为列只是附加到最后。如果您在中间添加了列,您可能希望将它们重新映射到表的末尾。

  • +0

    这不适用于Office2016。 “添加”步骤拒绝URL条目。 – mrtsherman

    +0

    我使用了一个类似的工作流程,在中间删除或添加列时工作正常,并且您不需要很多映射:1)删除旧的XML映射2)添加新的XML映射3)重新创建映射每个元素通过将XML Source窗格中的每个元素单独拖放到现有表格的列(或新列)中。 – Kapep