La API de Hojas de cálculo de Google te permite crear, modificar y borrar rangos nombrados o protegidos. En los ejemplos de esta página, se muestra cómo puedes 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 sean neutrales en cuanto al idioma. Para obtener información sobre cómo implementar una actualización por lotes en diferentes idiomas con 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 proporcionarías esos IDs. Puedes encontrar el ID de la hoja de cálculo en la URL de la hoja de cálculo. Puedes obtener el ID de la hoja con el método spreadsheets.get
. Los rangos se especifican con la notación A1. Un
rango de ejemplo es Hoja1!A1:D5.
Además, los marcadores de posición NAMED_RANGE_ID
y PROTECTED_RANGE_ID
proporcionan los IDs de los rangos nombrados y protegidos. 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 protegido o con nombre. Puedes obtener los IDs de los rangos existentes con el método spreadsheets.get
, en el cuerpo de la respuesta Spreadsheet
.
Agrega rangos protegidos o con nombre
En la siguiente muestra de código de spreadsheets.batchUpdate
, se muestra cómo usar 2 objetos de solicitud. El primero usa AddNamedRangeRequest
para asignarle el nombre “Cantidad” al rango A1:E3. El segundo usa AddProtectedRangeRequest
para adjuntar una protección de nivel de advertencia al rango A4:E4. Esta protección de nivel aún permite que se editen las celdas dentro del rango, pero muestra una advertencia antes de realizar el cambio.
Estas solicitudes muestran un AddNamedRangeResponse
y un AddProtectedRangeResponse
, que contienen los IDs y las propiedades del rango.
A continuación, se muestra el protocolo de solicitud.
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 } } } ] }
Borra rangos protegidos o con nombre
En la siguiente muestra de código de spreadsheets.batchUpdate
, se muestra cómo usar 2 objetos de solicitud. El primero usa DeleteNamedRangeRequest
para borrar un rango con nombre existente, con el NAMED_RANGE_ID
de una llamada a la API anterior. El segundo usa DeleteProtectedRangeRequest
para borrar una protección de rango existente con el PROTECTED_RANGE_ID
de una llamada a la API anterior.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "deleteNamedRange": { "namedRangeId": "NAMED_RANGE_ID
", } }, { "deleteProtectedRange": { "protectedRangeId":PROTECTED_RANGE_ID
, } } ] }
Cómo actualizar rangos protegidos o con nombre
En la siguiente muestra de código de spreadsheets.batchUpdate
, se muestra cómo usar 2 objetos de solicitud. El primero usa UpdateNamedRangeRequest
para actualizar el nombre de un rango con nombre existente a "InitialCounts", con el NAMED_RANGE_ID
de una llamada a la API anterior. El segundo usa UpdateProtectedRangeRequest
para actualizar un rango protegido existente de modo que ahora proteja el mismo rango con nombre. El método Editors
solo permite que los usuarios de la lista editen esas celdas. En esta solicitud, se usan NAMED_RANGE_ID
y PROTECTED_RANGE_ID
de llamadas a la API anteriores.
A continuación, se muestra el protocolo de solicitud.
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" } } ] }