La API de Hojas de cálculo de Google te permite crear y actualizar las reglas de formato condicional en las hojas de cálculo. Solo se pueden controlar ciertos tipos de formato (negrita, cursiva, tachado, color de primer plano y color de fondo) a través del formato condicional. En los ejemplos de esta página, se ilustra cómo realizar operaciones comunes de formato condicional con la API de Hojas de cálculo.
Estos ejemplos se presentan como 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 las APIs de Google, consulta 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 lahoja con el
spreadsheets.get
método. Los rangos se especifican con la notación
A1. Un rango de ejemplo es Sheet1!A1:D5.
Agrega un degradado de color condicional en una fila
En el siguiente
spreadsheets.batchUpdate
ejemplo de código del método, se muestra cómo usar
AddConditionalFormatRuleRequest
para establecer nuevas reglas de formato condicional de degradado para las filas 10 y 11 de una
hoja. La primera regla establece que las celdas de esa fila tienen sus colores de fondo establecidos según su valor. El valor más bajo de la fila se colorea de rojo oscuro, mientras que el valor más alto se colorea de verde brillante. Se interpola el color de los otros valores. La segunda regla hace lo mismo, pero con valores numéricos específicos que determinan los extremos del degradado (y diferentes colores). La solicitud usa
sheets.InterpolationPointType
como type.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 9, "endRowIndex": 10, } ], "gradientRule": { "minpoint": { "color": { "green": 0.2, "red": 0.8 }, "type": "MIN" }, "maxpoint": { "color": { "green": 0.9 }, "type": "MAX" }, } }, "index": 0 } }, { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 10, "endRowIndex": 11, } ], "gradientRule": { "minpoint": { "color": { "green": 0.8, "red": 0.8 }, "type": "NUMBER", "value": "0" }, "maxpoint": { "color": { "blue": 0.9, "green": 0.5, "red": 0.5 }, "type": "NUMBER", "value": "256" }, } }, "index": 1 } }, ] }
Después de la solicitud, la regla de formato aplicada actualiza la hoja. Dado que el degradado de la fila 11 tiene su punto máximo establecido en 256, cualquier valor superior tiene el color del punto máximo:

Agrega una regla de formato condicional a un conjunto de rangos
En el siguiente
spreadsheets.batchUpdate
ejemplo de código del método, se muestra cómo usar
AddConditionalFormatRuleRequest
para establecer una nueva regla de formato condicional para las columnas A y C de una hoja.
La regla establece que las celdas con valores de 10 o menos tienen sus colores de fondo cambiados a un rojo oscuro. La regla se inserta en el índice 0, por lo que tiene prioridad sobre otras reglas de formato. La solicitud usa
ConditionType
como type para
BooleanRule.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startColumnIndex": 0, "endColumnIndex": 1, }, { "sheetId": SHEET_ID, "startColumnIndex": 2, "endColumnIndex": 3, }, ], "booleanRule": { "condition": { "type": "NUMBER_LESS_THAN_EQ", "values": [ { "userEnteredValue": "10" } ] }, "format": { "backgroundColor": { "green": 0.2, "red": 0.8, } } } }, "index": 0 } } ] }
Después de la solicitud, la regla de formato aplicada actualiza la hoja:

Agrega reglas de formato condicional de fecha y texto a un rango
En el siguiente
spreadsheets.batchUpdate
ejemplo de código del método, se muestra cómo usar
AddConditionalFormatRuleRequest
para establecer nuevas reglas de formato condicional para el rango A1:D5 en una hoja,
según los valores de fecha y texto de esas celdas. Si el texto contiene la cadena "Cost" (sin distinción entre mayúsculas y minúsculas), la primera regla establece el texto de la celda en negrita. Si la celda contiene una fecha anterior a la semana pasada, la segunda regla establece el texto de la celda en cursiva y lo colorea de azul. La solicitud usa
ConditionType
como type para
BooleanRule.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4, } ], "booleanRule": { "condition": { "type": "TEXT_CONTAINS", "values": [ { "userEnteredValue": "Cost" } ] }, "format": { "textFormat": { "bold": true } } } }, "index": 0 } }, { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4, } ], "booleanRule": { "condition": { "type": "DATE_BEFORE", "values": [ { "relativeDate": "PAST_WEEK" } ] }, "format": { "textFormat": { "italic": true, "foregroundColor": { "blue": 1 } } } } }, "index": 1 } } ] }
Después de la solicitud, la regla de formato aplicada actualiza la hoja. En este ejemplo, la fecha actual es el 26/9/2016:

Agrega una regla de fórmula personalizada a un rango
En el siguiente
spreadsheets.batchUpdate
ejemplo de código del método, se muestra cómo usar
AddConditionalFormatRuleRequest
para establecer una nueva regla de formato condicional para el rango B5:B8 en una hoja,
según una fórmula personalizada. La regla calcula el producto de la celda en las columnas A y B. Si el producto es mayor que 120, el texto de la celda se establece en negrita y cursiva. La solicitud usa
ConditionType
como type para
BooleanRule.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "addConditionalFormatRule": { "rule": { "ranges": [ { "sheetId": SHEET_ID, "startColumnIndex": 2, "endColumnIndex": 3, "startRowIndex": 4, "endRowIndex": 8 } ], "booleanRule": { "condition": { "type": "CUSTOM_FORMULA", "values": [ { "userEnteredValue": "=GT(A5*B5,120)" } ] }, "format": { "textFormat": { "bold": true, "italic": true } } } }, "index": 0 } } ] }
Después de la solicitud, la regla de formato aplicada actualiza la hoja:

Borra una regla de formato condicional
En el siguiente
spreadsheets.batchUpdate
ejemplo de código del método, se muestra cómo usar
DeleteConditionalFormatRuleRequest
para borrar la regla de formato condicional con el índice 0 en la hoja especificada
por SHEET_ID.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
"requests": [
{
"deleteConditionalFormatRule": {
"sheetId": SHEET_ID,
"index": 0
}
}
]
}Lee la lista de reglas de formato condicional
En el siguiente
spreadsheets.get
ejemplo de código del método, se muestra cómo obtener el título, SHEET_ID y la lista de
todas las reglas de formato condicional para cada hoja de una hoja de cálculo. El parámetro de consulta fields determina qué datos mostrar.
A continuación, se muestra el protocolo de solicitud.
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)
La respuesta consta de un
Spreadsheet recurso,
que contiene un array de
Sheet objetos
cada uno con un
SheetProperties
elemento y un array de
ConditionalFormatRule
elementos. Si un campo de respuesta determinado se establece en el valor predeterminado, se omite de la respuesta. La solicitud usa
ConditionType
como type para
BooleanRule.
{ "sheets": [ { "properties": { "sheetId": 0, "title": "Sheet1" }, "conditionalFormats": [ { "ranges": [ { "startRowIndex": 4, "endRowIndex": 8, "startColumnIndex": 2, "endColumnIndex": 3 } ], "booleanRule": { "condition": { "type": "CUSTOM_FORMULA", "values": [ { "userEnteredValue": "=GT(A5*B5,120)" } ] }, "format": { "textFormat": { "bold": true, "italic": true } } } }, { "ranges": [ { "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4 } ], "booleanRule": { "condition": { "type": "DATE_BEFORE", "values": [ { "relativeDate": "PAST_WEEK" } ] }, "format": { "textFormat": { "foregroundColor": { "blue": 1 }, "italic": true } } } }, ... ] } ] }
Actualiza una regla de formato condicional o su prioridad
En el siguiente ejemplo de código del método
spreadsheets.batchUpdate
, se muestra cómo usar
UpdateConditionalFormatRuleRequest
con varias solicitudes. La primera solicitud mueve una regla de formato condicional existente a un índice más alto (de 0 a 2, lo que disminuye su prioridad). La segunda solicitud reemplaza la regla de formato condicional en el índice 0 por una regla nueva que da formato a las celdas que contienen el texto exacto especificado ("Costo total") en el rango A1:D5. El movimiento de la primera solicitud se completa antes de que comience la segunda, por lo que la segunda solicitud reemplaza la regla que originalmente estaba en el índice 1. La
solicitud usa el
ConditionType
como el type para el
BooleanRule.
A continuación, se muestra el protocolo de solicitud.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{ "requests": [ { "updateConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0, "newIndex": 2 }, "updateConditionalFormatRule": { "sheetId": SHEET_ID, "index": 0, "rule": { "ranges": [ { "sheetId": SHEET_ID, "startRowIndex": 0, "endRowIndex": 5, "startColumnIndex": 0, "endColumnIndex": 4, } ], "booleanRule": { "condition": { "type": "TEXT_EQ", "values": [ { "userEnteredValue": "Total Cost" } ] }, "format": { "textFormat": { "bold": true } } } } } } ] }