如何通过Google Sheets API为已保护工作表添加未保护范围?
实现方法说明
可以通过更新已有受保护范围的配置直接修改unprotectedRanges数组,不需要单独的追加接口,操作步骤如下:
- 先调用
spreadsheets.protectedRanges.get接口获取目标受保护范围的完整配置,记录两个核心信息:该范围的protectedRangeId、现有unprotectedRanges数组的全部内容 - 构造你需要取消保护的3个单元格的范围对象,格式和接口返回的range结构一致,遵循左闭右开的索引规则:比如A1单元格对应的配置为
{"sheetId": 你的工作表ID, "startRowIndex": 0, "endRowIndex": 1, "startColumnIndex": 0, "endColumnIndex": 1} - 将3个新的范围对象追加到原有
unprotectedRanges数组中,得到合并后的完整数组 - 调用
spreadsheets.protectedRanges.update接口提交修改,需要在请求查询参数中添加updateMask=unprotectedRanges,确保仅修改未保护范围配置,不会覆盖受保护范围的其他权限、描述等设置
请求体示例
{ "unprotectedRanges": [ // 原有未保护范围保留 {"sheetId": 123456, "startRowIndex": 0, "endRowIndex": 2, "startColumnIndex": 0, "endColumnIndex": 1}, // 新增的3个单元格范围 {"sheetId": 123456, "startRowIndex": 5, "endRowIndex": 6, "startColumnIndex": 2, "endColumnIndex": 3}, {"sheetId": 123456, "startRowIndex": 7, "endRowIndex": 8, "startColumnIndex": 2, "endColumnIndex": 3}, {"sheetId": 123456, "startRowIndex": 9, "endRowIndex": 10, "startColumnIndex": 2, "endColumnIndex": 3} ] }
注意事项
- 不要直接传入仅包含新增3个范围的数组,必须合并原有未保护范围后再提交,否则原有未保护范围会被覆盖
- 确保你调用接口的账号对该工作表有编辑保护范围的权限,否则会返回权限错误
内容的提问来源于stack exchange,提问作者user17312265
相关产品推荐
相关产品推荐

