이름이 지정되고 보호된 범위

Google Sheets API를 사용하면 이름이 지정된 범위 또는 보호된 범위를 만들고, 수정하고, 삭제할 수 있습니다. 이 페이지의 예에서는 Sheets API를 사용하여 일반적인 Sheets 작업을 실행하는 방법을 보여줍니다.

이러한 예는 언어 중립성을 위해 HTTP 요청 형식으로 표시됩니다. Google API 클라이언트 라이브러리를 사용하여 여러 언어로 일괄 업데이트를 구현하는 방법은 스프레드시트 업데이트를 참고하세요.

이 예에서 자리표시자 SPREADSHEET_IDSHEET_ID는 이러한 ID를 제공할 위치를 나타냅니다. 스프레드시트 URL에서 스프레드시트 ID를 확인할 수 있습니다. spreadsheets.get 메서드를 사용하여 시트 ID를 가져올 수 있습니다. 범위는 A1 표기법을 사용하여 지정됩니다. 예를 들어 범위는 Sheet1!A1:D5입니다.

또한 자리표시자 NAMED_RANGE_IDPROTECTED_RANGE_ID는 이름이 지정되고 보호된 범위의 ID를 제공합니다. namedRangeIdprotectedRangeId는 연결된 범위를 업데이트하거나 삭제하도록 요청할 때 사용됩니다. 이 ID는 이름이 지정된 범위 또는 보호된 범위를 만드는 Sheets API 요청에 대한 응답으로 반환됩니다. Spreadsheet 응답 본문에서 spreadsheets.get 메서드를 사용하여 기존 범위의 ID를 가져올 수 있습니다.

이름이 지정된 범위 또는 보호된 범위 추가

다음 spreadsheets.batchUpdate 코드 샘플은 요청 객체 2개를 사용하는 방법을 보여줍니다. 첫 번째는 AddNamedRangeRequest를 사용하여 A1:E3 범위에 'Counts'라는 이름을 할당합니다. 두 번째는 AddProtectedRangeRequest를 사용하여 A4:E4 범위에 경고 수준 보호를 연결합니다. 이 수준의 보호는 범위 내 셀을 수정할 수 있도록 허용하지만 변경하기 전에 경고를 표시합니다.

이러한 요청은 범위 ID 및 속성이 포함된 AddNamedRangeResponseAddProtectedRangeResponse를 반환합니다.

요청 프로토콜은 다음과 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addNamedRange": {
        "namedRange": {
          "name": "Counts",
          "range": {
            "sheetId": SHEET_ID,
            "startRowIndex": 0,
            "endRowIndex": 3,
            "startColumnIndex": 0,
            "endColumnIndex": 5,
          },
        }
      }
    },
    {
      "addProtectedRange": {
        "protectedRange": {
          "range": {
            "sheetId": SHEET_ID,
            "startRowIndex": 3,
            "endRowIndex": 4,
            "startColumnIndex": 0,
            "endColumnIndex": 5,
          },
          "description": "Protecting total row",
          "warningOnly": true
        }
      }
    }
  ]
}

이름이 지정된 범위 또는 보호된 범위 삭제

다음 spreadsheets.batchUpdate 코드 샘플은 요청 객체 2개를 사용하는 방법을 보여줍니다. 첫 번째는 DeleteNamedRangeRequest를 사용하여 이전 API 호출의 NAMED_RANGE_ID를 사용하여 기존의 이름이 지정된 범위를 삭제합니다. 두 번째는 이전 API 호출의 PROTECTED_RANGE_ID를 사용하여 DeleteProtectedRangeRequest를 사용하여 기존 범위 보호를 삭제합니다.

요청 프로토콜은 다음과 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteNamedRange": {
          "namedRangeId": "NAMED_RANGE_ID",
      }
    },
    {
      "deleteProtectedRange": {
        "protectedRangeId": PROTECTED_RANGE_ID,
      }
    }
  ]
}

이름이 지정된 범위 또는 보호된 범위 업데이트

다음 spreadsheets.batchUpdate 코드 샘플은 요청 객체 2개를 사용하는 방법을 보여줍니다. 첫 번째는 UpdateNamedRangeRequest를 사용하여 이전 API 호출의 NAMED_RANGE_ID를 사용하여 기존 이름이 지정된 범위의 이름을 'InitialCounts'로 업데이트합니다. 두 번째는 UpdateProtectedRangeRequest를 사용하여 기존의 보호된 범위를 업데이트하여 이제 동일한 이름의 범위를 보호합니다. Editors 메서드를 사용하면 나열된 사용자만 해당 셀을 수정할 수 있습니다. 이 요청은 이전 API 호출의 NAMED_RANGE_IDPROTECTED_RANGE_ID를 사용합니다.

요청 프로토콜은 다음과 같습니다.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateNamedRange": {
        "namedRange": {
          "namedRangeId": NAMED_RANGE_ID,
          "name": "InitialCounts",
        },
        "fields": "name",
      }
    },
    {
      "updateProtectedRange": {
        "protectedRange": {
          "protectedRangeId": PROTECTED_RANGE_ID,
          "namedRangeId": NAMED_RANGE_ID,
          "warningOnly": false,
          "editors": {
            "users": [
              "charlie@example.com",
              "sasha@example.com"
            ]
          }
        },
        "fields": "namedRangeId,warningOnly,editors"
      }
    }
  ]
}