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

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

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, spreadsheets.get yöntemini kullanarak Spreadsheetyanı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ımlar" adını atamak için AddNamedRangeRequest kullanılır. İkinci formül, A4:E4 aralığına uyarı düzeyinde koruma eklemek için AddProtectedRangeRequest değerini kullanır. Bu düzey koruması, aralıktaki hücrelerin düzenlenmesine izin vermeye devam eder ancak değişiklik yapmadan önce bir uyarı gösterir.

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ındaki NAMED_RANGE_ID ve PROTECTED_RANGE_ID öğelerini 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"
      }
    }
  ]
}