resultados_importar_previo.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. /* AJAX
  3. * Selecciona los datos de la carrera
  4. * Recibe:
  5. * id - ID de la carrera
  6. * Return:
  7. * resultado o cadena de error
  8. */
  9. require_once("../../include/constantes.php");
  10. require_once("../../include/nocache.php");
  11. require_once("../../include/util.php");
  12. require "../../include/phpSpreadsheet/autoload.php";
  13. /*
  14. $return["archivo"] = $_FILES['archivo']['name'];
  15. $return["inputFileName"] = $_FILES['archivo']['tmp_name'];
  16. $return["size"] = $_FILES['archivo']['size'];
  17. $return["json"] = json_encode($return);
  18. echo json_encode($return);
  19. exit();*/
  20. use PhpOffice\PhpSpreadsheet\IOFactory;
  21. function renglonVacio($data, $ini, $max){
  22. for($i = $ini; $i<=$max; $i++){
  23. if(isset($data[$i]) && trim($data[$i]) != "")
  24. return false;
  25. }
  26. return true;
  27. }
  28. function valoresCompletos($data, $ini, $max){
  29. for($i = $ini; $i<=$max; $i++){
  30. if(!isset($data[$i]) || (trim($data[$i]) == "" || strlen(trim($data[$i])) <= 1))
  31. return false;
  32. }
  33. return true;
  34. }
  35. //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
  36. if(!isset($_FILES['archivo']['name']) || $_FILES['archivo']['name'] == null){
  37. $return["error"] = "Error! No se recibió la información del archivo de alumnos.";
  38. }else{
  39. //$inputFileName =__DIR__. '/tmp/alumnos_tmp.xlsx';
  40. $archivo = $_FILES['archivo']['name'][0];
  41. // Check file size
  42. if ($_FILES["archivo"]["size"][0] > 10 * 1024 * 1024) {//en bytes
  43. $return["error"] = "Demasiado grande";
  44. $return["json"] = json_encode($return);
  45. echo json_encode($return);
  46. exit();
  47. }
  48. $exts_arr = array("xls","xlsx");
  49. $dot_arr = explode('.', $archivo);
  50. $ext = end($dot_arr);
  51. if(!in_array($ext, $exts_arr)){
  52. $return["error"] = "No es una extensión válida";
  53. $return["json"] = json_encode($return);
  54. echo json_encode($return);
  55. exit();
  56. }
  57. $inputFileName = $_FILES["archivo"]["tmp_name"][0];
  58. $inputFileType = IOFactory::identify($inputFileName);
  59. $reader = IOFactory::createReader($inputFileType);
  60. $spreadsheet = $reader->load($inputFileName);
  61. $sheetData = $spreadsheet->getActiveSheet()->toArray();
  62. $fecha = trim($spreadsheet->getActiveSheet()->getCell('M5')->getValue());
  63. $alumnoArr = array();
  64. $omitidoArr = array();
  65. $al = 0;
  66. $omitido = 0;
  67. $row = 1;//donde empiezaa el archivo
  68. foreach($sheetData as $data){
  69. $col = 1;
  70. if($row >= 4){//ignora header
  71. if(valoresCompletos($data, 1, 10)){
  72. $alumnoArr[$al]["folio"] = trim($data[$col++]);
  73. $alumnoArr[$al]["clave"] = trim($data[$col++]);
  74. $alumnoArr[$al]["nombre"] = trim($data[$col++]);
  75. $alumnoArr[$al]["apellidos"] = trim($data[$col++]);
  76. $alumnoArr[$al]["res1"] = (trim($data[$col++]));
  77. $alumnoArr[$al]["res2"] = (trim($data[$col++]));
  78. $alumnoArr[$al]["res3"] = (trim($data[$col++]));
  79. $alumnoArr[$al]["res4"] = (trim($data[$col++]));
  80. $alumnoArr[$al]["res5"] = (trim($data[$col++]));
  81. $alumnoArr[$al]["total"] = (trim($data[$col++]));//se puede calcular
  82. $al++;
  83. }else{//no están completos
  84. if(!renglonVacio($data, 1, 10)){//si no están vacías las 9 celdas del rengón
  85. $omitidoArr[$omitido]["folio"] = trim($data[$col++]);
  86. $omitidoArr[$omitido]["clave"] = trim($data[$col++]);
  87. $omitidoArr[$omitido]["nombre"] = trim($data[$col++]);
  88. $omitidoArr[$omitido]["apellidos"] = trim($data[$col++]);
  89. $omitido++;
  90. }
  91. }
  92. }
  93. $row++;
  94. }
  95. $return["fecha"] = $fecha;
  96. $return["alumnosArr"] = $alumnoArr;
  97. $return["omitidosArr"] = $omitidoArr;
  98. $return["omitidos"] = $omitido;
  99. }
  100. $return["json"] = json_encode($return);
  101. echo json_encode($return);
  102. ?>