如何在Google App Scripts中使用Airtable API的filterByFormula?
如何在Google Apps Script中使用Airtable的filterByFormula参数
嘿,很高兴看到你已经能成功从Airtable拉取记录了!关于filterByFormula参数的用法,我来给你拆解一下怎么在你的代码里实现灵活的记录筛选。
首先,filterByFormula允许你用Airtable的公式语法精准筛选记录,比单纯依赖视图更灵活——你可以直接在请求里定义筛选逻辑,不用提前在Airtable里创建视图。
具体实现步骤
编写筛选公式:用Airtable的公式语法定义你的筛选规则,比如:
- 筛选「Status」字段等于「未录入」的记录:
{Status} = "未录入" - 筛选「Amount」大于100且「Date」在2024年之后的记录:
AND({Amount} > 100, {Date} > DATE(2024,1,1))
注意:字段名必须用大括号
{}包裹,字符串值要加双引号,数字和日期直接写即可。- 筛选「Status」字段等于「未录入」的记录:
URL编码公式:因为公式里可能包含空格、引号等特殊字符,必须用
encodeURIComponent()编码,避免请求出错。拼接URL参数:把编码后的公式作为
filterByFormula参数加到你的请求URL里,和其他参数用&连接。
修改后的完整代码示例
function mweWithFilter() { const API_KEY = SECRET; const BASE_URL = BASE; // 1. 定义你的筛选公式 const filterFormula = '{Status} = "未录入"'; // 2. 对公式进行URL编码 const encodedFilter = encodeURIComponent(filterFormula); // 3. 拼接完整请求URL,加入filterByFormula参数 const url = `https://api.airtable.com/v0/${BASE_URL}/TRNO?api_key=${API_KEY}&maxRecords=3&view=All%20not%20entered&filterByFormula=${encodedFilter}`; const response = UrlFetchApp.fetch(url); const result = JSON.parse(response.getContentText()); const myResult = result["records"]; Logger.log(myResult); }
额外注意事项
- 视图与filterByFormula的叠加效果:如果你同时指定了
view和filterByFormula,Airtable会先应用视图的过滤规则,再用filterByFormula进一步筛选结果。 - 公式测试技巧:可以先在Airtable里创建一个临时公式字段,测试你的筛选公式是否能得到预期结果,再把公式复制到代码里编码使用,这样能避免语法错误。
内容的提问来源于stack exchange,提问作者ThatChrisGuy
相关产品推荐
相关产品推荐

