【发布时间】:2011-11-18 15:22:20
【问题描述】:
我在 Excel 2010 工作表上有一个 XML 映射,我会定期从 XML 文件的内容中刷新它。我最近向 XML 数据添加了一个新字段,并希望它能够显示在我的 XML 映射中。
我只是希望能够添加新字段,但它看起来虽然不得不再次导入整个结构,但我不想这样做,因为它需要重新开发大量自定义格式。
任何帮助表示赞赏。
【问题讨论】:
我在 Excel 2010 工作表上有一个 XML 映射,我会定期从 XML 文件的内容中刷新它。我最近向 XML 数据添加了一个新字段,并希望它能够显示在我的 XML 映射中。
我只是希望能够添加新字段,但它看起来虽然不得不再次导入整个结构,但我不想这样做,因为它需要重新开发大量自定义格式。
任何帮助表示赞赏。
【问题讨论】:
不幸的是,目前 Excel 中的 XML 对象模型中的模式没有简单的“刷新”方法。 XML Toolbox for Excel 2003 曾经能够做到这一点,但我不确定这是否仍然在 Excel 2010 中运行(值得一试)。替代方法是编写自己的 VBA 代码,将“新”模式导入新映射,然后查看“旧”模式的现有元素映射,然后将它们重新映射到“新”模式,最后删除“旧”的。我知道听起来有点毛骨悚然,但如果您的架构没有显着变化,那么它可能就是答案。
有一个比这更不优雅的方法,它涉及直接更改工作簿底层 XML 中的架构。如果查看xl 文件夹下的工作簿结构,您会看到有一个名为xmlMaps.xml 的文件,该文件内将是您的架构的副本 - 然后您可以直接编辑它(添加新元素等.) 并且当您在 Excel 中再次打开工作簿时,新字段将显示在您的工作簿中使用,而原始单元格格式保持不变。
【讨论】:
我将 xlsx 解压缩为 zip,并且能够手动进行更改,而无需按照此站点上的说明再次删除和添加映射: http://davidovitz.blogspot.com/2010/05/howto-refresh-xml-schema-in-excel.html
【讨论】:
这并不是 OP 所要求的,但它适用于我的情况,因此我将其添加为可能的解决方案(使用 Office 2013)
点击弹出按钮底部的XML Maps按钮
单击添加并导航到文件或输入 URL
如果需要,请删除旧映射
突出显示所有新元素并右键单击以分配新映射。使用您之前记下的笔记来执行此操作。同样,我的案例非常简单,因为列只是附加到末尾。如果您在中间添加了列,则需要将它们重新映射到表格的末尾。
【讨论】: