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 örnekler, bazı yaygın E-Tablolar işlemlerini Sheets API ile nasıl gerçekleştirebileceğinizi göstermektedir.

Bu örnekler, dilsiz olması için HTTP istekleri biçiminde sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncellemenin nasıl uygulanacağını öğrenmek için E-tabloları güncelleme bölümüne bakın.

Bu örneklerde SPREADSHEET_ID ve SHEET_ID yer tutucuları, bu kimlikleri nereye gireceğinizi belirtir. E-tablo kimliğini e-tablonun URL'sinde bulabilirsiniz. Sayfa kimliğini spreadsheets.get yöntemini kullanarak alabilirsiniz. Aralıklar, A1 gösterimi kullanılarak belirtilir. Sayfa1!A1:D5 örnek aralıktır.

Buna ek olarak, NAMED_RANGE_ID ve PROTECTED_RANGE_ID yer tutucuları adlandırılmış ve korunan aralıklar için kimlikler sağlar. namedRangeId ve protectedRangeId, ilişkili aralıkları güncellemek veya silmek için istekte bulunurken kullanılır. Kimlik, adlandırılmış veya korumalı aralık oluşturan bir Sheets API isteğine yanıt olarak döndürülür. Mevcut aralıkların kimliklerini Spreadsheet yanıt gövdesindeki spreadsheets.get yöntemiyle alabilirsiniz.

Adlandırılmış veya korumalı aralık ekle

Aşağıdaki spreadsheets.batchUpdate kod örneğinde 2 istek nesnesinin nasıl kullanılacağı gösterilmektedir. Birincisi, A1:E3 aralığına "Counts" adı atamak için AddNamedRangeRequest kullanır. İkincisi ise A4:E4 aralığına uyarı düzeyinde bir koruma eklemek için AddProtectedRangeRequest kullanır. Bu seviye koruması, aralık içindeki hücrelerin düzenlenmesine izin verir ancak değişiklik yapılmadan önce uyarı verir.

Bu istekler, aralık kimliklerini ve özelliklerini 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 korunan aralıkları sil

Aşağıdaki spreadsheets.batchUpdate kod örneğinde 2 istek nesnesinin nasıl kullanılacağı gösterilmektedir. Birincisi, önceki bir API çağrısındaki NAMED_RANGE_ID kullanılarak mevcut bir adlandırılmış aralığı silmek için DeleteNamedRangeRequest öğesini kullanır. İkincisi ise önceki bir API çağrısındaki PROTECTED_RANGE_ID ile mevcut aralık korumasını silmek için DeleteProtectedRangeRequest 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üncelle

Aşağıdaki spreadsheets.batchUpdate kod örneğinde 2 istek nesnesinin nasıl kullanılacağı gösterilmektedir. Birincisi, UpdateNamedRangeRequest kullanılarak mevcut bir adlandırılmış aralığın adını "InitialCounts" olarak günceller ve önceki bir API çağrısındaki NAMED_RANGE_ID kullanılır. İkincisi ise mevcut, korunan bir aralığı güncellemek için UpdateProtectedRangeRequest öğesini kullanır. Böylece, artık aynı adlandırılmış aralığı korur. Editors yöntemi, yalnızca listelenen kullanıcıların bu hücreleri düzenlemesine izin verir. 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"
      }
    }
  ]
}