Las hojas de cálculo pueden tener varias hojas, y cada una puede tener cualquier cantidad de filas o columnas. Una celda es una ubicación en la intersección de una fila y una columna en particular, y puede contener un valor de datos. La API de Google Sheets proporciona el recurso spreadsheets.values
para habilitar la lectura y escritura de valores.
En esta página, se describen los conceptos básicos del uso del recurso spreadsheets.values
. Si necesitas insertar filas o actualizar el formato y otras propiedades en una hoja, debes usar el método spreadsheets.batchUpdate
que se describe en Actualiza hojas de cálculo.
Métodos
El recurso spreadsheets.values
proporciona los siguientes métodos para leer y escribir valores, cada uno para una tarea específica:
Acceso al rango | Lectura | Escritura |
---|---|---|
Rango único | spreadsheets.values.get |
spreadsheets.values.update |
Varios rangos | spreadsheets.values.batchGet |
spreadsheets.values.batchUpdate |
Adjunta | spreadsheets.values.append |
En general, es una buena idea combinar varias lecturas o actualizaciones con los métodos batchGet
y batchUpdate
(respectivamente), ya que esto mejora la eficiencia.
Puedes encontrar ejemplos de cada uno de estos métodos en las páginas de muestras de lectura básica y escritura básica. Para ver todos los ejemplos, consulta la página de descripción general de los ejemplos.
Leer
Para leer los valores de datos de una hoja, necesitas el ID de la hoja de cálculo y la notación A1 del rango. Si especificas el rango sin el ID de la hoja (A1:B2
), la solicitud se ejecutará en la primera hoja de la hoja de cálculo. Para obtener más información sobre los IDs de hojas de cálculo y la notación A1, consulta la Descripción general de la API de Google Sheets.
Varios parámetros de consulta opcionales controlan el formato del resultado:
Parámetro de formato | Valor predeterminado |
---|---|
majorDimension |
ROWS |
valueRenderOption |
FORMATTED_VALUE |
dateTimeRenderOption |
SERIAL_NUMBER |
Ten en cuenta que solo debes usar dateTimeRenderOption
si valueRenderOption
no es FORMATTED_VALUE
.
No hay un límite explícito para la cantidad de datos que se devuelven. Los errores no devuelven datos. Se omiten las filas y columnas finales vacías.
A continuación, se describen los métodos get individuales y por lotes. Para ver ejemplos de operaciones de lectura básicas, consulta Lectura básica.
Lee un solo rango
Para leer un solo rango de valores de una hoja de cálculo, usa una solicitud spreadsheets.values.get
:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
La respuesta a esta solicitud se devuelve como un objeto ValueRange
.
Lee varios rangos
Para leer varios rangos de valores discontinuos de una hoja de cálculo, usa una solicitud spreadsheets.values.batchGet
que te permita especificar varios rangos para recuperar:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
La respuesta a esta solicitud se devuelve como un objeto BatchGetValuesResponse
que contiene el objeto spreadsheetId
y una lista de objetos ValueRange
.
Escritura
Para escribir en una hoja, necesitas el ID de la hoja de cálculo, el rango de celdas en notación A1 y los datos que deseas escribir en un objeto de cuerpo de solicitud adecuado. Para obtener más información sobre los IDs de hojas de cálculo y la notación A1, consulta la Descripción general de la API de Google Sheets.
Las actualizaciones requieren un parámetro ValueInputOption
válido.
Para las actualizaciones singulares, este es un parámetro de consulta obligatorio. En el caso de las actualizaciones por lotes, este parámetro es obligatorio en el cuerpo de la solicitud. El parámetro ValueInputOption
controla cómo se deben interpretar los datos de entrada y si se analizan las cadenas de entrada, como se describe en la siguiente tabla:
ValueInputOption |
Descripción |
---|---|
RAW |
La entrada no se analiza y se inserta como una cadena. Por ejemplo, la entrada "=1+2" coloca la cadena, no la fórmula, "=1+2" en la celda. (Los valores que no son cadenas, como los booleanos o los números, siempre se controlan como RAW ). |
USER_ENTERED |
La entrada se analiza exactamente como si se hubiera ingresado en la IU de Hojas de cálculo. Por ejemplo, "1 de marzo de 2016" se convierte en una fecha, y "=1+2" se convierte en una fórmula. También se pueden inferir los formatos, por lo que "USD 100.15" se convierte en un número con formato de moneda. |
A continuación, se describen los métodos de actualización individual y por lotes. Para ver ejemplos de operaciones básicas de escritura, consulta Escritura básica.
Escribe en un solo rango
Para escribir datos en un solo rango, usa una solicitud spreadsheets.values.update
:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
El cuerpo de la solicitud de actualización debe ser un objeto ValueRange
, aunque el único campo obligatorio es values
. Si se especifica range
, debe coincidir con el rango de la URL. En el ValueRange
, puedes especificar de forma opcional su majorDimension
.
De forma predeterminada, se usa ROWS
. Si se especifica COLUMNS
, cada array interno se escribe en una columna en lugar de una fila.
Cuando se actualizan, se omiten los valores sin datos. Para borrar datos, usa una cadena vacía ("").
Escribe varios rangos
Si deseas escribir varios rangos discontinuos, puedes usar una solicitud spreadsheets.values.batchUpdate
:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
El cuerpo de la solicitud de actualización por lotes debe ser un objeto BatchUpdateValuesRequest
, que contiene un ValueInputOption
y una lista de objetos ValueRange
(uno para cada rango escrito). Cada objeto ValueRange
especifica sus propios range
, majorDimension
y datos de entrada.
Valores agregados
Para agregar datos después de una tabla de datos en una hoja, usa una solicitud spreadsheets.values.append
:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
El cuerpo de la solicitud de actualización debe ser un objeto ValueRange
, aunque el único campo obligatorio es values
. Si se especifica range
, debe coincidir con el rango de la URL. En el ValueRange
, puedes especificar de forma opcional su majorDimension
.
De forma predeterminada, se usa ROWS
. Si se especifica COLUMNS
, cada array interno se escribe en una columna en lugar de una fila.
El rango de entrada se usa para buscar datos existentes y encontrar una "tabla" dentro de ese rango. Los valores se agregan a la siguiente fila de la tabla, a partir de la primera columna. Por ejemplo, considera Sheet1
que se ve así:
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 |
La hoja contiene 2 tablas: A1:C2
y B4:D6
. Los valores anexados comenzarían en B7
para todas las siguientes entradas de range
:
Sheet1
, ya que examinará todos los datos de la hoja y determinará que la tabla enB4:D6
es la última.B4
oC5:D5
, porque ambos están en la tablaB4:D6
B2:D4
, ya que la última tabla del rango es la tablaB4:D6
(a pesar de que también contiene la tablaA1:C2
).A3:G10
, ya que la última tabla del rango es la tablaB4:D6
(a pesar de que comienza antes y termina después de ella).
Las siguientes entradas de range
no comenzarían a escribir en B7
:
A1
comenzaría a escribir enA3
, ya que está en la tablaA1:C2
.E4
comenzaría a escribir enE4
, ya que no está en ninguna tabla. (A4
también comenzaría a escribir a lasA4
por los mismos motivos).
Además, puedes elegir si deseas reemplazar los datos existentes después de una tabla o insertar filas nuevas para los datos nuevos. De forma predeterminada, la entrada reemplaza los datos después de la tabla. Para escribir los datos nuevos en filas nuevas, usa InsertDataOption
y especifica insertDataOption=INSERT_ROWS
.
Para obtener más información sobre los límites de celdas y filas en Hojas de cálculo, consulta Archivos que se pueden guardar en Google Drive.