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 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 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 a rangos | Reading | 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 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. 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 ID de la hoja 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 |
NÚMERO_DE_SERIE |
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 vacías.
A continuación, se describen los métodos get para uno o varios rangos. Para ver muestras de operaciones básicas de lectura, consulta Lectura básica.
Cómo leer 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
.
Leer varios rangos
Para leer varios rangos de valores no continuos de una hoja de cálculo, usa una solicitud spreadsheets.values.batchGet
que te permite especificar varios rangos que se recuperarán:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
La respuesta a esta solicitud se muestra como un objeto BatchGetValuesResponse
que contiene el spreadsheetId
y una lista de objetos ValueRange
.
Escribir
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 adecuado. Para obtener más información sobre los ID de la hoja 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 las strings de entrada se analizan o no, como se describe en la siguiente tabla:
ValueInputOption |
Descripción |
---|---|
RAW |
La entrada no se analiza y se inserta como una string. Por ejemplo, la entrada "=1+2" coloca la cadena, no la fórmula, "=1+2" en la celda. (Los valores que no son 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, por lo que "$100.15" se convierte en un número con formato de moneda. |
A continuación, se describen los métodos de actualización individuales y por lotes. 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 manera opcional.
De forma predeterminada, se usa ROWS
. Si se especifica COLUMNS
, cada arreglo interno 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 string vacía ("").
Escribe varios rangos
Si quieres escribir varios rangos no continuos, 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 datos de entrada y range
, y majorDimension
.
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 manera opcional.
De forma predeterminada, se usa ROWS
. Si se especifica COLUMNS
, cada arreglo interno se escribe en una columna en lugar de en una fila.
El rango de entrada se usa para buscar datos existentes y una “tabla” dentro de ese rango. Los valores se adjuntan a la fila siguiente de la tabla, a partir de la primera columna de la tabla. Por ejemplo, considera un elemento 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 adjuntos comenzarán en B7
para todas las entradas range
siguientes:
Sheet1
, ya que examinará todos los datos de la hoja y determinará que la tabla enB4:D6
es la última tabla.B4
oC5:D5
, porque 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
(sin importar comenzar antes y finalizar después de ella).
Las siguientes entradas de range
no comenzaron a escribir en B7
:
A1
comenzará a escribir enA3
, porque está en la tablaA1:C2
.E4
comenzará a escribir enE4
, ya que no está en ninguna tabla. (A4
también iniciará la escritura enA4
por el mismo motivo).
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 puedes almacenar en Google Drive.