在 Excel 中读取 XML 文件主要有以下几种方法,具体取决于你的 Excel 版本(Windows 版功能最全)以及你希望达到的效果(一次性导入还是动态连接)。
以下是几种最常用且高效的方法:
使用“从 XML 数据导入”功能(推荐,适用于 Excel 2010/2013/2016/2019/365)
这是最直接的方法,可以将 XML 数据转换为 Excel 表格或透视表。
- 打开 Excel,新建一个空白工作簿。
- 点击顶部菜单栏的 “数据” (Data) 选项卡。
- 在“获取和转换数据”或“XML 组”中,点击 “从 XML 数据导入” (From XML Data Import) 按钮。
- 注意:如果没看到此按钮,可能需要点击“获取数据” > “来自文件” > “从 XML”。
- 在弹出的对话框中,选择你的
.xml文件,点击“导入”。 - 选择导入方式:
- 作为 XML 地图导入到工作表:数据会以表格形式显示,你可以选择将数据放在新工作表还是现有工作表。
- 作为 XML 地图导入到 XML 数据区域:适合创建数据验证或映射。
- 点击“确定”,Excel 会自动解析 XML 结构,并将其转换为列和行。
✅ 优点:简单直观,适合一次性数据转换。
❌ 缺点:XML 结构复杂时,可能需要手动调整映射关系。
使用 Power Query(最强推荐,适用于 Excel 2016 及以上 / Microsoft 365)
Power Query 是处理结构化数据(包括 XML、JSON、CSV 等)最强大的工具,支持刷新和清洗。
- 点击 “数据” 选项卡。
- 点击 “获取数据” (Get Data) > “来自文件” (From File) > “从 XML 文件” (From XML)。
- 选择你的 XML 文件,点击“导入”。
- 在弹出的“导航器”窗口中:
- 左侧会显示 XML 的树状结构。
- 展开节点,找到包含数据的表格部分(通常显示为“表”或“记录”)。
- 右侧预览数据,确认无误后点击 “转换数据” (Transform Data)(推荐,可清洗数据)或直接点击 “加载” (Load)。
- 进入 Power Query 编辑器后,你可以:
- 删除不需要的列。
- 拆分列、更改数据类型。
- 提升“使用第一行作为标题”。
- 点击 “关闭并上载” (Close & Load),数据将导入 Excel 工作表。
✅ 优点:
- 可处理嵌套 XML(通过“展开”列)。
- 支持数据清洗和转换。
- 可刷新:XML 文件更新,只需右键点击表格选择“刷新”即可同步最新数据。
- 适合自动化报表。
使用 VBA 宏(适用于需要自动化或复杂逻辑)
如果你需要频繁处理多个 XML 文件,或 XML 结构非常特殊,可以使用 VBA。
Sub ImportXML()
Dim xmlDoc As Object
Dim xmlFile As String
Dim nodeList As Object
Dim i As Integer
' 设置 XML 文件路径
xmlFile = "C:your_pathexample.xml" ' 替换为你的实际路径
' 创建 XML 文档对象
Set xmlDoc = CreateObject("MSXML2.DOMDocument")
xmlDoc.Async = False
xmlDoc.Load xmlFile
' 检查是否成功加载
If xmlDoc.parseError.errorCode <> 0 Then
MsgBox "XML 加载错误: " & xmlDoc.parseError.reason
Exit Sub
End If
' 获取特定节点(例如所有 <item> 节点)
Set nodeList = xmlDoc.SelectNodes("//item") ' 替换为你的节点名称
' 将数据写入工作表
i = 1
For Each node In nodeList
Cells(i, 1).Value = node.SelectSingleNode("name").Text ' 替换为你的子节点
Cells(i, 2).Value = node.SelectSingleNode("value").Text
i = i + 1
Next node
MsgBox "导入完成!"
End Sub
✅ 优点:高度自定义,可处理复杂逻辑。
❌ 缺点:需要编程知识,维护成本较高。
常见问题与技巧
XML 结构嵌套怎么办?
- 在 Power Query 中,如果某列包含“记录”或“表”,点击列标题右侧的“展开”图标(两个箭头),选择要提取的字段。
- 在 方法一 中,可能需要先定义“XML 地图”来映射嵌套结构。
如何刷新数据?
- 如果使用 Power Query 或 方法一 导入的数据,当原始 XML 文件更新后:
- 右键点击导入的表格区域。
- 选择 “刷新” (Refresh)。
支持哪些版本的 Excel?
- Windows 版 Excel:所有方法均支持。
- Mac 版 Excel:Power Query 功能有限,建议使用“从 XML 数据导入”或手动转换后粘贴。
- Excel Online / Web 版:不支持直接导入 XML 文件,需先在桌面版处理。
文件太大怎么办?
- XML 文件超过几 MB,建议使用 Power Query,因为它可以流式处理数据,避免内存溢出。
- 也可考虑先将 XML 转换为 CSV 或 JSON,再导入 Excel。
总结建议
| 场景 | 推荐方法 |
|---|---|
| 简单一次性导入 | 从 XML 数据导入 |
| 需要数据清洗、刷新、处理嵌套结构 | Power Query(强烈推荐) |
| 自动化批量处理、复杂逻辑 | VBA 宏 |
如果你能提供具体的 XML 示例结构,我可以给出更精确的 Power Query 或 VBA 代码指导。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/478136.html



