const connection = require('../conf/connection.js'); const express = require('express') var app = express(); var Excel = require('exceljs'); function query(consulta) { return new Promise(function(resolve, reject) { connection.query(`${consulta}`, (error, results, files) => { if (error) reject(error); resolve(results); }); }) } app.get('/getexcel', async(req, res) => { const workbook = new Excel.Workbook(); const worksheet = workbook.addWorksheet('Inscripcion'); const asis = workbook.addWorksheet('Asistencia'); let con = 1; let data = []; let aux = [] workbook.creator = 'Me'; workbook.lastModifiedBy = 'Her'; workbook.created = new Date(); workbook.modified = new Date(); workbook.lastPrinted = new Date(); workbook.views = [{ x: 0, y: 0, width: 10000, height: 20000, firstSheet: 0, activeTab: 1, visibility: 'visible' }] // aux[3] = element.sexo; // aux[4] = element.edad; // aux[5] = element.correo; // aux[6] = element.gradoAcademico; // aux[7] = element.nombrePrograma; // aux[8] = element.semestre; // aux[9] = element.promedio; // aux[10] = element.titulado; // aux[11] = element.recibir_info; let encabezado = [] let nombre = "Nombre"; let apellido = "Apellidos" let noCuenta = "No. Cuenta" let sexo = "Sexo" let edad = "Edad" let correo = "Correo" let grad = "Grado Academico" let lic = "Nombre del Programa" let sem = "Semestre" let pro = "Promedio" let tit = "Titulado" let rec = "Recibir Informacion" let ingles = "Nivel de Ingles" encabezado.push(nombre); encabezado.push(apellido); encabezado.push(noCuenta); encabezado.push(sexo); encabezado.push(edad); encabezado.push(correo); encabezado.push(grad); encabezado.push(lic); encabezado.push(ingles); encabezado.push(sem); encabezado.push(pro); encabezado.push(tit); encabezado.push(rec); encabezado.push("Incritos Conferencia: ") encabezado.push(1); encabezado.push(2); encabezado.push(3); encabezado.push(4); encabezado.push(5); encabezado.push(6); encabezado.push(7); encabezado.push(8); encabezado.push(9); encabezado.push(10); encabezado.push(11); encabezado.push(12); encabezado.push(13); worksheet.addRow(encabezado) asis.addRow(encabezado) let x; try { let consulta = `select * from persona where comunidad="acatlan";`; x = await query(consulta); // console.log(x); } catch (error) { //console.error('------'); //console.error(error); res.status(400).json({ error: true, msj: "error al elegir la comunidad" }); return; } // console.log('1'); // console.log(data); for (let index = 0; index < x.length; index++) { // console.log("ppp", index); let element = x[index]; // console.log(element); cad = `select idConferencia from asistencia where idPersona=${element.idPersona};` let altas; try { altas = await query(cad); } catch (error) { res.status(400).json({ error: true, msj: "error al elegir la inscripcion" }); return; } let entro; let cad2 = `select idConferencia from asistencia where idPersona=${element.idPersona} and asistencia=1;`; try { entro = await query(cad2); } catch { res.status(400).json({ error: true, msj: "error al elegir la inscripcion" }); return; } let aux = []; //console.log('-------'); //console.log(element.nombre); // console.log(index); // console.log(data); aux.push(element.nombre); aux.push(element.apellidos); aux.push(element.noCuenta); aux.push(element.sexo); aux.push(element.edad); aux.push(element.correo); aux.push(element.gradoAcademico); aux.push(element.nombrePrograma); aux.push(element.nivelIngles); aux.push(element.semestre); aux.push(element.promedio); if (element.titulado == 1) aux.push("Si"); else aux.push("No"); if (element.recibir_info == 1) aux.push("Si"); else aux.push("No"); let = ultimo = 13; aux[ultimo] = "" for (let x = 1; x <= 13; x++) aux[ultimo + x] = 0; altas.forEach(element => { console.log(ultimo + element.idConferencia); aux[ultimo + element.idConferencia] = 1; }); // console.log("sakñalskdñalskda"); worksheet.addRow(aux) aux[ultimo] = "" for (let x = 1; x <= 13; x++) aux[ultimo + x] = 0; entro.forEach(element => { console.log(ultimo + element.idConferencia); aux[ultimo + element.idConferencia] = 1; }); asis.addRow(aux) //data.push(aux); aux = []; } //console.log('kkkk'); //console.log(data); worksheet.getCell('AD1').value = 'Catalogo de conferencia según su numero'; worksheet.getCell('AD2').value = "1" worksheet.getCell('AD3').value = "2" worksheet.getCell('AD4').value = "3" worksheet.getCell('AD5').value = "4" worksheet.getCell('AD6').value = "5" worksheet.getCell('AD7').value = "6" worksheet.getCell('AD8').value = "7" worksheet.getCell('AD9').value = "8" worksheet.getCell('AD10').value = "9" worksheet.getCell('AD11').value = "10" worksheet.getCell('AD12').value = "11" worksheet.getCell('AD13').value = "12" worksheet.getCell('AD14').value = "13" worksheet.getCell('AE2').value = `"Competencias profesionales", ¿Qué busca los empleadores` worksheet.getCell('AE3').value = `"Las prácticas profesionales, una puerta al mercado laboral"` worksheet.getCell('AE4').value = `"Red profesional Linkedln"` worksheet.getCell('AE5').value = `Taller, "Entrevista por Competencias"` worksheet.getCell('AE6').value = `"¿Cómo tener una buena entrevista de trabajo? Antes, durante y después"` worksheet.getCell('AE7').value = `"Aprendizaje-Servicio PALECH, Pedagogía para el Desarrollo del Servicio Social"` worksheet.getCell('AE8').value = "13va Feria del Empleo y Servicio Social" worksheet.getCell('AE9').value = `Taller "Elaboración del curriculum y herramientas asertivas durante un proceso de entrevista laboral"` worksheet.getCell('AE10').value = `"¿Le temes al éxito? Egresados de Acatlán comparten su experiencia y recomendaciones para emplearte."` worksheet.getCell('AE11').value = `Taller "Curriculum de impacto "` worksheet.getCell('AE12').value = `"Creando perfiles humanos dentro de las organizaciones"` worksheet.getCell('AE13').value = `"¿Conoces qué son las prestaciones y beneficios que ofertan las empresas?"` worksheet.getCell('AE14').value = `"Puntos clave para el desarrollo de tu talento"` asis.getCell('AD1').value = 'Catalogo de conferencia según su numero'; asis.getCell('AD2').value = "1" asis.getCell('AD3').value = "2" asis.getCell('AD4').value = "3" asis.getCell('AD5').value = "4" asis.getCell('AD6').value = "5" asis.getCell('AD7').value = "6" asis.getCell('AD8').value = "7" asis.getCell('AD9').value = "8" asis.getCell('AD10').value = "9" asis.getCell('AD11').value = "10" asis.getCell('AD12').value = "11" asis.getCell('AD13').value = "12" asis.getCell('AD14').value = "13" asis.getCell('AE2').value = `"Competencias profesionales", ¿Qué busca los empleadores` asis.getCell('AE3').value = `"Las prácticas profesionales, una puerta al mercado laboral"` asis.getCell('AE4').value = `"Red profesional Linkedln"` asis.getCell('AE5').value = `Taller, "Entrevista por Competencias"` asis.getCell('AE6').value = `"¿Cómo tener una buena entrevista de trabajo? Antes, durante y después"` asis.getCell('AE7').value = `"Aprendizaje-Servicio PALECH, Pedagogía para el Desarrollo del Servicio Social"` asis.getCell('AE8').value = "13va Feria del Empleo y Servicio Social" asis.getCell('AE9').value = `Taller "Elaboración del curriculum y herramientas asertivas durante un proceso de entrevista laboral"` asis.getCell('AE10').value = `"¿Le temes al éxito? Egresados de Acatlán comparten su experiencia y recomendaciones para emplearte."` asis.getCell('AE11').value = `Taller "Curriculum de impacto "` asis.getCell('AE12').value = `"Creando perfiles humanos dentro de las organizaciones"` asis.getCell('AE13').value = `"¿Conoces qué son las prestaciones y beneficios que ofertan las empresas?"` asis.getCell('AE14').value = `"Puntos clave para el desarrollo de tu talento"` // res.setHeader('Content-Type', 'application/vnd.openxmlformats'); // res.setHeader("Content-Disposition", "attachment; filename=" + "Report.xlsx"); // workbook.xlsx.write(res); // res.end(); // res.attachment("jornada-laboral.xlsx") // workbook.xlsx.write(res) // .then(function() { // res.end() // }); res.attachment(__dirname + `/../public/jornada.xlsx`) workbook .xlsx .write(res) .then(() => { res.end() }) .catch((err) => { res.status(400).json({ error: false, msj: "no se pudo descargar" }); }); // return data; }) module.exports = app