My code does not matter the excel data

0
<?php 
       extract($_POST);
       if (isset($_POST['action'])) {
       $action=$_POST['action'];
       }

       if (isset($action)== "upload"){
        //cargamos el archivo al servidor con el mismo nombre
        $archivo = $_FILES['excel']['name'];
        $tipo = $_FILES['excel']['type'];
        $destino = "bak_".$archivo;//Le agregamos sufijo para despues identificar el archivo más facil
        if (copy($_FILES['excel']['tmp_name'],$destino)) echo "Archivo Cargado Con Éxito";
        else echo "Error Al Cargar el Archivo";
        ////////////////////////////////////////////////////////
        if (file_exists ("bak_".$archivo)){ 
          /** Clases necesarias PHPEcel */
          require_once('Classes/PHPExcel.php');
          require_once('Classes/PHPExcel/Reader/Excel2007.php');          
          // Cargando la hoja de cálculo
          $objReader = new PHPExcel_Reader_Excel2007();
          $objPHPExcel = $objReader->load("bak_".$archivo);
          $objFecha = new PHPExcel_Shared_Date();       
          // Asignar hoja de excel activa
          $objPHPExcel->setActiveSheetIndex(0);       
          //conectamos con la base de datos 
          $cn = mysqli_connect("localhost","root","") or die ("ERROR EN LA CONEXION CON LA BD");
          $db = mysqli_select_db ($cn,"kidico") or die ("ERROR AL CONECTAR A LA BD");
              // Llenamos el arreglo con los datos  del archivo xlsx

          //Obtener la letra de la ultima columna y el numero de ROWs  que tiene el excel
          $columnas = $objPHPExcel->setActiveSheetIndex(0)->getHighestColumn();
          $filas = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
          $_DATOS_EXCEL = array();
          //echo 'getHighestColumn() =  [' . $columnas . ']<br/>';
          //echo 'getHighestRow() =  [' . $filas . ']<br/>';

          //Creamos un areglo con todos los datos del Excel
          for ($i=2;$i<=$filas;$i++){
           $_DATOS_EXCEL[$i]['id'] = $objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue();
           $_DATOS_EXCEL[$i]['nombre'] = $objPHPExcel->getActiveSheet()->getCell('B'.$i)->getCalculatedValue();
           $_DATOS_EXCEL[$i]['fechainicio'] = $objPHPExcel->getActiveSheet()->getCell('C'.$i)->getCalculatedValue();
           $_DATOS_EXCEL[$i]['horainicio']= $objPHPExcel->getActiveSheet()->getCell('D'.$i)->getCalculatedValue();
           $_DATOS_EXCEL[$i]['fechafinal']= $objPHPExcel->getActiveSheet()->getCell('F'.$i)->getCalculatedValue();
           $_DATOS_EXCEL[$i]['horafinal'] = $objPHPExcel->getActiveSheet()->getCell('G'.$i)->getCalculatedValue();
            $_DATOS_EXCEL[$i]['activo'] = 1;
          }   
          $errores=0;
          //recorremos el arreglo multidimensional 
          //para ir recuperando los datos obtenidos
          //del excel e ir insertandolos en la BD
          foreach($_DATOS_EXCEL as $campo => $valor){
            $sql = "INSERT INTO registro (id,nombre,fechainicio,horainicio ,fechafinal,horafinal activo)  VALUES ('";
            foreach ($valor as $campo2 => $valor2){
              $campo2 == "activo" ? $sql.= $valor2."');" : $sql.= $valor2."','";
            }// el valo "activo" que se compara debe ser el mismo nombre 
//que el de nuestro arreglo dimensional, ejemplo si en mi arreglo 
//la ultima columna se llama 'estatus', entonces el 
//operador ternario debería comparar la palabra estatus
            $result = mysqli_query($conn,$sql);
            if (!$result){ echo "Error al insertar registro ".$campo;$errores+=1;}
          } 
          ///////////////////////////////////////////////////////////////////////// 
          echo "<strong><center>ARCHIVO IMPORTADO CON EXITO, EN TOTAL $campo REGISTROS Y $errores ERRORES</center></strong>";
          //una vez terminado el proceso borramos el 
          //archivo que esta en el servidor el bak_
          unlink($destino);

        }
          //si por algo no cargo el archivo bak_ 
        else{
          echo " Necesitas primero importar el archivo con extencion .xlsx";
        }
      }
    ?>


<?php
    
asked by Oscar Armando Poblano Paz 29.06.2018 в 18:45
source

0 answers