使用 XML 拆分 Excel 列

Mih*_*agy 5 xml microsoft-excel microsoft-excel-2010

有没有办法将包含 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> |
Run Code Online (Sandbox Code Playgroud)

| Apples | Pears | Plums | Figs |
| ------ | ----- | ----- | ---- |
| 35     | 18    | 34    | 19   |
| 86     | 55    | 12    | 62   |
| 99     | 12    | 18    | 23   |
Run Code Online (Sandbox Code Playgroud)

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

Bra*_*ton 4

除了 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>
Run Code Online (Sandbox Code Playgroud)

加载到 Excel 中,这将创建下表:

在此输入图像描述