讲师中心 微信公众号
AI工具推荐 视频效率加速

XML文件如何转换为CSV Excel Power Query导入XML数据

梦枫大大_6499

梦枫大大_6499

发布时间:2026-02-21 11:00:13

|

908人浏览过

|

来源于php中文网

原创

Power Query导入XML报错“key didn't match any rows”主因是嵌套结构未逐层展开:需右键根节点选“展开”,勾选“使用原始列名作为前缀”;遇同名字段自动加后缀需手动清理;List列必须点击展开图标;CSV乱码因UTF-8无BOM,应设为“UTF-8 with BOM”或改用Excel表格导出;属性与文本内容需同时勾选Value及属性列;复杂XML禁用Xml.Tables(),须用Xml.Document()手动导航;file://路径敏感,应改用File.Contents()配合纯英文路径。

xml文件如何转换为csv excel power query导入xml数据

Power Query 导入 XML 文件时直接报错 Expression.Error: The key didn't match any rows in the table

这是最常见的卡点:XML 结构含嵌套层级或重复节点(比如多个 <item></item>),而 Power Query 默认只展开第一层,后续字段因路径不匹配直接崩掉。

  • 别急着点“转换为表”——先右键点击预览里的根节点(如 root 或 catalog),选「展开」,勾选「使用原始列名作为前缀」,再点确定
  • 如果 XML 里有同名但不同层级的字段(比如 <price></price> 出现在 <book></book> 和 <author></author> 下),Power Query 会自动加后缀如 price.1、price.2;这时得手动删掉不需要的列,或用 Table.RenameColumns 统一重命名
  • 遇到 list 类型列(值显示为 List),说明该节点是数组(比如多个 <author></author>);必须点它右边的「展开」图标,否则导出 CSV 时这列就变成 System.Collections.Generic.List`1[System.Object]

导出 CSV 后 Excel 打开乱码,中文全变问号

根本不是编码问题,而是 Windows 记事本式 CSV 默认用 ANSI 编码,而 Power Query 导出 CSV 用的是 UTF-8 —— Excel 2016 及更早版本不会自动识别 UTF-8 BOM,直接当 ANSI 解析。

罗老师数据不上传 Excel VBA 本地处理专家
罗老师数据不上传 Excel VBA 本地处理专家

罗老师数据不上传 Excel VBA 本地处理专家 是一个面向企业隐私数据、本地化数据处理和 Excel 自动化的新手陪跑 skill。它不会要求用户上传原始表格,而是引导用户只提供表名、字段、规则和脱敏样例,再生成可复制到 Excel 里运行的 VBA 代码,帮助完成清洗、匹配、筛选、汇总、拆分和报表生成等任务。

下载
  • 导出前,在 Power Query 编辑器中点「文件 → 选项和设置 → 选项 → 当前文件 → 数据加载 → CSV 文件 → 编码」,改成 UTF-8 with BOM(若没这个选项,说明版本太低,需升级或换方法)
  • 更稳的方案:不导 CSV,改用「从 Power Query 导出到 Excel 表格」,或在 Excel 中用「数据 → 从其他来源 → 从 XML」重新导入(注意:此路径不走 Power Query 引擎,兼容性更好但失去 M 函数灵活性)
  • 如果必须用 CSV,且目标环境是旧版 Excel,可导出后用记事本打开,另存为「UTF-8-BOM」格式(记事本里编码下拉菜单叫「UTF-8」,实际就是带 BOM 的)

XML 里有属性(id="123")和文本内容(<name>张三</name>)混在一起,怎么一起提出来

Power Query 把属性当记录字段、文本内容当 Value 字段,但默认不同时保留;不手动干预就会丢一半。

  • 展开节点后,检查列名:属性会变成 id、type 等独立列;文本内容则在 Value 列里——如果没看到 Value,说明你点错了展开方式;要右键列标题 →「展开」→ 勾选 Value 和所有需要的属性
  • 若某节点既有属性又有子节点(比如 <book id="1"><title>Python入门</title></book>),Power Query 会把 id 提成列,但 title 变成嵌套记录;此时需对 title 列再次「展开」,并确保勾选 Value
  • 避免用 Xml.Tables() 函数直接解析——它只适配极简扁平结构;复杂 XML 必须用 Xml.Document() + 手动导航路径,例如:Xml.Document(File.Contents("data.xml"))[children]{0}[children]

Excel 里刷新 Power Query 时提示 DataSource.Error: Web.Contents failed to get contents from 'file://...'

不是权限问题,是 Power Query 对本地 file:// 协议路径极其敏感,尤其路径含中文、空格、括号或网络映射盘符时必炸。

  • 把 XML 文件移到纯英文路径下,比如 C:\data\report.xml,然后在 Power Query 中用 File.Contents("C:\data\report.xml") 替代原始的 file:// 链接
  • 如果 XML 在 OneDrive 或 SharePoint,别用本地路径;改用「数据 → 从云 → 从 OneDrive for Business」,粘贴共享链接,让 Power BI/Excel 自动处理认证
  • 刷新失败还可能因为 XML 文件被其他程序占用(比如用记事本开着),关掉所有编辑器再试;临时解决法:复制一份 XML 改名,指向新文件
Power Query 处理 XML 的核心难点不在语法,而在它把每个节点都当成“可能有属性、可能有文本、可能有子节点”的三重嵌套体——漏点哪一层的展开,后面就全是 null 或 List。最常被忽略的是:你以为点了一次「展开」就完事了,其实得顺着树形结构,一层一层手动点下去。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

549

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1698

2024.03.01

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4804

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

6237

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2542

2024.11.28

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1009

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3180

2023.10.25

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

3339

2023.07.26

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 44.9万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn