我不确定我是否犯了错误,或者这可能与此处报道的相同问题有关:
Google Sheets API V4 - Autofill Error - No grid with id: 0
我得到了:
HttpError 400
"无效请求[0] .addProtectedRange:没有ID为1"
代码是这样的(删除了额外的addProtectedRange对象)
def add_protected_ranges(spreadsheet_id):
service = get_sheets_service()
requests = [
{
"addProtectedRange": {
'protectedRange': {
"range": {
"sheetId": 1,
"startRowIndex": 0,
"endRowIndex": 0,
"startColumnIndex": 0
},
"description": "Headers must not be changed",
"warningOnly": True
}
}
}
]
body = {
'requests': requests
}
response = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id,
body=body).execute()
答案 0 :(得分:3)
有同样的问题。我将表单ID 与表索引混淆。
当您打开电子表格/工作表时,最简单的方法是在浏览器网址中找到 工作表ID :https://docs.google.com/spreadsheets/d/ {spreadsheetId} 强> /编辑#GID = <强> {sheetId} 强>
如果您正在寻找更具程序化的方式,则可以在SheetProperties上找到该属性。
答案 1 :(得分:2)
我知道这是一个老问题,但我也在寻找它。您正在寻找:
res.data.sheets[].properties.sheetId
要获取sheetId
(而不是spreadsheetId
),请使用:
sheets.spreadsheets.get({
spreadsheetId
}).then(res => {
console.log("All the sheets:");
for(i in res.data.sheets) {
let title = res.data.sheets[i].properties.title;
let id = res.data.sheets[i].properties.sheetId;
console.log(title + ': ' + id);
}
});
答案 2 :(得分:0)
请确保您的电子表格中有一个工作簿,其ID为1。在Google工作表中,电子表格可以包含多个工作表(网格),每个工作表(网格)都有唯一的ID。