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

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 işlemini nasıl uygulayacağınızı öğ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 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 korumalı aralıkların kimliklerini sağlar. İlişkili aralıkları güncelleme veya silme istekleri gönderilirken namedRangeId ve protectedRangeId kullanılır. Kimlik, adlandırılmış veya korumalı bir aralık oluşturan E-Tablolar 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 "Counts" adı atanırken AddNamedRangeRequest kullanılır. İkincisinde ise A4:E4 aralığına uyarı düzeyinde koruma eklemek için AddProtectedRangeRequest kullanılır. 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 özelliklerini içeren bir AddNamedRangeResponse ve bir AddProtectedRangeResponse döndürür.

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

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 kullanılarak mevcut bir aralık korumasını silmek için DeleteProtectedRangeRequest kullanır.

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

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 ise UpdateProtectedRangeRequest kullanarak mevcut bir korumalı aralığı, aynı adlı aralığı koruyacak şekilde günceller. Editors yöntemi, yalnızca listelenen kullanıcıların bu hücreleri düzenlemesine izin verir. Bu istek, önceki API çağrılarından NAMED_RANGE_ID ve PROTECTED_RANGE_ID değerlerini kullanır.

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

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