Puedes actualizar el formato de las celdas y los rangos dentro de las hojas de cálculo con la API de Google Sheets. En los ejemplos de esta página, se ilustra cómo se pueden lograr algunas operaciones de formato comunes con la API de Sheets. Puedes encontrar más ejemplos de formato condicional en la página de recetas de formato condicional.
Cuando se actualiza una hoja de cálculo, algunos tipos de solicitudes pueden devolver respuestas.
Se devuelven en un array, en el que cada respuesta ocupa el mismo índice que la solicitud correspondiente. Algunas solicitudes no tienen respuestas, y, en esos casos, la respuesta está vacía. La estructura de respuesta para estos ejemplos se puede encontrar en spreadsheets.batchUpdate
.
Estos ejemplos se presentan en forma de solicitudes HTTP para que sean independientes del idioma. Para obtener información sobre cómo implementar una actualización por lotes en diferentes lenguajes con las bibliotecas cliente de las APIs de Google, consulta Actualiza 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 su URL.
Puedes obtener el ID de la hoja con el método spreadsheets.get
. Los rangos se especifican con la notación A1. Un ejemplo de rango es Hoja1!A1:D5.
En el video anterior, aprenderás a dar formato a las celdas de la hoja de cálculo de varias maneras, como crear filas inmovilizadas, poner celdas en negrita, implementar el formato de moneda, realizar la validación de celdas y restringir los valores de las celdas.
Cómo editar los bordes de las celdas
En el siguiente ejemplo de código de spreadsheets.batchUpdate
, se muestra cómo usar UpdateBordersRequest
para asignar a cada celda del rango A1:F10 un borde superior e inferior discontinuo de color azul. El campo innerHorizontal
crea bordes horizontales en el interior del rango.
Si se omite el campo, solo se agregarán bordes en la parte superior e inferior de todo el rango.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateBorders": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 6 }, "top": { "style": "DASHED", "width": 1, "color": { "blue": 1.0 }, }, "bottom": { "style": "DASHED", "width": 1, "color": { "blue": 1.0 }, }, "innerHorizontal": { "style": "DASHED", "width": 1, "color": { "blue": 1.0 }, }, } } ] }
Cómo dar formato a una fila de encabezado
En la siguiente muestra de código de spreadsheets.batchUpdate
, se muestra cómo usar RepeatCellRequest
para dar formato a una fila de encabezado en una hoja. La primera solicitud actualiza el color del texto, el color de fondo, el tamaño de la fuente y la justificación del texto, y lo pone en negrita. Si se omiten los índices de columna en el campo range
, se formatea toda la fila. La segunda solicitud ajusta las propiedades de la hoja para que la fila de encabezado quede inmovilizada.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "repeatCell": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 1 }, "cell": { "userEnteredFormat": { "backgroundColor": { "red": 0.0, "green": 0.0, "blue": 0.0 }, "horizontalAlignment" : "CENTER", "textFormat": { "foregroundColor": { "red": 1.0, "green": 1.0, "blue": 1.0 }, "fontSize": 12, "bold": true } } }, "fields": "userEnteredFormat(backgroundColor,textFormat,horizontalAlignment)" } }, { "updateSheetProperties": { "properties": { "sheetId": SHEET_ID, "gridProperties": { "frozenRowCount": 1 } }, "fields": "gridProperties.frozenRowCount" } } ] }
Combina celdas
En la siguiente muestra de código de spreadsheets.batchUpdate
, se muestra cómo usar MergeCellsRequest
para combinar celdas. La primera solicitud combina el rango A1:B2 en una sola celda. La segunda solicitud combina las columnas de A3:B6 y deja las filas separadas.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "mergeCells": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 2, "startColumnIndex": 0, "endColumnIndex": 2 }, "mergeType": "MERGE_ALL" } }, { "mergeCells": { "range": { "sheetId": SHEET_ID, "startRowIndex": 2, "endRowIndex": 6, "startColumnIndex": 0, "endColumnIndex": 2 }, "mergeType": "MERGE_COLUMNS" } }, ] }
Cómo establecer un formato personalizado de fecha y hora o decimal para un rango
En el siguiente ejemplo de código de spreadsheets.batchUpdate
, se muestra cómo usar RepeatCellRequest
para actualizar las celdas y que tengan formatos personalizados de fecha y hora y de número. La primera solicitud asigna a las celdas del rango A1:A10 el formato de fecha y hora personalizado hh:mm:ss am/pm,
ddd mmm dd yyyy
. Un ejemplo de fecha y hora en este formato es: “02:05:07 p.m., dom. 3 de abril de 2016”.
La segunda solicitud asigna a las celdas de B1 a B10 el formato de número personalizado #,##0.0000
, que indica que los números deben agruparse con separadores de comas, que debe haber 4 dígitos después del decimal y que se debe quitar todo menos un cero a la izquierda. Por ejemplo, el número "3.14" se renderiza como "3.1400", mientras que "12345.12345" se renderiza como "12,345.1235".
Para obtener más información, consulta Formatos de fecha y número.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "repeatCell": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 1 }, "cell": { "userEnteredFormat": { "numberFormat": { "type": "DATE", "pattern": "hh:mm:ss am/pm, ddd mmm dd yyyy" } } }, "fields": "userEnteredFormat.numberFormat" } }, { "repeatCell": { "range": { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 1, "endColumnIndex": 2 }, "cell": { "userEnteredFormat": { "numberFormat": { "type": "NUMBER", "pattern": "#,##0.0000" } } }, "fields": "userEnteredFormat.numberFormat" } } ] }