Excel Power Query怎么导入XML数据 Power Query入门

9次阅读

Power Query 导入 XML 数据需理解其层级结构,从文件或 Web 导入后逐层展开 Record/List,区分 Attribute(@符号)与 Element,处理命名空间、大小写、空值等问题,再清洗转为正式表格。

Excel Power Query 怎么导入 XML 数据 Power Query 入门

Power Query 导入 XML 数据其实很直接,关键在于理解 XML 的结构特点和 Power Query 的解析逻辑。XML 是层级式数据(比如有父节点、子节点、属性),Power Query 会自动将其展开为表格形式,但需要你手动选择要保留的层级和字段。

从文件导入 XML(最常用)

在 Excel 中:数据 → 获取数据 → 从文件 → 从 XML → 浏览选中你的 .xml 文件。Power Query 编辑器会自动加载并尝试解析根节点下的结构。如果 XML 有多层嵌套(如 OrdersOrderItem),它通常会展开到最内层重复项(比如所有 Item),这时你看到的是一张扁平化表格。

  • 若第一层就显示“Record”或“List”,说明当前节点包含多个子节点或属性,点击右侧的展开图标(⎘)即可逐层展开
  • 注意区分“Attribute”(带 @ 符号的列,对应 XML 属性,如 中的 id)和“Element”(普通子节点内容)
  • 展开后可右键列标题 →“删除其他列”,只保留需要的字段

从网页或 API 加载 XML(动态数据源)

适用于调用返回 XML 格式的接口(如某些老系统、政府公开数据)。选择:数据 → 获取数据 → 从 Web → 粘贴 URL。Power Query 会尝试识别响应格式;若未自动按 XML 解析,可在高级编辑器里把源代码中的 Web.Contents(…) 包裹成 Xml.Tables(Web.Contents(…))

  • 遇到 HTTPS 证书或重定向问题时,可在 Web.Contents 中添加选项:[Timeout=#duration(0,0,0,30), ManualStatusHandling={404,500}]
  • 如果返回的是单个 XML 元素(如 success),用 Xml.Document() 更合适,再用 Record.ToTable 提取值

处理常见 XML 结构问题

不是所有 XML 都规整。比如同一层级下子节点名称不统一(Priceprice 并存)、存在命名空间(xmlns=”http://…”)、或混合文本与子节点,这些都会导致展开失败或列丢失。

  • 命名空间问题:在高级编辑器中,先用 Xml.Document(Binary.FromText(xmlText)) 加载,再用 Xml.Namespace(“http://…”) 显式声明,或用 Text.Remove 函数提前删掉 xmlns 属性
  • 大小写不一致:用“转换”→“更改为小写”统一列名,再合并列或条件列处理
  • 空节点或缺失字段:展开后会出现 null,可用“替换值”填默认值,或用 try … otherwise … 在自定义列中容错

导入后清洗与转为正式表格

XML 导入后仍是查询状态,需进一步整理才能用于分析。典型操作包括:重命名列(双击列名)、调整数据类型(点击列标题旁的图标选“整数”“日期”等)、筛选非空行、按某列分组聚合(如统计每个 Category 下的 Product 数量)。

  • 若原始 XML 中日期是 “2024-03-15T08:30:00” 这种 ISO 格式,Power Query 能自动识别为 datetime;若为中文格式(如“2024 年 3 月 15 日”),需用 Date.FromText 配合文化参数
  • 完成所有步骤后点左上角“关闭并上载”,数据就会进入 Excel 工作表;勾选“仅创建连接”可不落地,适合做后台刷新
星耀云
版权声明:本站原创文章,由 星耀云 2025-12-27发表,共计1446字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources