Formatação básica

Com a API Google Sheets, você pode atualizar a formatação de células e intervalos dentro de planilhas. Os exemplos nesta página demonstram como algumas operações de formatação comuns podem ser realizadas com a API Sheets. Você pode encontrar mais exemplos de formatação condicional na página de roteiros Formatação condicional.

Ao atualizar uma planilha, alguns tipos de solicitações podem retornar respostas. Elas são retornadas em uma matriz, com cada resposta ocupando o mesmo índice da solicitação correspondente. Algumas solicitações não têm respostas e, para elas, a resposta está vazia. A estrutura de resposta desses exemplos pode ser encontrada em spreadsheets.batchUpdate.

Esses exemplos são apresentados na forma de solicitações HTTP para serem de linguagem neutra. Para saber como implementar uma atualização em lote em diferentes idiomas usando as bibliotecas do cliente da Google API, consulte Atualizar planilhas.

Nesses exemplos, os marcadores de posição SPREADSHEET_ID e SHEET_ID indicam onde você deve incluir esses IDs. O ID da planilha pode ser encontrado no URL dela. Você pode conferir o ID da planilha usando o método spreadsheets.get. Os intervalos são especificados usando a notação A1. Um exemplo de intervalo é Sheet1!A1:D5.

No vídeo acima, você aprende a formatar células da planilha de várias maneiras, incluindo: criar linhas congeladas, colocar células em negrito, implementar formatação de moeda, validar células e restringir valores de células.

Editar bordas de células

O exemplo de código spreadsheets.batchUpdate a seguir mostra como usar o UpdateBordersRequest para dar a cada célula no intervalo A1:F10 uma borda tracejada azul na parte de cima e de baixo. O campo innerHorizontal cria bordas horizontais no interior do intervalo. A omissão do campo resultaria na adição de bordas apenas na parte superior e inferior de todo o intervalo.

Tabela 3 x 3 com cada célula tendo uma borda tracejada azul na parte de cima e de baixo.
Figura 1. Formate cada célula com uma borda tracejada azul na parte de cima e de baixo em uma planilha.

Confira o protocolo da solicitação abaixo.

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

Formatar uma linha de cabeçalho

O exemplo de código spreadsheets.batchUpdate abaixo mostra como usar o RepeatCellRequest para formatar uma linha de cabeçalho em uma planilha. A primeira solicitação atualiza a cor do texto, a cor de fundo, o tamanho da fonte do texto, a justificação do texto e deixa o texto em negrito. Omitir os índices de coluna no campo range faz com que toda a linha seja formatada. A segunda solicitação ajusta as propriedades da página para que a linha de cabeçalho seja congelada.

Tabela 3 x 3 com uma linha de cabeçalho formatada em uma página.
Figura 2. Formate a linha de cabeçalho em uma página.

Confira o protocolo da solicitação abaixo.

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

Mesclar células

O exemplo de código spreadsheets.batchUpdate abaixo mostra como usar a MergeCellsRequest para mesclar células. A primeira solicitação mescla o intervalo A1:B2 em uma única célula. A segunda solicitação mescla as colunas na célula A3:B6, deixando as linhas separadas.

Tabela 3 por 3 com células mescladas em uma página.
Figura 3. Mesclar células em uma planilha.

Confira o protocolo da solicitação abaixo.

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

Definir um formato personalizado de data/hora ou decimal para um intervalo

O exemplo de código spreadsheets.batchUpdate a seguir mostra como usar o RepeatCellRequest para atualizar células para que elas tenham formatos personalizados de data/hora e número. A primeira solicitação aplica às células do intervalo A1:A10 o formato de data/hora personalizado hh:mm:ss am/pm, ddd mmm dd yyyy. Um exemplo de data/hora neste formato é: "02:05:07 PM, Sun Apr 03 2016".

A segunda solicitação aplica nas células do intervalo B1:B10 o formato numérico personalizado #,##0.0000, que indica que os números devem ser agrupados com separadores de vírgula, que deve haver 4 dígitos após o decimal e que todos, exceto um zero à esquerda, devem ser eliminados. Por exemplo, o número "3,14" é renderizado como "3,1400", enquanto "12345,12345" é renderizado como "12.345,1235".

Tabela 3 x 3 com formatos personalizados de data/hora e número em uma planilha.
Figura 4. Atualize as células para que elas tenham formatos personalizados para valores numéricos e de data/hora em uma planilha.

Confira o protocolo da solicitação abaixo.

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