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

向Google Sheets feeds URL传入查询参数无法筛选表格数据

解决Google Sheets带筛选条件的JSON数据获取问题

我碰到过好几个开发者遇到这个问题,其实核心原因是你用的那个旧版Google Sheets Feed API(就是feeds/list开头的那个端点)已经被Google弃用停止维护了,里面的tq结构化查询参数早就不再生效,所以你的筛选规则会被直接忽略,返回表格里的全部条目。

下面给你两个可行的替代方案:

方案一:用Google Sheets API v4实现筛选(推荐)

这是Google目前官方支持的最新API,功能更稳定强大。如果你的表格是公开可访问的,可以按以下步骤操作:

  1. 先在Google Cloud控制台启用Google Sheets API,并生成一个API密钥(跟着官方指引操作即可)
  2. 构造API请求链接,结合QUERY逻辑获取筛选后的数据。比如你要筛选nama等于test1的行,可以先在表格里用QUERY函数生成一个筛选范围,再通过API获取这个范围的数据:
    https://sheets.googleapis.com/v4/spreadsheets/1xeVDIWxVZrkiUjSE1xX9xW--pEm93IL4BH3L1jmS_4A/values/FilteredData!A:Z?key=你的API密钥&valueRenderOption=UNFORMATTED_VALUE
    
    这里的FilteredData是你新建的工作表,里面用=QUERY('原始表名'!A:Z, "SELECT * WHERE nama = 'test1'", 1)生成了筛选后的数据。

方案二:用内置QUERY函数生成筛选范围后发布JSON

如果不想折腾API密钥,这个方法更简单:

  • 打开你的Google表格,新建一个工作表(比如叫FilteredResult)
  • 在这个新表的A1单元格输入公式:
    =QUERY('你的原始工作表名'!A:Z, "SELECT * WHERE nama = 'test1'", 1)
    
    注意把你的原始工作表名替换成实际的表名,nama要确保是表格里的列标题,字符串值test1要加单引号包裹
  • 点击文件 > 共享 > 发布到网页,在弹出的窗口里:
    • 选择发布的内容为FilteredResult工作表
    • 格式选择JSON
    • 点击发布,复制生成的链接,这个链接返回的就是你需要的筛选后JSON数据

另外提一句,就算旧API还能用,你原来的tq参数语法也有小问题:字符串值需要用单引号包裹,正确的参数应该是tq=select%20*%20where%20nama='test1',不过因为旧API已经弃用,这个修正也没什么意义了,还是用上面的新方案更靠谱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:39:47