Rangos con nombre y protegidos

La API de Hojas de cálculo de Google te permite crear, modificar y borrar rangos con nombre o protección. En los ejemplos de esta página, se muestra cómo realizar algunas operaciones comunes de Hojas de cálculo con la API de Hojas de cálculo.

Estos ejemplos se presentan en forma de solicitudes HTTP para que tengan lenguaje neutral. Para aprender a implementar una actualización por lotes en diferentes lenguajes mediante las bibliotecas cliente de la API de Google, consulta Cómo actualizar hojas de cálculo.

En estos ejemplos, los marcadores de posición SPREADSHEET_ID y SHEET_ID indican dónde deberías proporcionar esos ID. Puedes encontrar el ID de la hoja de cálculo en la URL de la hoja de cálculo. Para obtener el ID de la hoja, puedes usar el método spreadsheets.get. Los rangos se especifican con la notación A1. Un rango de ejemplo es Sheet1!A1:D5.

Además, los marcadores de posición NAMED_RANGE_ID y PROTECTED_RANGE_ID proporcionan los ID para los rangos con nombre y protección. namedRangeId y protectedRangeId se usan cuando se realizan solicitudes para actualizar o borrar los rangos asociados. El ID se muestra en la respuesta a una solicitud a la API de Hojas de cálculo que crea un rango con nombre o protegido. Puedes obtener los ID de los rangos existentes con el método spreadsheets.get en el cuerpo de la respuesta Spreadsheet.

Agregar rangos con nombre o protegidos

En la siguiente muestra de código spreadsheets.batchUpdate, se indica cómo usar 2 objetos de solicitud. El primero usa AddNamedRangeRequest para asignar el nombre "Counts" al rango A1:E3. La segunda usa AddProtectedRangeRequest para adjuntar una protección de nivel de advertencia al rango A4:E4. Este nivel de protección aún permite editar las celdas dentro del rango, pero solicita una advertencia antes de realizar el cambio.

Estas solicitudes muestran un AddNamedRangeResponse y un AddProtectedRangeResponse, que contienen los IDs de rango y las propiedades.

El protocolo de solicitud se muestra a continuación.

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

Borrar rangos con nombre o protegidos

En la siguiente muestra de código spreadsheets.batchUpdate, se indica cómo usar 2 objetos de solicitud. La primera usa DeleteNamedRangeRequest para borrar un rango con nombre existente usando el NAMED_RANGE_ID de una llamada anterior a la API. En la segunda, se usa DeleteProtectedRangeRequest para borrar una protección de rango existente mediante el PROTECTED_RANGE_ID de una llamada a la API anterior.

El protocolo de solicitud se muestra a continuación.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteNamedRange": {
          "namedRangeId": "NAMED_RANGE_ID",
      }
    },
    {
      "deleteProtectedRange": {
        "protectedRangeId": PROTECTED_RANGE_ID,
      }
    }
  ]
}

Actualiza rangos con nombre o protegidos

En la siguiente muestra de código spreadsheets.batchUpdate, se indica cómo usar 2 objetos de solicitud. El primero usa UpdateNamedRangeRequest para actualizar el nombre de un rango con nombre existente a "InitialCounts", mediante el NAMED_RANGE_ID de una llamada a la API anterior. En el segundo, se usa UpdateProtectedRangeRequest para actualizar un rango protegido existente, de modo que ahora proteja al mismo rango con nombre. El método Editors solo permite que los usuarios de la lista editen esas celdas. Esta solicitud usa NAMED_RANGE_ID y PROTECTED_RANGE_ID de llamadas a la API anteriores.

El protocolo de solicitud se muestra a continuación.

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