Puedes actualizar el formato de celdas y rangos en las hojas de cálculo con la API de Hojas de cálculo de Google. En los ejemplos de esta página, se muestra cómo se pueden lograr algunas operaciones de formato comunes con la API de Hojas de cálculo. Puedes encontrar más ejemplos de formato condicional en la página de recetas de formato condicional.
Cuando actualizas una hoja de cálculo, algunos tipos de solicitudes pueden mostrar respuestas.
Estas se muestran en un array, y cada respuesta ocupa el mismo índice que la solicitud correspondiente. Algunas solicitudes no tienen respuestas y, para esas, 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 lenguaje. Para obtener información sobre cómo implementar una actualización por lotes en diferentes lenguajes con las bibliotecas cliente de la API 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 la URL de la hoja de cálculo.
Puedes obtener el ID de la hoja con
el
spreadsheets.get
método. Los rangos se especifican con la notación
A1. Un rango de ejemplo es Sheet1!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.
Edita los bordes de las celdas
En la siguiente
spreadsheets.batchUpdate
muestra de código, se muestra cómo usar
UpdateBordersRequest
para dar a cada celda del rango A1:F10 un borde superior e inferior azul discontinuo. El campo innerHorizontal crea bordes horizontales en el interior del rango.
Si se omite el campo, los bordes solo se agregarán a 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
},
},
}
}
]
}Da formato a una fila de encabezado
En la siguiente
spreadsheets.batchUpdate
muestra de código, 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 del texto y la justificación del texto, y pone el texto en negrita. Si se omiten los índices de columna en el campo range, se da formato a toda la fila. La segunda solicitud ajusta las propiedades de la hoja para que se inmovilice la fila de encabezado.
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
spreadsheets.batchUpdate
muestra de código, 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 en A3:B6, mientras 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"
}
},
]
}Establece un formato de fecha y hora o decimal personalizado para un rango
En la siguiente
spreadsheets.batchUpdate
muestra de código, se muestra cómo usar
RepeatCellRequest
para actualizar las celdas de modo que tengan formatos de fecha y hora y número personalizados. La primera solicitud
otorga 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 PM, Sun Apr 03 2016".
La segunda solicitud otorga a las celdas de B1: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 deben quitar todos los ceros iniciales, excepto uno. 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" } } ] }