You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Power Query自定义连接器中添加参数下拉列表并附加到API请求

如何在Power Query自定义连接器中添加下拉参数选择器?

这个需求太实用了——手动输入文本不仅麻烦,还容易打错导致API请求失败,换成固定选项的下拉框完美解决这个问题。我来帮你改造现有代码,实现这个功能:

核心思路

我们需要在Power Query中定义一个自定义枚举类型,把允许的short_term、medium_term、long_term(注意要和你的API接受的参数值对应)作为可选值,然后将函数参数的类型指定为这个自定义类型,这样Power Query的参数输入界面就会自动显示下拉列表了。

修改后的完整代码

// 第一步:定义自定义枚举类型,指定下拉选项和说明
TimeRangeType = type text meta [
    Documentation.FieldCaption = "时间范围",
    Documentation.FieldDescription = "选择要获取的数据时间范围",
    Type.List = {"short_term", "medium_term", "long_term"}, // 与API预期值匹配
    Type.IsNullable = false // 强制用户必须选择一个选项,若允许留空可改为true
]

// 导航器中暴露的函数
(time_range as TimeRangeType optional) as table => GetSomething(time_range)

// 实际请求函数
GetSomething = (time_range as TimeRangeType optional) => let
    // 处理默认值:如果用户没选(当参数可选时),用medium_term兜底
    _time_range = if time_range <> null then time_range else "medium_term",
    options = [
        Headers = [#"Content-Type" = "application/Json"],
        Query = [limit = "50", time_range=_time_range]
    ],
    source = Web.Contents("https://example.com/v1/me/", options),
    json = Json.Document(source),
    listOfItems = json[items]
in listOfItems;

关键细节说明

  • 自定义类型的元数据:Documentation里的内容会显示在Power Query的参数输入面板上,帮助用户理解每个选项的作用;Type.List就是下拉框里的可选值列表,必须严格和API接受的参数值一致。
  • 参数可选性:如果希望用户可以不选参数(用默认值),就在类型后面加optional,同时保留默认值的逻辑;如果想强制用户选择,就去掉optional并把Type.IsNullable设为false。
  • 避免错误:因为类型已经限制了可选值,用户再也不可能输入无效的文本,彻底避免了因参数错误导致的API请求失败。

内容的提问来源于stack exchange,提问作者Dreekun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:06:36