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, dilden bağımsız olarak HTTP istekleri şeklinde sunulur. Google API istemci kitaplıklarını kullanarak farklı dillerde toplu güncelleme yapmayı öğrenmek için E-tabloları güncelleme bölümüne bakın.

Bu örneklerde SPREADSHEET_ID ve SHEET_ID yer tutucuları, bu kimlikleri nerede sağlayacağınızı 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. Örneğin Sayfa1!A1:D5.

Ayrıca 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üncelleme veya silme isteğinde 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övdesinde spreadsheets.get yöntemiyle alabilirsiniz.

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

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 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ı sil

Aşağıdaki spreadsheets.batchUpdate kod örneğinde 2 istek nesnesinin nasıl kullanılacağı gösterilmektedir. İlki, DeleteNamedRangeRequest aracılığıyla mevcut bir adlandırılmış aralığı silmek amacıyla, önceki API çağrısındaki NAMED_RANGE_ID parametresini kullanır. İkincisi ise önceki bir API çağrısına ait PROTECTED_RANGE_ID öğesini kullanarak mevcut bir aralık korumasını silmek için DeleteProtectedRangeRequest öğesini 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. Birincisi, UpdateNamedRangeRequest kullanarak mevcut bir adlandırılmış aralığın adını, önceki API çağrısındaki NAMED_RANGE_ID değerini kullanarak "InitialCounts" olarak güncellemek için kullanılır. İkincisi ise mevcut korunan bir aralığı güncellemek için UpdateProtectedRangeRequest kullanılarak artık aynı adlandırılmış aralık korunuyor. Editors yöntemi, bu hücreleri yalnızca listelenen kullanıcıların düzenlemesine izin verir. 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"
      }
    }
  ]
}