public string generateExcelEmpleado(DateTime fecha_ini, DateTime fecha_fin) { var font = new ReporteEncuestaExcel(); String[] month = {"","ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"}; var anioEvaluacion = new ReporteEncuestaDB().consultReportEmpleado(fecha_ini,fecha_fin,1); if (anioEvaluacion.Count == 0) return string.Empty; var sheet = book.CreateSheet("Reporte lista colaboradores"); var rHeader = sheet.CreateRow(1); ICell cHeader; var cellMerge = 2; cHeader = rHeader.CreateCell(1); sheet.AddMergedRegion(new CellRangeAddress(1, 2, 1, 1)); cHeader.SetCellValue("APELLIDOS Y NOMBRES"); cHeader.CellStyle = font.setFontText(12, true, book); cHeader.CellStyle.WrapText = true; sheet.SetColumnWidth(1, 8000); for (int i = 0; i < anioEvaluacion.Count; i++) { cHeader = rHeader.CreateCell(i+2); if (anioEvaluacion[i].mes_evaluacion > 1) sheet.AddMergedRegion(new CellRangeAddress(1, 1, cellMerge, anioEvaluacion[i].mes_evaluacion + cellMerge)); cHeader.SetCellValue(anioEvaluacion[i].anio_evaluacion); cHeader.CellStyle = font.setFontText(12, true, book); cHeader.CellStyle.WrapText = true; cellMerge += anioEvaluacion[i].mes_evaluacion; } var mesEvaluacion = new ReporteEncuestaDB().consultReportEmpleado(fecha_ini, fecha_fin, 2); var rMonth = sheet.CreateRow(2); ICell cMonth; for (int i = 0; i < mesEvaluacion.Count; i++) { cMonth = rMonth.CreateCell(2+i); cMonth.SetCellValue(month[mesEvaluacion[i].mes_evaluacion]); cMonth.CellStyle = font.setFontText(12, true, book); sheet.SetColumnWidth(2 + i, 4000); } var datoEmpleado = new ReporteEncuestaDB().consultReportEmpleado(fecha_ini, fecha_fin, 3); var encuestaPuntaje = new ReporteEncuestaDB().consultReportEmpleado(fecha_ini, fecha_fin, 4); IRow rNombres; for (int i = 0; i < datoEmpleado.Count; i++) { rNombres = sheet.CreateRow(3+i); ICell cNombres = rNombres.CreateCell(1); cNombres.SetCellValue(datoEmpleado[i].nombres); cNombres.CellStyle = font.setFontText(12, false, book); var columnIndex = 2; for (int a = 0; a < anioEvaluacion.Count; a++) { var listPuntaje = encuestaPuntaje.FindAll(an => an.anio_evaluacion == anioEvaluacion[a].anio_evaluacion && an.id_empleado == datoEmpleado[i].id_empleado); if (listPuntaje.Count > 0) { var m = 0; while (m < listPuntaje.Count) { ICell cPuntaje = rNombres.CreateCell(columnIndex); cPuntaje.SetCellValue(listPuntaje[m].puntaje); cPuntaje.CellStyle = font.setFontText(10, false, book); columnIndex++; m++; } } else columnIndex++; } } var guide = "Reporte_consolidado_" + DateTime.Now.ToString("yyyyMMddHHmmss"); using (var file = new FileStream(@HttpContext.Current.Server.MapPath("~/Utils/xlsxs/") + guide.ToString() + ".xlsx", FileMode.Create, FileAccess.ReadWrite)) { book.Write(file); file.Close(); } return guide.ToString(); }
public String GenerateExcel(DateTime fecha_ini,DateTime fecha_fin) { try { new Utils.DeleteFile().deleteFile(HttpContext.Current.Server.MapPath(@"~/Utils/xlsxs/")); XSSFWorkbook book = new XSSFWorkbook(); var ReporteGpregunta = new ReporteEncuestaDB().getData(1, fecha_ini, fecha_fin); if (ReporteGpregunta.Count == 0) return string.Empty; String[] hPersona = { "N°", "NOMBRES Y APELLIDOS DEL \n COLABORADOR", "EVALUADOR", "EMPRESA" }; var sheet = book.CreateSheet("Reporte 1"); //Titulo cabecera 1 var rGpregunta = sheet.CreateRow(1); ICell cGpregunta; var cellMerge = 4; var contador = 0; //subtitulo de cabecera 1 var ReportePregunta = new ReporteEncuestaDB().getData(2, fecha_ini, fecha_fin); var rPregunta = sheet.CreateRow(2); rPregunta.Height = 39 * 39; ICell cPregunta; var contCell = 4; while (contador < ReporteGpregunta.Count) { var endIndex = ReporteGpregunta[contador].cont_idPregunta + cellMerge; sheet.AddMergedRegion(new CellRangeAddress(1, 1, cellMerge, endIndex)); cGpregunta = rGpregunta.CreateCell(cellMerge); cGpregunta.SetCellValue(ReporteGpregunta[contador].gdescripcion); cGpregunta.CellStyle = setFontText(12, true, book); cellMerge += ReporteGpregunta[contador].cont_idPregunta + 1; var listPregunta = ReportePregunta.FindAll(p => p.id_gpregunta == ReporteGpregunta[contador].id_gpregunta); for (int i = 0; i <= listPregunta.Count; i++) { cPregunta = rPregunta.CreateCell(contCell); if (i == listPregunta.Count) cPregunta.SetCellValue("TOTAL"); else cPregunta.SetCellValue(listPregunta[i].pdescripcion); cPregunta.CellStyle = setFontText(9, true, book); cPregunta.CellStyle.WrapText = true; contCell++; } contador++; } String[] ultimacelda = { "TOTAL", "EVALUACIÓN POR DESEMPEÑO" }; for (int u = 0; u < ultimacelda.Length; u++) { cGpregunta = rGpregunta.CreateCell(contCell + u); cGpregunta.SetCellValue(ultimacelda[u]); cGpregunta.CellStyle = setFontText(12, true, book); cGpregunta.CellStyle.WrapText = true; sheet.AddMergedRegion(new CellRangeAddress(1, 2, cellMerge + u, cellMerge + u)); } //titulo cabecera datos personas 1 ICell cPersona; for (int i = 0; i < hPersona.Length; i++) { if (i > 0) sheet.SetColumnWidth(i, 5000); cPersona = rGpregunta.CreateCell(i); cPersona.SetCellValue(hPersona[i]); cPersona.CellStyle = setFontText(12, true, book); sheet.AddMergedRegion(new CellRangeAddress(1, 2, i, i)); cPersona.CellStyle.WrapText = true; } //cuerpo de pregunta var ReporteContPersona = new ReporteEncuestaDB().getData(3, fecha_ini, fecha_fin); var ReportePuntaje = new ReporteEncuestaDB().getData(4, fecha_ini, fecha_fin); for (int i = 0; i < ReporteContPersona.Count; i++) { var rPuntaje = sheet.CreateRow(3 + i); var id_empleado = ReporteContPersona[i].id_empleado; ICell cPuntaje; var listPuntaje = ReportePuntaje.FindAll(p => p.id_empleado == id_empleado); cPuntaje = rPuntaje.CreateCell(0); cPuntaje.SetCellValue(i + 1); cPuntaje.CellStyle = setFontText(10, false, book); cPuntaje = rPuntaje.CreateCell(1); cPuntaje.SetCellValue(listPuntaje[0].empleado); cPuntaje.CellStyle = setFontText(10, false, book); cPuntaje = rPuntaje.CreateCell(2); cPuntaje.SetCellValue(listPuntaje[0].evaluador); cPuntaje.CellStyle = setFontText(10, false, book); cPuntaje = rPuntaje.CreateCell(3); cPuntaje.SetCellValue(listPuntaje[0].empresa); cPuntaje.CellStyle = setFontText(10, false, book); var countPuntaje = 4; var totalPuntaje = 0; for (int f = 0; f < ReporteGpregunta.Count; f++) { var listPreguntaDet = listPuntaje.FindAll(g => g.id_gpregunta == ReporteGpregunta[f].id_gpregunta); var totalDet = 0; for (int c = 0; c <= listPreguntaDet.Count; c++) { cPuntaje = rPuntaje.CreateCell(countPuntaje); if (c == listPreguntaDet.Count) cPuntaje.SetCellValue(totalDet); else { totalDet += listPreguntaDet[c].puntaje; cPuntaje.SetCellValue(listPreguntaDet[c].puntaje); } cPuntaje.CellStyle = setFontText(10, false, book); countPuntaje++; } totalPuntaje += totalDet; } cPuntaje = rPuntaje.CreateCell(countPuntaje); cPuntaje.SetCellValue(totalPuntaje); cPuntaje.CellStyle = setFontText(14, false, book); cPuntaje = rPuntaje.CreateCell(countPuntaje + 1); cPuntaje.SetCellValue(totalPuntaje >= 71 ? "ALTO" : totalPuntaje >= 45 ? "MEDIO" : "BAJO"); cPuntaje.CellStyle = setFontText(14, false, book); } var guide = "Reporte_consolidado_mensual_" + DateTime.Now.ToString("yyyyMMddHHmmss"); using (var file = new FileStream(HttpContext.Current.Server.MapPath(@"~/Utils/xlsxs/") + guide.ToString() + ".xlsx", FileMode.Create, FileAccess.ReadWrite)) { book.Write(file); file.Close(); } return guide.ToString(); } catch (Exception) { throw; } }