Excel Power Query报External table is not in expected format错误
问题概述
- 操作目的:使用Excel内置Power Query能力,直接从网页拉取GRNV基金持仓数据存入工作表,对应数据源地址为
https://www.vaneck.com.au/FundHoldings.aspx?ticker=GRNV - 操作流程:调用Excel「自网页获取数据」工具发起查询,操作界面参考:

- 异常表现:查询运行后抛出错误提示:"External table is not in the expected format.",报错界面参考:

- 已完成验证:将上述数据源链接粘贴至Chrome浏览器访问,可正常下载对应持仓数据文件
- 客户端版本:Microsoft® Excel® for Microsoft 365 MSO (Version 2205 Build 16.0.15225.20278) 64-bit
排查解决方向
- 修正数据源解析逻辑:该站点的持仓数据并非直接嵌入静态HTML表格,访问页面时会动态触发文件下载,默认使用「自网页获取数据」工具会强制按HTML表结构解析返回内容,必然触发格式不匹配错误。操作时不要选择工具自动识别出的网页表条目,进入Power Query编辑器后手动指定数据源解析格式为
CSV或Excel工作簿,再重新执行查询。 - 替换为数据文件直链:在Chrome中打开目标数据源地址,按F12调出开发者工具,切换到「网络」面板后手动触发一次数据下载,在请求列表中筛选出格式为
csv/xlsx的请求,复制该请求的真实访问地址;回到Power Query后选择「自CSV」或「自Excel工作簿」数据源,粘贴复制到的直链作为源地址,跳过页面的动态跳转渲染逻辑。 - 补全浏览器请求标识:Power Query默认发起的网页请求携带的客户端标识和普通浏览器不同,部分站点会对非浏览器请求返回异常格式的响应内容。可进入Power Query高级编辑器,找到
Web.Contents函数调用段,补充和Chrome一致的User-Agent请求头模拟真实浏览器访问,示例代码片段如下:Source = Web.Contents( "你的数据直链地址", [Headers=[User-Agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"]] ) - 修复客户端兼容问题:当前使用的2205版M365属于较早的迭代版本,旧版本Power Query存在部分动态网页内容解析兼容bug,可先将Office更新到最新正式版后重试操作。
- 临时落地方案:如果线上请求调试成本较高,可先通过Chrome将持仓数据文件下载到本地,使用Power Query「自本地文件」功能加载数据完成基础配置,后续调试通线上请求逻辑后再替换数据源地址即可。
内容的提问来源于stack exchange,提问作者Robbo
相关产品推荐
相关产品推荐

