Formatação condicional

Com a API Google Sheets, você pode criar e atualizar as regras de formatação condicional em planilhas. Apenas alguns tipos de formatação (negrito, itálico, tachado, cor de primeiro plano e de fundo) podem ser controladas por meio de comandos e a formatação. Os exemplos nesta página ilustram como alcançar operações de formatação condicional com a API Sheets.

Esses exemplos são apresentados como solicitações HTTP para serem neutros em relação à linguagem. Para saber como implementar uma atualização em lote em idiomas diferentes usando a API do Google bibliotecas de clientes, consulte Atualizar planilhas.

Nestes exemplos, os marcadores de posição SPREADSHEET_ID e SHEET_ID indica onde você deve fornecer esses IDs. Você pode encontrar a planilha ID no URL da planilha. Você pode receber o ID da planilha usando o spreadsheets.get. A são especificados usando a notação A1. Um exemplo de intervalo é Sheet1!A1:D5.

Adicionar um gradiente de cor condicional em uma linha

O seguinte spreadsheets.batchUpdate o exemplo de código de método mostra como usar a AddConditionalFormatRuleRequest para estabelecer novas regras de formatação condicional de gradiente para as linhas 10 e 11 de um folha A primeira regra declara que as células dessa linha têm as cores do plano de fundo definidos de acordo com o valor. O valor mais baixo da linha é vermelho escuro, e o valor mais alto, verde-claro. A cor dos outros valores é interpolado. A segunda regra faz o mesmo, mas com valores numéricos específicos. determinar os pontos de extremidade do gradiente (e cores diferentes). A solicitação usa o sheets.InterpolationPointType como type.

Confira o protocolo da solicitação abaixo.

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

Após a solicitação, a regra de formatação aplicada atualiza a página. Como o gradiente na linha 11 tem o ponto máximo definido como 256, todos os valores acima dele têm o ponto máximo cor:

Resultado do roteiro "Adicionar formato gradiente"

Adicionar uma regra de formatação condicional a um conjunto de intervalos

O seguinte spreadsheets.batchUpdate o exemplo de código de método mostra como usar a AddConditionalFormatRuleRequest para estabelecer uma nova regra de formatação condicional para as colunas A e C de uma planilha. A regra declara que as células com valores de 10 ou menos têm seu plano de fundo cores alteradas para um vermelho-escuro. A regra é inserida no índice 0, então leva prioridade sobre outras regras de formatação. A solicitação usa o ConditionType que o type do BooleanRule

Confira o protocolo da solicitação abaixo.

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

Após a solicitação, a regra de formatação aplicada atualiza a página:

Adicionar resultado do roteiro de formatação condicional

Adicionar regras de formatação condicional de data e texto a um intervalo

O seguinte spreadsheets.batchUpdate o exemplo de código de método mostra como usar a AddConditionalFormatRuleRequest para estabelecer novas regras de formatação condicional para o intervalo A1:D5 em uma planilha, com base nos valores de data e texto nessas células. Se o texto tiver a string "Custo" (não diferencia maiúsculas de minúsculas), a primeira regra define o texto da célula como negrito. Se o célula contiver uma data que ocorreu antes da semana passada, a segunda regra definirá o o texto da célula em itálico e a colore de azul. A solicitação usa o ConditionType que o type do BooleanRule

Confira o protocolo da solicitação abaixo.

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

Após a solicitação, a regra de formatação aplicada atualiza a página. Neste exemplo, a data atual é 26/09/2016:

Resultado da receita de formatação condicional de texto e data

Adicionar uma regra de fórmula personalizada a um intervalo

O seguinte spreadsheets.batchUpdate o exemplo de código de método mostra como usar a AddConditionalFormatRuleRequest para estabelecer uma nova regra de formatação condicional para o intervalo B5:B8 em uma planilha, com base em uma fórmula personalizada. A regra calcula o produto da célula em colunas A e B. Se o produto for maior do que 120, o texto da célula será definido como negrito e itálico. A solicitação usa o ConditionType que o type do BooleanRule

Confira o protocolo da solicitação abaixo.

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

Após a solicitação, a regra de formatação aplicada atualiza a página:

Resultado da receita de formatação condicional personalizada

Excluir uma regra de formatação condicional

O seguinte spreadsheets.batchUpdate o exemplo de código de método mostra como usar a DeleteConditionalFormatRuleRequest para excluir a regra de formatação condicional com índice 0 na página especificada por SHEET_ID.

Confira o protocolo da solicitação abaixo.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteConditionalFormatRule": {
        "sheetId": SHEET_ID,
        "index": 0
      }
    }
  ]
}

Ler a lista de regras de formatação condicional

O seguinte Código do método spreadsheets.get exemplo mostra como obter o título, SHEET_ID e a lista de todos regras de formatação condicional para cada página de uma planilha. A consulta fields determina quais dados retornar.

Confira o protocolo da solicitação abaixo.

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets(properties(title,sheetId),conditionalFormats)

A resposta consiste em um Spreadsheet, que contém uma matriz de Sheet, cada um com por SheetProperties e uma matriz de ConditionalFormatRule os elementos. Se um determinado campo de resposta for definido com o valor padrão, ele será omitido da resposta. A solicitação usa o ConditionType que o type do 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
              }
            }
          }
        },
        ...
      ]
    }
  ]
}

Atualizar uma regra de formatação condicional ou a prioridade dela

O seguinte spreadsheets.batchUpdate o exemplo de código de método mostra como usar a UpdateConditionalFormatRuleRequest com várias solicitações. A primeira solicitação move um formato condicional existente regra para um índice mais alto (de 0 para 2, diminuindo a prioridade). A segunda solicitação substitui a regra de formatação condicional no índice 0 por uma nova regra que formata as células contendo o texto exato especificado ("Custo total") no intervalo A1:D5. A movimentação da primeira solicitação é concluída antes do início da segunda. Portanto, a segunda solicitação está substituindo a regra que estava originalmente no índice 1. A usa o ConditionType que o type do BooleanRule

Confira o protocolo da solicitação abaixo.

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