如何用jQuery AJAX正确删除Google Sheets中的整行?
修正Google Sheets AJAX删除行的代码问题
你的代码存在三个核心问题:请求方式错误、API地址错误、请求数据格式不正确,以下是具体修正方案:
错误点说明
- 请求方式错误:Google Sheets的行删除操作需通过
batchUpdate接口实现,该接口要求使用POST请求,而非DELETE - API地址错误:正确的接口地址是
https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}:batchUpdate,不能直接指向单元格范围 - 请求数据格式错误:
deleteDimension操作需要包裹在requests数组中,且不能注释掉data参数
修正后的代码
var deleteRequest = { "requests": [ { "deleteDimension": { "range": { "sheetId": sheetId, // 此处为具体工作表的ID,不是整个表格的ID "dimension": "ROWS", "startIndex": 276, "endIndex": 277 } } } ] }; $.ajax({ type: 'POST', headers: { Authorization: "Bearer " + auth, 'content-type': 'application/json' }, data: JSON.stringify(deleteRequest), url: 'https://sheets.googleapis.com/v4/spreadsheets/' + spreadsheetId + ':batchUpdate', // 此处传入整个Google Sheets文档的ID success: function (r) { console.log("行删除成功", r); }, error: function (r) { console.log("删除失败", r.responseText); } });
额外注意事项
- 区分表格ID和工作表ID:
spreadsheetId是整个Google Sheets文档的ID(URL中d/与/edit之间的字符串),sheetId是具体工作表的ID(可通过工作表右键"查看源代码"或API获取) - 索引从0开始:
startIndex:276对应第277行,endIndex:277表示仅删除该行,匹配你的需求 - 确保授权令牌
auth拥有https://www.googleapis.com/auth/spreadsheets的权限
内容的提问来源于stack exchange,提问作者user3369120
相关产品推荐
相关产品推荐

