| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <?php
- /* AJAX
- * Selecciona los datos de la carrera
- * Recibe:
- * id - ID de la carrera
- * Return:
- * resultado o cadena de error
- */
- require_once("../../include/constantes.php");
- require_once("../../include/nocache.php");
- require_once("../../include/util.php");
- require "../../include/phpSpreadsheet/autoload.php";
- /*
- $return["archivo"] = $_FILES['archivo']['name'];
- $return["inputFileName"] = $_FILES['archivo']['tmp_name'];
- $return["size"] = $_FILES['archivo']['size'];
- $return["json"] = json_encode($return);
- echo json_encode($return);
- exit();*/
- use PhpOffice\PhpSpreadsheet\IOFactory;
- function renglonVacio($data, $ini, $max){
- for($i = $ini; $i<=$max; $i++){
- if(isset($data[$i]) && trim($data[$i]) != "")
- return false;
- }
- return true;
- }
- function valoresCompletos($data, $ini, $max){
- for($i = $ini; $i<=$max; $i++){
- if(!isset($data[$i]) || (trim($data[$i]) == "" || strlen(trim($data[$i])) <= 1))
- return false;
- }
- return true;
- }
- //--- Objeto para validar usuario. El id de usuario lo lee desde sesión
- if(!isset($_FILES['archivo']['name']) || $_FILES['archivo']['name'] == null){
- $return["error"] = "Error! No se recibió la información del archivo de alumnos.";
- }else{
- //$inputFileName =__DIR__. '/tmp/alumnos_tmp.xlsx';
- $archivo = $_FILES['archivo']['name'][0];
- // Check file size
- if ($_FILES["archivo"]["size"][0] > 10 * 1024 * 1024) {//en bytes
- $return["error"] = "Demasiado grande";
- $return["json"] = json_encode($return);
- echo json_encode($return);
- exit();
- }
- $exts_arr = array("xls","xlsx");
- $dot_arr = explode('.', $archivo);
- $ext = end($dot_arr);
- if(!in_array($ext, $exts_arr)){
- $return["error"] = "No es una extensión válida";
- $return["json"] = json_encode($return);
- echo json_encode($return);
- exit();
- }
- $inputFileName = $_FILES["archivo"]["tmp_name"][0];
-
- $inputFileType = IOFactory::identify($inputFileName);
- $reader = IOFactory::createReader($inputFileType);
- $spreadsheet = $reader->load($inputFileName);
- $sheetData = $spreadsheet->getActiveSheet()->toArray();
- $fecha = trim($spreadsheet->getActiveSheet()->getCell('M5')->getValue());
-
- $alumnoArr = array();
- $omitidoArr = array();
- $al = 0;
- $omitido = 0;
- $row = 1;//donde empiezaa el archivo
- foreach($sheetData as $data){
- $col = 1;
- if($row >= 4){//ignora header
- if(valoresCompletos($data, 1, 10)){
- $alumnoArr[$al]["folio"] = trim($data[$col++]);
- $alumnoArr[$al]["clave"] = trim($data[$col++]);
- $alumnoArr[$al]["nombre"] = trim($data[$col++]);
- $alumnoArr[$al]["apellidos"] = trim($data[$col++]);
- $alumnoArr[$al]["res1"] = (trim($data[$col++]));
- $alumnoArr[$al]["res2"] = (trim($data[$col++]));
- $alumnoArr[$al]["res3"] = (trim($data[$col++]));
- $alumnoArr[$al]["res4"] = (trim($data[$col++]));
- $alumnoArr[$al]["res5"] = (trim($data[$col++]));
- $alumnoArr[$al]["total"] = (trim($data[$col++]));//se puede calcular
- $al++;
- }else{//no están completos
- if(!renglonVacio($data, 1, 10)){//si no están vacías las 9 celdas del rengón
- $omitidoArr[$omitido]["folio"] = trim($data[$col++]);
- $omitidoArr[$omitido]["clave"] = trim($data[$col++]);
- $omitidoArr[$omitido]["nombre"] = trim($data[$col++]);
- $omitidoArr[$omitido]["apellidos"] = trim($data[$col++]);
- $omitido++;
- }
- }
- }
- $row++;
- }
- $return["fecha"] = $fecha;
- $return["alumnosArr"] = $alumnoArr;
- $return["omitidosArr"] = $omitidoArr;
- $return["omitidos"] = $omitido;
- }
- $return["json"] = json_encode($return);
- echo json_encode($return);
- ?>
|