Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/10/2013, 14:49
Avatar de giancarloffi
giancarloffi
 
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 10 años, 10 meses
Puntos: 0
Importar diferentes excel a una tabla de BD

Hola amigos otra ves por aca con una consulta respecto a iprtar varios dicumentos de excel a un misma tabla, lo que tenog por el momento es esto:

Código PHP:
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>:: Importar de Excel a la Base de Datos ::</title>
</head>    

<form name="importa" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" >
    <input type="file" name="excel" />
    <input type='submit' name='enviar'  value="Importar"  />
    <input type="hidden" value="upload" name="action" />
</form>

<?php
error_reporting
(0);
extract($_POST);
if (
$action == "upload") { //si action tiene como valor UPLOAD haga algo (el value de este hidden es es UPLOAD iniciado desde el value
//cargamos el archivo al servidor con el mismo nombre(solo le agregue el sufijo bak_)
    
$archivo $_FILES['excel']['name']; //captura el nombre del archivo
    
$tipo $_FILES['excel']['type']; //captura el tipo de archivo (2003 o 2007)

    
$destino "bak_" $archivo//lugar donde se copiara el archivo

    
if (copy($_FILES['excel']['tmp_name'], $destino)) { //si dese copiar la variable excel (archivo).nombreTemporal a destino (bak_.archivo) (si se ha dejado copiar)
        
echo "Archivo Cargado Con Exito";
    } else {
        echo 
"Error Al Cargar el Archivo";
    }

    if (
file_exists("bak_" $archivo)) { //validacion para saber si el archivo ya existe previamente
        /* INVOCACION DE CLASES Y CONEXION A BASE DE DATOS */
        /** Invocacion de Clases necesarias */
        
require_once('Classes/PHPExcel.php');
        require_once(
'Classes/PHPExcel/Reader/Excel2007.php');
//DATOS DE CONEXION A LA BASE DE DATOS
        
$cn mysql_connect("localhost""root""1234") or die("ERROR EN LA CONEXION");
        
$db mysql_select_db("escuela"$cn) or die("ERROR AL CONECTAR A LA BD");

// Cargando la hoja de calculo
        
$objReader = new PHPExcel_Reader_Excel2007(); //instancio un objeto como PHPExcelReader(objeto de captura de datos de excel)
        
$objPHPExcel $objReader->load("bak_" $archivo); //carga en objphpExcel por medio de objReader,el nombre del archivo
        
$objFecha = new PHPExcel_Shared_Date();
// Asignar hoja de excel activa
        
$objPHPExcel->setActiveSheetIndex(0); //objPHPExcel tomara la posicion de hoja (en esta caso 0 o 1) con el setActiveSheetIndex(numeroHoja)
// Llenamos un arreglo con los datos del archivo xlsx
        
$i 11//celda inicial en la cual empezara a realizar el barrido de la grilla de excel
        
$param 0;
        
$contador 0;
        while (
$param == 0) { //mientras el parametro siga en 0 (iniciado antes) que quiere decir que no ha encontrado un NULL entonces siga metiendo datos
            //$nocontrol = $objPHPExcel->getActiveSheet()->getCell('B' . $i)->getCalculatedValue();
            
$nombre $objPHPExcel->getActiveSheet()->getCell('S' $i)->getCalculatedValue();
            
//$grado = $objPHPExcel->getActiveSheet()->getCell('D' . $i)->getCalculatedValue();
            //$grupo = $objPHPExcel->getActiveSheet()->getCell('E' . $i)->getCalculatedValue();
            // $sexo = $objPHPExcel->getActiveSheet()->getCell('F' . $i)->getCalculatedValue();
            
$c = ("insert into alumnos2 values($i,'$nombre')");
            
mysql_query($c);

            if (
$objPHPExcel->getActiveSheet()->getCell('B' $i)->getCalculatedValue() == NULL) { //pregunto que si ha encontrado un valor null en una columna inicie un parametro en 1 que indicaria el fin del ciclo while
                
$param 1//para detener el ciclo cuando haya encontrado un valor NULL
            
}
            
$i++;
            
$contador $contador 1;
        }
        
$totalIngresados $contador 1//(porque se se para con un NULL y le esta registrando como que tambien un dato)
        
echo "Total elementos subidos: $totalIngresados";
    } else {
//si no se ha cargado el bak
        
echo "Necesitas primero importar el archivo";
    }

    
unlink($destino); //desenlazar a destino el lugar donde salen los datos(archivo)
}
?>
y lo que hace es ingresarme a la tabla de la bd los datos desde ese excel pero si quiro ingresar otra hoja de excel a la misma tabla de la base de datos no lo hace alguien a trabajado con algo parecido, ya que lo que queir en si es lo siguiente:

por ejemplo un paciente se hace varios tipos de examenes y hya una amquina que te bota los resultados en excel y esos datos se encesitan ingresar al sistema mediante esa hoja de excel enotncs otro paciente se toma otors examen y ingresar tambien esos datos a esa tabla y asi sucesivamente por favor si alguien tuviera alguna guia o algun codigo por ahi q se pareciera en algo para estudiarlo ya que es la primera ves que hago algo asi, gracias de antemano