Las hojas de cálculo pueden tener varias hojas, y cada hoja puede tener cualquier cantidad de filas
o columnas. Una celda es una ubicación en la intersección de una fila y columna determinadas, y puede contener un valor de datos. La API de Hojas de cálculo de Google proporciona el recurso spreadsheets.values
para permitir la lectura y escritura de valores.
En esta página, se describen los conceptos básicos para usar el recurso spreadsheets.values
. Si necesitas insertar filas o actualizar el formato y otras propiedades de una hoja, debes usar el método spreadsheets.batchUpdate
que se describe en Cómo actualizar 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 de rango | Lectura | Escritura |
---|---|---|
Rango único | spreadsheets.values.get |
spreadsheets.values.update |
Varios rangos | spreadsheets.values.batchGet |
spreadsheets.values.batchUpdate |
Adjunta | spreadsheets.values.append |
Por lo general, es recomendable 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 todas las muestras, consulta la página de descripción general de las muestras.
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. Especificar el rango sin el ID de hoja (A1:B2
) significa que la solicitud se ejecuta en la primera hoja de la hoja de cálculo. Para obtener más información sobre la notación A1 y los IDs de las hojas de cálculo, consulta la Descripción general de la API de Hojas de cálculo de Google.
Varios parámetros de consulta opcionales controlan el formato de la salida:
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 muestran. Los errores no muestran datos. Se omiten las filas y columnas finales que estén vacías.
A continuación, se describen los métodos get para uno o varios rangos. Para ver ejemplos de operaciones básicas de lectura, 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 muestra como un objeto ValueRange
.
Lee varios rangos
Para leer varios rangos de valores no contiguos de una hoja de cálculo, usa una solicitud spreadsheets.values.batchGet
que te permite especificar varios rangos que quieras recuperar:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
La respuesta a esta solicitud se muestra como un objeto BatchGetValuesResponse
que contiene 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 la notación A1 y los datos que desees escribir dentro de un objeto de cuerpo de solicitud adecuado. Para obtener más información sobre la notación A1 y los IDs de las hojas de cálculo, consulta la Descripción general de la API de Hojas de cálculo de Google.
Las actualizaciones requieren un parámetro ValueInputOption
válido.
Para una sola actualización, este es un parámetro de consulta obligatorio. Para las actualizaciones por lotes, este parámetro es obligatorio en el cuerpo de la solicitud. 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 sean de cadena, como los booleanos o los números, siempre se manejan 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. Los formatos también se pueden inferir. De esta forma, “$100.15” se convierte en un número con formato de moneda. |
A continuación, se describen los métodos para actualizar uno o varios rangos. Para ver muestras de operaciones básicas de escritura, consulta Escritura básica.
Cómo escribir 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 ValueRange
, puedes especificar su majorDimension
de forma opcional.
De forma predeterminada, se usa ROWS
. Si se especifica COLUMNS
, cada matriz interna se escribe en una columna en lugar de en una fila.
Durante la actualización, se omiten los valores sin datos. Para borrar datos, usa una cadena vacía ("").
Cómo escribir en varios rangos
Si deseas escribir en varios rangos no contiguos, puedes usar una solicitud spreadsheets.values.batchUpdate
:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
El cuerpo de la solicitud de actualización masiva 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.
Cómo agregar valores
Para anexar 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 ValueRange
, puedes especificar su majorDimension
de forma opcional.
De forma predeterminada, se usa ROWS
. Si se especifica COLUMNS
, cada matriz interna se escribe en una columna en lugar de en una fila.
El rango de entrada se utiliza para buscar datos existentes y una “tabla” dentro de ese rango. Los valores se anexan a la fila siguiente de la tabla, a partir de la primera columna de la tabla. Por ejemplo, considera Sheet1
que se ve de la siguiente manera:
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 |
En la hoja, hay 2 tablas: A1:C2
y B4:D6
. Los valores anexados comenzarían en B7
para todas las siguientes entradas de range
:
Sheet1
, porque se examinarán todos los datos de la hoja y se determinará que la tabla enB4:D6
es la última.B4
oC5:D5
, porque ambos se encuentran en la tablaB4:D6
.B2:D4
, porque la última tabla del rango es la tablaB4:D6
(aunque también contenga la tablaA1:C2
).A3:G10
, porque la última tabla del rango es la tablaB4:D6
(aunque empiece antes y termine después).
Los siguientes valores de entrada de range
no comenzarían a escribir en B7
:
A1
comenzaría a escribir enA3
, porque está en la tablaA1:C2
.E4
comenzaría a escribir enE4
, ya que no está en ninguna tabla. (A4
también iniciaría la escritura enA4
por las mismas razones).
Además, puedes optar por sobrescribir 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.