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

Google Sheets API, adlandırılmış veya korumalı aralıklar oluşturmanıza, bunları değiştirmenize ve silmenize olanak tanır. Bu sayfadaki örnekler, Sheets API ile bazı genel E-Tablolar işlemlerini nasıl gerçekleştirebileceğinizi göstermektedir.

Bu örnekler, dil açısından tarafsız olması için HTTP istekleri biçiminde sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme yapmayı öğrenmek için E-tabloları güncelleme başlıklı makaleyi inceleyin.

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 e-tablo kimliğini alabilirsiniz. Aralıklar A1 gösterimi kullanılarak belirtilir. Örnek aralık: Sayfa1!A1:D5.

Ayrıca NAMED_RANGE_ID ve PROTECTED_RANGE_ID yer tutucuları, adlandırılmış ve korunan aralıkların kimliklerini sağlar. namedRangeId ve protectedRangeId, ilişkili aralıkları güncelleme veya silme isteği yapılırken kullanılır. Kimlik, adlandırılmış veya korumalı bir aralık oluşturan bir E-Tablolar API isteğine yanıt olarak döndürülür. Mevcut aralıkların kimliklerini Spreadsheet yanıt gövdesinde spreadsheets.get yöntemiyle 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. Birincisinde AddNamedRangeRequest kullanılarak A1:E3 aralığına "Sayım" adı atanır. İkincisi, A4:E4 aralığına uyarı düzeyinde bir koruma eklemek için AddProtectedRangeRequest kullanır. Bu düzey koruma, aralık içindeki hücrelerin düzenlenmesine izin vermeye devam eder, ancak değişiklik yapılmadan önce bir uyarı gönderir.

Bu istekler, aralık kimliklerini ve özelliklerini içeren bir AddNamedRangeResponse ve 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ındaki NAMED_RANGE_ID değerini kullanarak mevcut bir adlandırılmış aralığı silmek için DeleteNamedRangeRequest işlevi kullanılır. İkinci örnekte, önceki bir API çağrısından alınan PROTECTED_RANGE_ID değerini kullanarak mevcut bir aralık korumasını silmek için DeleteProtectedRangeRequest işlevi kullanılı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. İlkinde, önceki bir API çağrısından alınan NAMED_RANGE_ID değerini kullanarak mevcut bir adlandırılmış aralığın adını "InitialCounts" olarak güncellemek için UpdateNamedRangeRequest işlevi kullanılır. İkinci örnekte, mevcut bir korumalı aralığın adını aynı adla korunacak şekilde güncellemek için UpdateProtectedRangeRequest işlevi kullanılır. Editors yöntemi, yalnızca listelenen kullanıcıların bu hücreleri düzenlemesine olanak tanır. Bu istek, önceki API çağrılarına ait NAMED_RANGE_ID ve PROTECTED_RANGE_ID alanlarını kullanır.

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