Adlandırılmış ve korumalı aralıklar

Google Sheets API, adlandırılmış veya korumalı aralıklar oluşturmanıza, değiştirmenize ve silmenize olanak tanır. Bu sayfadaki örneklerde, Sheets API ile bazı yaygın Sheets işlemlerini nasıl gerçekleştirebileceğiniz gösterilmektedir.

Bu örnekler, dilden bağımsız olması için HTTP istekleri şeklinde sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme yapmayı öğrenmek için E-tabloları güncelleme başlıklı makaleye bakın.

Bu örneklerde, SPREADSHEET_ID ve SHEET_ID yer tutucuları, bu kimlikleri nerede sağlayacağınızı gösterir. E-tablo kimliğini e-tablo URL'sinde bulabilirsiniz. spreadsheets.get yöntemini kullanarak sayfa kimliğini alabilirsiniz. Aralıklar, A1 gösterimi kullanılarak belirtilir. Örnek bir aralık: Sayfa1!A1:D5.

Ayrıca, NAMED_RANGE_ID ve PROTECTED_RANGE_ID yer tutucuları, adlandırılmış ve korunmuş aralıkların kimliklerini sağlar. İlişkili aralıkları güncelleme veya silme isteklerinde namedRangeId ve protectedRangeId kullanılır. Kimlik, adlandırılmış veya korumalı bir aralık oluşturan Sheets API isteğine verilen yanıtta döndürülür. Mevcut aralıkların kimliklerini spreadsheets.get yöntemiyle Spreadsheet yanıt gövdesinde alabilirsiniz.

Adlandırılmış veya korumalı aralıklar ekleme

Aşağıdaki spreadsheets.batchUpdate kod örneğinde, 2 istek nesnesinin nasıl kullanılacağı gösterilmektedir. İlkinde, A1:E3 aralığına "Sayılar" adını atamak için AddNamedRangeRequest kullanılır. İkincisinde ise A4:E4 aralığına uyarı düzeyinde koruma eklemek için AddProtectedRangeRequest kullanılıyor. Bu koruma düzeyi, aralıktaki hücrelerin düzenlenmesine izin vermeye devam eder ancak değişiklik yapılmadan önce uyarı gösterir.

Bu istekler, aralık kimliklerini ve özellikleri içeren bir AddNamedRangeResponse ve bir AddProtectedRangeResponse döndürür.

İstek protokolü aşağıda gösterilmiştir.

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
        }
      }
    }
  ]
}

Adlandırılmış veya korumalı aralıkları silme

Aşağıdaki spreadsheets.batchUpdate kod örneğinde, 2 istek nesnesinin nasıl kullanılacağı gösterilmektedir. İlkinde, önceki bir API çağrısından NAMED_RANGE_ID kullanılarak mevcut bir adlandırılmış aralığı silmek için DeleteNamedRangeRequest kullanılır. İkincisi ise önceki bir API çağrısından PROTECTED_RANGE_ID'ı kullanarak mevcut bir aralık korumasını silmek için DeleteProtectedRangeRequest'ı kullanır.

İstek protokolü aşağıda gösterilmiştir.

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

Adlandırılmış veya korumalı aralıkları güncelleme

Aşağıdaki spreadsheets.batchUpdate kod örneğinde, 2 istek nesnesinin nasıl kullanılacağı gösterilmektedir. İlk örnekte, önceki bir API çağrısından alınan NAMED_RANGE_ID kullanılarak mevcut bir adlandırılmış aralığın adı "InitialCounts" olarak güncellenir.UpdateNamedRangeRequest İkincisi, mevcut bir korumalı aralığı aynı adlı aralığı koruyacak şekilde güncellemek için UpdateProtectedRangeRequest kullanır. Editors yöntemi, yalnızca listelenen kullanıcıların bu hücreleri düzenlemesine izin verir. Bu istekte önceki API çağrılarından NAMED_RANGE_ID ve PROTECTED_RANGE_ID kullanılıyor.

İstek protokolü aşağıda gösterilmiştir.

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"
      }
    }
  ]
}