如何通过Coda API删除表格行?无需预先知晓行ID的方法
使用Google App Script调用Coda API操作表格行
已知行ID时批量删除行
你可以直接用以下代码批量删除指定行ID的表格行,注意先通过「资源->库」导入CodaAPI库:
// 导入CodaAPI库:通过资源->库,添加对应的库ID CodaAPI.authenticate('<你的API令牌>'); var body = { 'rowIds': ['i-aBcDeFgH', 'i-AbCdEfGh'], // 替换为目标行ID }; CodaAPI.deleteRows('<文档ID>', '<表格ID>', body); Logger.log('已删除2行');
一、获取表格中的行ID列表
如果需要获取表格的所有行ID,或者按条件筛选行ID,可以调用listRows接口获取行数据,从中提取ID:
CodaAPI.authenticate('<你的API令牌>'); var docId = '<文档ID>'; var tableId = '<表格ID>'; // 获取表格行数据,可添加query参数筛选(比如按列值过滤) var rowsResponse = CodaAPI.listRows(docId, tableId, { // 可选:添加筛选条件,例如筛选"状态"列值为"已完成"的行 // query: '状态="已完成"' }); var rowIds = rowsResponse.items.map(function(row) { return row.id; }); Logger.log('获取到的行ID列表:' + rowIds);
如果需要按特定条件筛选行,在listRows的参数中加入query字段,语法遵循Coda的公式规则。
二、预先不知行ID时删除表格行
核心思路是先通过listRows获取目标行的ID,再调用deleteRows批量删除:
场景1:删除表格所有行
CodaAPI.authenticate('<你的API令牌>'); var docId = '<文档ID>'; var tableId = '<表格ID>'; // 1. 获取所有行ID var rowsResponse = CodaAPI.listRows(docId, tableId); var rowIds = rowsResponse.items.map(row => row.id); // 2. 批量删除(注意Coda API有单次请求的行数量限制,超过需分批处理) if (rowIds.length > 0) { var body = { rowIds: rowIds }; CodaAPI.deleteRows(docId, tableId, body); Logger.log('已删除' + rowIds.length + '行'); } else { Logger.log('表格中无行可删除'); }
场景2:按条件删除指定行
比如删除「到期日期」早于今天的行:
CodaAPI.authenticate('<你的API令牌>'); var docId = '<文档ID>'; var tableId = '<表格ID>'; // 1. 筛选目标行并获取ID var rowsResponse = CodaAPI.listRows(docId, tableId, { query: '到期日期<Today()' }); var rowIds = rowsResponse.items.map(row => row.id); // 2. 批量删除 if (rowIds.length > 0) { CodaAPI.deleteRows(docId, tableId, { rowIds: rowIds }); Logger.log('已删除' + rowIds.length + '符合条件的行'); } else { Logger.log('无符合条件的行可删除'); }
注意:Coda API的
deleteRows接口单次最多支持删除500行,如果需要删除的行数超过这个限制,需要将行ID列表拆分后分批调用接口。
内容的提问来源于stack exchange,提问作者alyssaeliyah
相关产品推荐
相关产品推荐

