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 Hojas de cálculo de Google 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 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 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 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 para el 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 los IDs de hojas de cálculo y la notación A1, consulta la Descripción general de la API de Hojas de cálculo de Google.
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 muestran. Los errores no muestran datos. Se omiten las filas y columnas vacías finales.
Los métodos de obtención singular y por lotes se describen a continuación. 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 muestra 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 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 deseas escribir en un objeto de cuerpo de solicitud apropiado. 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 Hojas de cálculo de Google.
Las actualizaciones requieren un parámetro ValueInputOption
válido.
Para actualizaciones individuales, 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 o no 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 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, 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 singular y por lotes. Para obtener 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 array interno se escribe en una columna en lugar de una fila.
Cuando se realiza la actualización, se omiten los valores sin datos. Para borrar los datos, usa una cadena vacía ("").
Cómo escribir 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 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 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 ValueRange
, puedes especificar su majorDimension
de forma opcional.
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 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 |
Hay 2 tablas en la hoja: A1:C2
y B4:D6
. Los valores agregados 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
, ya que ambos están en la tablaB4:D6
.B2:D4
, porque la última tabla del rango es la tablaB4:D6
(a pesar de que también contiene la tablaA1:C2
).A3:G10
, porque la última tabla del rango es la tablaB4:D6
(a pesar de comenzar antes y terminar después).
Las siguientes entradas 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 comenzaría a escribir enA4
por las mismas razones).
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.