Operações de dados

A API Google Sheets permite manipular dados em planilhas de várias maneiras. A maioria das funcionalidades disponíveis para os usuários que trabalham com a interface do Planilhas também pode ser usada com a API Sheets. Os exemplos desta página ilustram como realizar algumas operações comuns de planilhas com a API Sheets.

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

Nesses exemplos, os marcadores de posição SPREADSHEET_ID e SHEET_ID indicam onde você forneceria esses IDs. Você pode encontrar o ID da planilha 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 é Planilha1!A1:D5.

Aplicar a validação de dados a um intervalo

O exemplo de código spreadsheets.batchUpdate a seguir mostra como usar o SetDataValidationRequest para aplicar uma regra de validação de dados, em que "value > 5", a cada célula no intervalo A1:D10.

O protocolo de solicitação é mostrado abaixo.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "setDataValidation": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "rule": {
          "condition": {
            "type": "NUMBER_GREATER",
            "values": [
              {
                "userEnteredValue": "5"
              }
            ]
          },
          "inputMessage": "Value must be > 5",
          "strict": true
        }
      }
    }
  ]
}

Copiar e colar a formatação de células

O exemplo de código spreadsheets.batchUpdate abaixo mostra como usar o CopyPasteRequest para copiar a formatação apenas no intervalo A1:D10 e colar no intervalo F1:I10 na mesma planilha. O método usa o tipo enumerado PasteType com PASTE_FORMAT para colar apenas a formatação e a validação de dados. Os valores originais em A1:D10 permanecem inalterados.

O protocolo de solicitação é mostrado abaixo.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "copyPaste": {
        "source": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "destination": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 5,
          "endColumnIndex": 9
        },
        "pasteType": "PASTE_FORMAT",
        "pasteOrientation": "NORMAL"
      }
    }
  ]
}

Recortar e colar células

O exemplo de código spreadsheets.batchUpdate abaixo mostra como usar o CutPasteRequest. Ele corta o intervalo A1:D10 e usa a enumeração PasteType com PASTE_NORMAL para colar os valores, fórmulas, formatação e mesclagens no intervalo F1:I10 na mesma planilha. O conteúdo da célula da faixa de origem original é removido.

O protocolo de solicitação é mostrado abaixo.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "cutPaste": {
        "source": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "destination": {
          "sheetId": SHEET_ID,
          "rowIndex": 0,
          "columnIndex": 5
        },
        "pasteType": "PASTE_NORMAL"
      }
    }
  ]
}

Repetir uma fórmula em um intervalo

O exemplo de código spreadsheets.batchUpdate abaixo mostra como usar o RepeatCellRequest para copiar a fórmula =FLOOR(A1*PI()) para o intervalo B1:D10. O intervalo da fórmula aumenta automaticamente para cada linha e coluna no intervalo, começando pela célula superior esquerda. Por exemplo, a célula B1 tem a fórmula =FLOOR(A1*PI()), enquanto a célula D6 tem a fórmula =FLOOR(C6*PI()).

O protocolo de solicitação é mostrado abaixo.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 1,
          "endColumnIndex": 4
        },
        "cell": {
          "userEnteredValue": {
              "formulaValue": "=FLOOR(A1*PI())"
          }
        },
        "fields": "userEnteredValue"
      }
    }
  ]
}

Classificar um intervalo com várias especificações de classificação

O exemplo de código spreadsheets.batchUpdate abaixo mostra como usar a função SortRangeRequest para classificar o intervalo A1:D10, primeiro pela coluna B em ordem crescente, depois pela coluna C em ordem decrescente e, por fim, pela coluna D em ordem decrescente.

O protocolo de solicitação é mostrado abaixo.

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "sortRange": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 4
        },
        "sortSpecs": [
          {
            "dimensionIndex": 1,
            "sortOrder": "ASCENDING"
          },
          {
            "dimensionIndex": 2,
            "sortOrder": "DESCENDING"
          },
          {
            "dimensionIndex": 3,
            "sortOrder": "DESCENDING"
          }
        ]
      }
    }
  ]
}