private static void ExportarHorarioGrupos(Excel.Workbook workBook, Excel.Worksheet workSheet, ClsIndividuo obj, FormExportar frm) { for (int grupo = 0; grupo < obj._SuperIndv.Grupos.GetLength(0); grupo++) // se ejecuta según la cantidad de grupos que haya { Console.WriteLine(" G R U P O : " + grupo); int[,] Horario; string[,] HorarioCompleto; string nombreHoja = ""; int bloqueColocar = 0; string letra = ""; int numero = 0; int bloqueReceso = 0; IndiceHoja++; workSheet = workBook.Worksheets[IndiceHoja]; // Se posiciona en la hoja según el índice char[] nombreLetras = obj._SuperIndv.DatosGrupos[grupo, 1].ToArray(); for (int n = 0; n < obj._SuperIndv.DatosGrupos.GetLength(0); n++) { if (Int32.Parse(obj._SuperIndv.DatosGrupos[n, 0]) == obj._SuperIndv.Grupos[grupo]) { nombreLetras = obj._SuperIndv.DatosGrupos[n, 1].ToArray(); if (nombreLetras.Length >= 30) // por si el nombre sobrepasa los 30 caracteres { for (int i = 0; i < 30; i++) { nombreHoja += nombreLetras[i]; } } break; } } for (int n = 0; n < nombreLetras.Length; n++) { nombreHoja += nombreLetras[n]; } workSheet.Name = nombreHoja; //Asigna el Nombre a las hojas frm.Invoke(new MethodInvoker(delegate() { frm.Actualizar(nombreHoja); })); ImprimeEncabezadoHoras(workSheet, obj._SuperIndv.Horas, obj._SuperIndv.Dias); Horario = HorarioGrupo(obj._SuperIndv.Grupos[grupo], obj, workBook, workSheet); HorarioCompleto = CompletarHorarioGrupo(Horario, obj._SuperIndv.DatosMaterias, obj._SuperIndv.DatosAula, obj._SuperIndv.DatosDocente); for (int i = 0; i < obj._SuperIndv.DatosBloques.GetLength(0); i++) // recorre por días { letra = Letras[i + 1]; // letra en la que se va a imprimir bloqueReceso = obj._SuperIndv.BloquesReceso[i]; // obtiene el bloque de receso del día numero = 4; // número desde el cual se comenzará a imprimir for (int j = 0; j < obj._SuperIndv.DatosBloques[i].GetLength(0); j++) // recorre por horas { bloqueColocar = obj._SuperIndv.DatosBloques[i][j]; // obtiene el bloque a colocar en if (bloqueColocar == bloqueReceso) { numero++; } else { for (int m = 0; m < HorarioCompleto.GetLength(0); m++) { if (bloqueColocar == Int32.Parse(HorarioCompleto[m, 0])) { workSheet.Cells[numero, letra] = HorarioCompleto[m, 1] + "\r\n" + HorarioCompleto[m, 2] + "\r\n" + HorarioCompleto[m, 3]; } } workSheet.Cells[numero, letra].Font.Size = 8; // Tamaño de la letra workSheet.Cells[numero, letra].Borders.LineStyle = Excel.XlLineStyle.xlContinuous; //Bordes workSheet.Cells[numero, letra].VerticalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; // Alineación Vertical workSheet.Cells[numero, letra].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; // Alineación Horizontal numero++; } } } } }
private static void ExportarHorarioDocente(Excel.Workbook workBook, Excel.Worksheet workSheet, ClsIndividuo obj, FormExportar frm) { for (int docente = 0; docente < obj._SuperIndv.Docentes.GetLength(0); docente++) // se ejecuta según la cantidad de docentes que haya { Console.WriteLine(" D O C E N T E : " + docente); int[,] Horario; string[,] HorarioCompleto; string nombreHoja = ""; int bloqueColocar = 0; string letra = ""; int numero = 0; int bloqueReceso = 0; IndiceHoja++; workSheet = workBook.Worksheets[IndiceHoja]; // Se posiciona en la hoja según el índice nombreHoja = NombreDocente(obj._SuperIndv.DatosDocente[docente, 1]); workSheet.Name = nombreHoja; //Asigna el Nombre a las hojas frm.Invoke(new MethodInvoker(delegate() { frm.Actualizar(nombreHoja); })); ImprimeEncabezadoHoras(workSheet, obj._SuperIndv.Horas, obj._SuperIndv.Dias); Horario = HorarioDocente(obj._SuperIndv.Docentes[docente], obj, workBook, workSheet); HorarioCompleto = CompletarHorarioDocente(Horario, obj._SuperIndv.DatosMaterias, obj._SuperIndv.DatosGrupos, obj._SuperIndv.DatosAula); for (int m = 0; m < Horario.GetLength(0); m++) { Console.WriteLine(Horario[m, 0] + " - " + Horario[m, 1] + " - " + Horario[m, 2] + " - " + Horario[m, 3]); } for (int i = 0; i < obj._SuperIndv.DatosBloques.GetLength(0); i++) { letra = Letras[i + 1]; bloqueReceso = obj._SuperIndv.BloquesReceso[i]; numero = 4; for (int j = 0; j < obj._SuperIndv.DatosBloques[i].GetLength(0); j++) { bloqueColocar = obj._SuperIndv.DatosBloques[i][j]; if (bloqueColocar == bloqueReceso) { numero++; } else { for (int m = 0; m < HorarioCompleto.GetLength(0); m++) { if (bloqueColocar == Int32.Parse(HorarioCompleto[m, 0])) { workSheet.Cells[numero, letra] = HorarioCompleto[m, 0] + "\r\n" + HorarioCompleto[m, 1] + "\r\n" + HorarioCompleto[m, 2] + "\r\n" + HorarioCompleto[m, 3]; } } workSheet.Cells[numero, letra].Font.Size = 8; // Tamaño de la letra workSheet.Cells[numero, letra].Borders.LineStyle = Excel.XlLineStyle.xlContinuous; //Bordes workSheet.Cells[numero, letra].VerticalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; // Alineación Vertical workSheet.Cells[numero, letra].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; // Alineación Horizontal numero++; } } } } }