Google Sheets API v4:添加命名或受保护的范围
Google Sheets API v4: Add named or protected ranges
无法从 Google Apps 脚本获取 Google Sheets API v4 代码以将 named/protected 范围添加到 Google Sheet,使用了此处的代码示例 [[link]][1]。它给出了错误(正确的 json 形式是什么?):
Invalid JSON payload received. Unknown name "requests": Cannot find field. (line 5, file "Code")
代码如下:
function protectSheet() {
var sheetId = "sheet id";
var spreadsheetId = "spreadsheet id";
Sheets.Spreadsheets.Values.batchUpdate(
{
"requests": [
{
"addNamedRange": {
"namedRange": {
"name": "Counts",
"range": {
"sheetId": sheetId,
"startRowIndex": 0,
"endRowIndex": 3,
"startColumnIndex": 0,
"endColumnIndex": 5,
},
}
}
},
{
"addProtectedRange": {
"protectedRange": {
"range": {
"sheetId": sheetId,
"startRowIndex": 3,
"endRowIndex": 4,
"startColumnIndex": 0,
"endColumnIndex": 5,
},
"description": "Protecting total row",
"warningOnly": true
}
}
}
]
}, spreadsheetId);
}
[1]: https://developers.google.com/sheets/api/samples/ranges
我认为您的请求正文是正确的。那么修改如下呢?
发件人:
Sheets.Spreadsheets.Values.batchUpdate(
收件人:
Sheets.Spreadsheets.batchUpdate(
参考:
如果您对请求正文有任何疑问,请告诉我。我要考虑的问题。
编辑:
Invalid value at 'requests[0].add_named_range.named_range.range.sheet_id' (TYPE_INT32), "sheet id" Invalid
从您的错误信息中,发现您使用sheet id
作为sheet ID。因此,请将 sheet ID 从 sheet id
修改为正确的 ID。
如果您想手动检索 sheet ID。请检查 here。
如果您想使用脚本检索 sheet ID,这个怎么样?
var spreadsheetId = "spreadsheet id"; // Please set spreadsheetId here.
var ss = SpreadsheetApp.openById(spreadsheetId);
var sheetId = ss.getSheetByName(sheetName).getSheetId(); // sheetName is the sheet name of each sheet.
或
var sheetId = ss.getSheets()[index].getSheetId(); // index is the index of sheet. This is start from 0.
无法从 Google Apps 脚本获取 Google Sheets API v4 代码以将 named/protected 范围添加到 Google Sheet,使用了此处的代码示例 [[link]][1]。它给出了错误(正确的 json 形式是什么?):
Invalid JSON payload received. Unknown name "requests": Cannot find field. (line 5, file "Code")
代码如下:
function protectSheet() {
var sheetId = "sheet id";
var spreadsheetId = "spreadsheet id";
Sheets.Spreadsheets.Values.batchUpdate(
{
"requests": [
{
"addNamedRange": {
"namedRange": {
"name": "Counts",
"range": {
"sheetId": sheetId,
"startRowIndex": 0,
"endRowIndex": 3,
"startColumnIndex": 0,
"endColumnIndex": 5,
},
}
}
},
{
"addProtectedRange": {
"protectedRange": {
"range": {
"sheetId": sheetId,
"startRowIndex": 3,
"endRowIndex": 4,
"startColumnIndex": 0,
"endColumnIndex": 5,
},
"description": "Protecting total row",
"warningOnly": true
}
}
}
]
}, spreadsheetId);
}
[1]: https://developers.google.com/sheets/api/samples/ranges
我认为您的请求正文是正确的。那么修改如下呢?
发件人:
Sheets.Spreadsheets.Values.batchUpdate(
收件人:
Sheets.Spreadsheets.batchUpdate(
参考:
如果您对请求正文有任何疑问,请告诉我。我要考虑的问题。
编辑:
Invalid value at 'requests[0].add_named_range.named_range.range.sheet_id' (TYPE_INT32), "sheet id" Invalid
从您的错误信息中,发现您使用sheet id
作为sheet ID。因此,请将 sheet ID 从 sheet id
修改为正确的 ID。
如果您想手动检索 sheet ID。请检查 here。
如果您想使用脚本检索 sheet ID,这个怎么样?
var spreadsheetId = "spreadsheet id"; // Please set spreadsheetId here.
var ss = SpreadsheetApp.openById(spreadsheetId);
var sheetId = ss.getSheetByName(sheetName).getSheetId(); // sheetName is the sheet name of each sheet.
或
var sheetId = ss.getSheets()[index].getSheetId(); // index is the index of sheet. This is start from 0.