Estructura del Excel (hoja llamada "Notas")
Google Sheets permite automatizar muchas tareas. En este tutorial, te muestro cómo usar Google Apps Script para crear un sistema básico de gestión de notas con funcionalidades CRUD:
Crear (Create) nuevos registros
Leer (Read) los datos almacenados
Actualizar (Update) registros existentes
Eliminar (Delete) entradas de la hoja
La hoja de cálculo tendrá esta estructura:
| ID | Nombre | Asignatura | Nota |
| 1 | Juan | Matemáticas | 8.5 |
| 2 | Ana | Historia | 9.00 |
| 3 | Luis | Ciencias | 7.00 |
Leer los datos (Read)
Este fragmento de código recorre la hoja de cálculo y muestra por consola (Logger.log) el contenido de cada fila (menos la cabecera).
function leerNotas() {
var hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Notas");
var datos = hoja.getDataRange().getValues();
for (var i = 1; i < datos.length; i++) { // Saltamos la cabecera
var id = datos[i][0];
var nombre = datos[i][1];
var asignatura = datos[i][2];
var nota = datos[i][3];
Logger.log("ID: " + id + ", Alumno: " + nombre + ", Asignatura: " + asignatura + ", Nota: " + nota);
}
}
Agregar un nuevo alumno (Create)
Este código añade una nueva fila al final de la hoja con los datos del nuevo alumno. El ID lo puedes definir tú manualmente o hacerlo incremental.
function agregarNota() {
var hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Notas");
// Suponemos que el nuevo ID es el número de fila
var nuevoAlumno = ["4", "Pedro", "Inglés", 8.2];
hoja.appendRow(nuevoAlumno);
Logger.log("Alumno agregado: " + nuevoAlumno[1]);
}
function agregarNotaConIDAuto() {
var hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Notas");
var datos = hoja.getDataRange().getValues();
var ultimoID = 0;
// Recorremos las filas para encontrar el ID más alto
for (var i = 1; i < datos.length; i++) {
var id = parseInt(datos[i][0]);
if (!isNaN(id) && id > ultimoID) {
ultimoID = id;
}
}
// Creamos el nuevo ID incrementado
var nuevoID = ultimoID + 1;
// Datos del nuevo alumno (puedes adaptarlo a un formulario o entrada dinámica)
var nombre = "Carla";
var asignatura = "Biología";
var nota = 9.1;
var nuevaFila = [nuevoID, nombre, asignatura, nota];
hoja.appendRow(nuevaFila);
Logger.log("Alumno agregado con ID " + nuevoID + ": " + nombre);
}
Actualizar la nota de un alumno (Update)
Busca una fila por su ID (único para cada alumno), y si lo encuentra, actualiza el valor de su nota.
function actualizarNotaPorID(idBuscado, nuevaNota) {
var hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Notas");
var datos = hoja.getDataRange().getValues();
for (var i = 1; i < datos.length; i++) {
var id = datos[i][0];
if (id == idBuscado) {
hoja.getRange(i + 1, 4).setValue(nuevaNota); // Columna 4 = Nota
Logger.log("Nota actualizada para ID " + idBuscado + " a " + nuevaNota);
return;
}
}
Logger.log("ID no encontrado: " + idBuscado);
}
// 👀 Ejemplo de uso:
actualizarNotaPorID("2", 9.5);
Eliminar un alumno por ID (Delete)
Recorre las filas buscando el ID indicado. Si lo encuentra, elimina esa fila por completo.
function eliminarNotaPorID(idBuscado) {
var hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Notas");
var datos = hoja.getDataRange().getValues();
for (var i = 1; i < datos.length; i++) {
var id = datos[i][0];
if (id == idBuscado) {
hoja.deleteRow(i + 1); // +1 porque los índices de Apps Script empiezan en 1
Logger.log("Registro eliminado con ID: " + idBuscado);
return;
}
}
Logger.log("No se encontró el ID para eliminar: " + idBuscado);
}
¿Cómo usar este código?
Abre tu hoja de cálculo de Google (asegúrate de tener una hoja llamada
Notascon las columnas: ID, Nombre, Asignatura y Nota).Haz clic en Extensiones > Apps Script.
Borra cualquier código que aparezca por defecto y pega el código del tutorial CRUD que vimos anteriormente.
Guarda el proyecto con un nombre como “Gestión de Notas”.
Para probar el sistema:
Ejecuta la función
leerNotas()para ver los datos actuales en la consola (Ver > Registro).Ejecuta
agregarNotaConIDAuto()para añadir un nuevo alumno.Ejecuta
actualizarNotaPorID(id, nuevaNota)para modificar una nota.Ejecuta
eliminarNotaPorID(id)para eliminar un alumno.
La primera vez que ejecutes una función, Google te pedirá que otorgues permisos. Acéptalos para continuar.
¡Y listo! Ya tienes un sistema básico de gestión de alumnos conectado a tu hoja de cálculo.