Consulta de Docentes

Busque por Cédula (con o sin guiones) o Nombre Completo

Cargando...

Consultando base de datos...

Siguientes pasos: Una vez que hayas desplegado la Web App y subido el index.html a Hostinger, haz una prueba buscando una cédula (ej. 073-0013526-1 o sin guiones 07300135261) o un nombre (ej. ALBANIA MERCEDES). ¿Hay algún filtro adicional que quieras agregar a la interfaz (como filtrar solo por los que están "Ausentes") o modificamos algo del diseño visual? Error de sintaxis SyntaxError: Unexpected identifier 'Frontend', línea 76, archivo Código.gs Respuesta de Gemini Pensamientos del modelo Ese error ocurre porque, al copiar el código anterior, se incluyó por accidente el texto del título "2. Frontend: Hostinger" dentro del editor de Google Apps Script. El archivo Código.gs solo debe contener código puro de JavaScript. Para solucionarlo, borra absolutamente todo lo que tienes en tu archivo Código.gs en Google Apps Script y pega únicamente este bloque de código limpio: JavaScript function doGet(e) { var output = ContentService.createTextOutput(); output.setMimeType(ContentService.MimeType.JSON); try { var query = e.parameter.query || ""; if (!query) { return output.setContent(JSON.stringify({ success: false, message: "No se proporcionó un término de búsqueda." })); } var normalizedQuery = query.toLowerCase().replace(/[\s-]/g, ""); var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CONVOCADOS AVANCES"); var lastRow = sheet.getLastRow(); if (lastRow < 9) { return output.setContent(JSON.stringify({ success: true, data: [] })); } var dataRange = sheet.getRange(9, 1, lastRow - 8, 16); var data = dataRange.getValues(); var results = []; for (var i = 0; i < data.length; i++) { var row = data[i]; var cedula1 = String(row[1] || "").toLowerCase().replace(/[\s-]/g, ""); var cedula2 = String(row[4] || "").toLowerCase().replace(/[\s-]/g, ""); var nombres = String(row[2] || ""); var apellidos = String(row[3] || ""); var nombreCompleto = (nombres + " " + apellidos).toLowerCase().replace(/[\s-]/g, ""); if (cedula1 === normalizedQuery || cedula2 === normalizedQuery || nombreCompleto.indexOf(normalizedQuery) !== -1) { var fechaFormateada = row[7]; if (fechaFormateada instanceof Date) { fechaFormateada = Utilities.formatDate(fechaFormateada, Session.getScriptTimeZone(), "dd/MM/yyyy"); } results.push({ no: row[0], cedula: row[1], nombres: row[2], apellidos: row[3], correo: row[5], cargo: row[6], fecha: fechaFormateada, tanda: row[8], estatus: row[9], puntajeERP: row[10], calificacionERP: row[11], calificacionFinal: row[15] }); } } return output.setContent(JSON.stringify({ success: true, data: results })); } catch (error) { return output.setContent(JSON.stringify({ success: false, message: error.toString() })); } }