Google Sheets API v4: добавление именованных или защищенных диапазонов - PullRequest
0 голосов
/ 14 декабря 2018

Не удается получить код Google Sheets API v4, работающий из скрипта Google Apps для добавления именованных / защищенных диапазонов в Google Sheet, здесь используется пример кода [[ссылка]] [1].Это выдает ошибку (что является правильной формой json для этого?):

Получена недопустимая полезная нагрузка JSON.Неизвестное имя «запросы»: не удается найти поле.(строка 5, файл "Код")

Ниже приведен код:

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

1 Ответ

0 голосов
/ 14 декабря 2018

Я думаю, что ваше тело запроса верное.Так как насчет изменения следующим образом?

С:

Sheets.Spreadsheets.Values.batchUpdate(

Кому:

Sheets.Spreadsheets.batchUpdate(

Ссылка:

Если у вас есть какие-либо проблемы с телом запроса, пожалуйста, сообщите мне.Я хотел бы подумать о проблемах.

Редактировать:

Недопустимое значение в 'запросы [0] .add_named_range.named_range.range.sheet_id' (TYPE_INT32), "идентификатор листа«Неверно

Из вашего сообщения об ошибке обнаружено, что вы используете sheet id в качестве идентификатора листа.Поэтому, пожалуйста, измените идентификатор листа с 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.
...