As planilhas podem ter várias páginas, e cada uma delas pode ter qualquer número de linhas
ou colunas. Uma célula é um local na
interseção de uma linha e uma coluna específicas e pode conter um valor de dados. A
API Google Sheets oferece o recurso
spreadsheets.values
para permitir a leitura e gravação de valores.
Esta página descreve os conceitos básicos do uso do recurso spreadsheets.values
. Se
você precisar inserir linhas ou atualizar a formatação e outras propriedades em uma
planilha, use o método
spreadsheets.batchUpdate
descrito em Atualizar planilhas.
Métodos
O recurso spreadsheets.values
oferece os seguintes métodos para ler e gravar valores, cada um para uma
tarefa específica:
Acesso à faixa | Leitura | Escrita |
---|---|---|
Intervalo único | spreadsheets.values.get |
spreadsheets.values.update |
Vários intervalos | spreadsheets.values.batchGet |
spreadsheets.values.batchUpdate |
Como anexar | spreadsheets.values.append |
Em geral, é uma boa ideia combinar várias leituras ou atualizações com os
métodos batchGet
e batchUpdate
(respectivamente), porque isso melhora
a eficiência.
Confira exemplos de cada um desses métodos nas páginas de amostra de Leitura básica e Escrita básica. Para conferir todos os exemplos, consulte a página de visão geral dos exemplos.
Ler
Para ler os valores de dados de uma planilha, você precisa do ID da planilha e da notação A1
do intervalo. Especificar o intervalo sem o ID da página (A1:B2
)
significa que a solicitação é executada na primeira página da planilha. Para mais
informações sobre IDs de planilhas e notação A1, consulte a Visão geral da API Google Sheets.
Vários parâmetros de consulta opcionais controlam o formato da saída:
Parâmetro de formato | Valor padrão |
---|---|
majorDimension |
ROWS |
valueRenderOption |
FORMATTED_VALUE |
dateTimeRenderOption |
SERIAL_NUMBER |
Use dateTimeRenderOption
somente se o valueRenderOption
não for FORMATTED_VALUE
.
Não há limite explícito para a quantidade de dados retornados. Os erros não retornam dados. As linhas e colunas vazias finais são omitidas.
Os métodos de recebimento singular e em lote são descritos abaixo. Para conferir exemplos de operações de leitura básicas, consulte Leitura básica.
Ler um único intervalo
Para ler um único intervalo de valores de uma planilha, use uma
solicitação spreadsheets.values.get
:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
A resposta a essa solicitação é retornada como um objeto
ValueRange
.
Ler vários intervalos
Para ler vários intervalos de valores não contínuos de uma planilha, use uma solicitação
spreadsheets.values.batchGet
que permite especificar vários intervalos para extrair:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
A resposta a essa solicitação é retornada como um objeto
BatchGetValuesResponse
que contém o spreadsheetId
e uma lista de objetos
ValueRange
.
Gravação
Para gravar em uma planilha, você precisa do ID da planilha, do intervalo de células na notação A1 e dos dados que quer gravar em um objeto de corpo de solicitação adequado. Para mais informações sobre IDs de planilhas e notação A1, consulte Visão geral da API Google Sheets.
As atualizações exigem um parâmetro
ValueInputOption
válido.
Para atualizações singulares, esse é um parâmetro de consulta obrigatório. Para atualizações em lote,
esse parâmetro é obrigatório no corpo da solicitação. O ValueInputOption
controla
como os dados de entrada precisam ser interpretados e se as strings de entrada são analisadas ou
não, conforme descrito na tabela a seguir:
ValueInputOption |
Descrição |
---|---|
RAW |
A entrada não é analisada e é inserida como uma string. Por exemplo, a entrada "=1+2" coloca a string "=1+2" na célula, e não a fórmula. Os valores que não são strings, como booleanos ou números, são sempre processados como RAW . |
USER_ENTERED |
A entrada é analisada exatamente como se tivesse sido inserida na interface das Planilhas. Por exemplo, "1 de março de 2016" se torna uma data, e "=1+2" se torna uma fórmula. Os formatos também podem ser inferidos, então "$100,15" se torna um número com formatação de moeda. |
Os métodos de atualização singular e em lote são descritos abaixo. Para exemplos de operações básicas de gravação, consulte Gravação básica.
Gravar em um único intervalo
Para gravar dados em um único intervalo, use uma solicitação
spreadsheets.values.update
:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
O corpo da solicitação de atualização precisa ser um objeto
ValueRange
, embora o único campo obrigatório seja values
. Se range
for especificado, ele
precisa corresponder ao intervalo no URL. No ValueRange
, é possível especificar
o
majorDimension
.
Por padrão, ROWS
é usado. Se COLUMNS
for especificado, cada matriz interna será
gravada em uma coluna em vez de uma linha.
Ao atualizar, os valores sem dados são ignorados. Para limpar os dados, use uma string vazia ("").
Gravar vários intervalos
Se você quiser gravar vários intervalos descontínuos, use uma solicitação
spreadsheets.values.batchUpdate
:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
O corpo da solicitação de atualização em lote precisa ser um objeto
BatchUpdateValuesRequest
,
que contém um ValueInputOption
e uma lista de objetos
ValueRange
, um para cada intervalo escrito. Cada objeto ValueRange
especifica o próprio
range
, majorDimension
e dados de entrada.
Acrescentar valores
Para anexar dados após uma tabela de dados em uma planilha, use uma
solicitação
spreadsheets.values.append
:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
O corpo da solicitação de atualização precisa ser um objeto
ValueRange
, embora o único campo obrigatório seja values
. Se range
for especificado, ele
precisa corresponder ao intervalo no URL. No ValueRange
, é possível especificar
o
majorDimension
.
Por padrão, ROWS
é usado. Se COLUMNS
for especificado, cada matriz interna será
gravada em uma coluna em vez de uma linha.
O intervalo de entrada é usado para pesquisar dados existentes e encontrar uma "tabela" nesse intervalo. Os valores são anexados à próxima linha da tabela, começando pela primeira coluna. Por exemplo, considere Sheet1
, que tem esta aparência:
A | B | C | D | E | |
1 | x | y | z | ||
2 | x | y | z | ||
3 | |||||
4 | x | y | |||
5 | y | z | |||
6 | x | y | z | ||
7 |
Há duas tabelas na planilha: A1:C2
e B4:D6
. Os valores anexados começariam
em B7
para todas as entradas range
a seguir:
Sheet1
, porque ele examina todos os dados na planilha e determina que a tabela emB4:D6
é a última.B4
ouC5:D5
, porque estão na tabelaB4:D6
.B2:D4
, porque a última tabela no intervalo é aB4:D6
, apesar de também conter a tabelaA1:C2
.A3:G10
, porque a última tabela no intervalo é a tabelaB4:D6
, mesmo começando antes e terminando depois dela.
As entradas range
a seguir não vão começar a gravar em B7
:
A1
vai começar a gravar emA3
, porque está na tabelaA1:C2
.E4
vai começar a gravar emE4
, porque não está em nenhuma tabela. (A4
também começaria a gravar emA4
pelos mesmos motivos.)
Além disso, você pode escolher se quer substituir os dados atuais após uma
tabela ou inserir novas linhas para os novos dados. Por padrão, a entrada substitui os dados
após a tabela. Para gravar os novos dados em novas linhas, use o
InsertDataOption
e especifique insertDataOption=INSERT_ROWS
.
Para saber mais sobre os limites de células e linhas nas Planilhas, consulte Arquivos que você pode armazenar no Google Drive.