簡體   English   中英

Google Sheets API v4:添加命名或受保護的范圍

[英]Google Sheets API v4: Add named or protected ranges

無法從Google Apps腳本獲取用於將已命名/受保護范圍添加到Google Sheet的Google Sheets API v4代碼,請使用此處的代碼示例[[link]] [1]。 它給出了錯誤(正確的json格式是什么?):

接收到無效的JSON有效負載。 未知名稱“ requests”:找不到字段。 (第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

我認為您的要求內容正確。 那么如何進行如下修改?

從:

Sheets.Spreadsheets.Values.batchUpdate(

至:

Sheets.Spreadsheets.batchUpdate(

參考:

如果請求正文有任何問題,請告訴我。 我想考慮這些問題。

編輯:

“ requests [0] .add_named_range.named_range.range.sheet_id”(TYPE_INT32)上的值無效,“工作表ID”無效

從錯誤消息中,發現您使用工作sheet id作為工作表ID。 因此,請將工作表ID從工作sheet id修改為正確的ID。

如果要手動獲取工作表ID。 在這里檢查。

如果要使用腳本檢索工作表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.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM