Operações de dados

Com a API Google Sheets, você pode manipular dados de planilhas de várias formas. A maioria das funcionalidades disponíveis para usuários que trabalham com a interface do Planilhas também podem ser usadas com a API Sheets. Os exemplos nesta página mostram como realizar algumas operações comuns de planilha com a API Sheets.

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

Nesses exemplos, os marcadores SPREADSHEET_ID e SHEET_ID indicam onde você fornece esses IDs. Você pode encontrar o ID da planilha no URL da planilha. Consiga 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.

Aplicar a validação de dados a um intervalo

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

O protocolo da 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 da célula

O exemplo de código spreadsheets.batchUpdate a seguir mostra como usar CopyPasteRequest para copiar a formatação somente no intervalo A1:D10 e colá-la no intervalo F1:I10 na mesma página. 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 da 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 a seguir mostra como usar o CutPasteRequest. Ela recorta o intervalo A1:D10 e usa o tipo enumerado PasteType com PASTE_NORMAL para colar os valores, fórmulas, formatação e mesclagens no intervalo F1:I10 na mesma página. O conteúdo das células do intervalo de origem original é removido.

O protocolo da 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 a seguir mostra como usar a RepeatCellRequest para copiar a fórmula =FLOOR(A1*PI()) para o intervalo B1:D10. O intervalo da fórmula é incrementado automaticamente para cada linha e coluna no intervalo, começando com a 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 da 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 a seguir mostra como usar 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 da 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"
          }
        ]
      }
    }
  ]
}