【问题标题】:Excel Add A Field To An Xml MapExcel 将字段添加到 Xml 映射
【发布时间】:2011-11-18 15:22:20
【问题描述】:

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

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

任何帮助表示赞赏。

【问题讨论】:

    标签: xml vba excel


    【解决方案1】:

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

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

    【讨论】:

    • 这个工具箱很讨厌,它首先需要.NET framework 1.1,然后它以不明原因拒绝安装,所以我不得不手动从msi中提取文件,当我终于得到它时出现在 Excel 中,“重新加载 XML 映射”按钮将显示重新映射对话框,但其中没有列出任何模式。它是否仅适用于映射到数据源的模式(我们的不是)?
    【解决方案2】:

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

    【讨论】:

    • 所以步骤是提取文件然后更新(替换 xmlMaps.xml)然后将其转换回 excel 文件的下一步是什么?
    【解决方案3】:

    这并不是 OP 所要求的,但它适用于我的情况,因此我将其添加为可能的解决方案(使用 Office 2013)

    1. 右键单击功能区并启用开发者工具

    1. 转到功能区上的新开发者工具部分,然后单击来源

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

    1. 点击弹出按钮底部的XML Maps按钮

    2. 单击添加并导航到文件或输入 URL

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

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

    【讨论】:

    • 这对我来说在 Office2016 中不起作用。 “添加”步骤拒绝 URL 条目。
    • 我使用了类似的工作流程,当列在中间被删除或添加时工作正常,如果您不需要很多映射:1)删除旧的 XML 映射 2)添加新的 XML映射 3) 通过将 XML Source 窗格中的每个元素单独拖放到现有表的列(或新列)中,重新创建每个元素的映射。
    猜你喜欢
    • 2012-01-23
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 2011-02-10
    相关资源
    最近更新 更多