<?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