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

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개의 요청 객체를 사용하는 방법을 보여줍니다. 첫 번째는 이전 API 호출의 NAMED_RANGE_ID를 사용하여 DeleteNamedRangeRequest를 사용하여 기존 이름이 지정된 범위를 삭제합니다. 두 번째는 DeleteProtectedRangeRequest를 사용하여 이전 API 호출의 PROTECTED_RANGE_ID를 사용하여 기존 범위 보호를 삭제합니다.

요청 프로토콜은 아래와 같습니다.

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

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

다음 spreadsheets.batchUpdate 코드 샘플은 2개의 요청 객체를 사용하는 방법을 보여줍니다. 첫 번째는 이전 API 호출의 NAMED_RANGE_ID를 사용하여 UpdateNamedRangeRequest를 사용하여 기존 이름이 지정된 범위의 이름을 '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"
      }
    }
  ]
}