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

Google Sheets API를 사용하면 이름이 지정되거나 보호된 범위를 만들고 수정하고 삭제할 수 있습니다. 이 페이지의 예시는 Sheets API로 일반적인 스프레드시트 작업을 수행하는 방법을 보여줍니다.

이 예는 언어 중립을 위해 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 요청에 대한 응답으로 반환됩니다. 기존 범위의 ID는 Spreadsheet 응답 본문의 spreadsheets.get 메서드를 사용하여 가져올 수 있습니다.

이름이 지정되거나 보호된 범위 추가

다음 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를 사용하여 이름이 지정된 기존 범위를 삭제합니다. 두 번째 방법은 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개를 사용하는 방법을 보여줍니다. 첫 번째는 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"
      }
    }
  ]
}