拆分包含 XML 的 Excel 列

拆分包含 XML 的 Excel 列

有没有办法将包含 XML 的 Excel 列分成几列,如下所示:

| Apples | Pears | XML                              |
| ------ | ----- | ---------------------------------|
| 35     | 18    | <Plums>34</Plums><Figs>19</Figs> |
| 86     | 55    | <Plums>12</Plums><Figs>62</Figs> |
| 99     | 12    | <Plums>18</Plums><Figs>23</Figs> |

| Apples | Pears | Plums | Figs |
| ------ | ----- | ----- | ---- |
| 35     | 18    | 34    | 19   |
| 86     | 55    | 12    | 62   |
| 99     | 12    | 18    | 23   |

原始表来自将 XML 存储在文本列中的 SQL Server。如果 XML 列包含逗号分隔的值,我会告诉 Excel 将文本转换为列。XML 有类似的功能吗?

答案1

除了 Excel 中的文本操作之外,还有另外两个选项。

  1. 您可以使用 VBA 来解析 XML。您可以使用字符串函数来查找标签,也可以使用 XML 解析器来遍历内容(请参阅此关于 SO 的问题了解更多信息)。

  2. 您可以使用 Excel 中的 XML 源功能(请参阅点击此处查看概述)。使用此功能的最简单方法是加载 XML 文件。Excel 将自动尝试为加载的数据创建 XML 映射并将其加载到表中。但要使其真正正常工作,您需要创建一个架构。

为了您的数据,我添加了一个根元素并将其保存在文件中:

<Fruits>
    <Plums>34</Plums><Figs>19</Figs>
    <Plums>12</Plums><Figs>62</Figs>
    <Plums>18</Plums><Figs>23</Figs>
</Fruits>

加载到 Excel 中将创建下表:

在此处输入图片描述

答案2

假设您不想要的东西是相同的大小(至少在示例中),请使用“固定宽度”的文本到列

相关内容