Excel PowerQuery利用首查参数构造URL批量获取行扩展数据的方法
PowerQuery 批量查询行扩展数据实现方案
步骤1:创建参数化自定义函数
- 新建空白查询,将查询重命名为
fnGetExtendedInfo - 打开该查询的高级编辑器,替换为以下代码:
(infoUrl as text) as table => let Source = Json.Document(Web.Contents( infoUrl,[ Headers = [ #"Authority"="inventoryservice.website.com", #"Method"="POST", #"Accept"="*/*", #"Origin"="https://www.website.com", #"Referer"="https://www.website.com/", #"Content-Type"="application/json; charset=utf-8", #"User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0" ] ] )), #"Converted to Table" = Record.ToTable(Source), #"Transposed Table" = Table.Transpose(#"Converted to Table"), #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Type", type text}, {"SubType", type any}, {"style", type text}, {"color", type text}}) in #"Changed Type"
保存该函数查询。
步骤2:修改原基础查询调用函数
打开你已完成的首次基础查询的高级编辑器,在原有代码的in关键字前增加一行调用自定义函数的逻辑,修改后完整的末尾代码段如下:
/*原有逻辑:生成扩展信息URL*/ infoUrl = each "https://inventoryservice.website.com/InventoryExtendedInfo/" & Number.ToText([locID]) & "/" & Number.ToText([ticketID]) & "/" & Number.ToText([lineID]) & "/", #"Added Custom" = Table.AddColumn(#"Changed Type", "InfoUrl", infoUrl), /*新增逻辑:调用自定义函数获取扩展数据*/ #"Add Extended Data" = Table.AddColumn(#"Added Custom", "ExtendedData", each fnGetExtendedInfo([InfoUrl])) in #"Add Extended Data"
修改完成后保存查询。
步骤3:扩展关联字段
回到查询预览界面,找到新增的ExtendedData列,点击列标题右侧的展开按钮,勾选需要展示的扩展字段(Type、SubType、style、color等),确认后所有扩展信息会自动匹配到对应行完成关联。
异常处理
如果运行时触发Formula.Firewall隐私级别冲突错误,操作如下:
- 依次点击「文件」→「选项和设置」→「查询选项」
- 选中「隐私」分类,选择「忽略隐私级别并潜在地提高性能」,确认后重新刷新即可。
内容的提问来源于stack exchange,提问作者moosefist
相关产品推荐
相关产品推荐

