Jump to content

problema con importar un excel a una BD


Recommended Posts

cumpita es un test. no lo adecues a tu archivo cambia la variable $dir por un directorio donde alojes TODOS TUS EXCEL!!!!!!!!!!

 

por ejemplo

 

$dir = "misExcel/";

 

GUARDA TODOS TUS EXCEL EN ESA CARPETA Y LUEGO ARRANCA EL SCRIPT QUE TE MANDE PARA QUE VEAS COMO FUNCIONA!!!!!!!!!!!!!!!!!!!!...

 

uu compare te pasaste re100 vine a cachar xd, ahora mi consulta es como puedo recuperar esos datos y llevarlo a una tabla de una BD, por ejemplo tengo

en la primera columna toos los rut pa abajo, la segunda columna, toos los nombres, etc, aqui ya recupero los datos, pero como puedo llevar estos datos a una tabla..

 

compa gracias la vdd me has ayudado nnn...

Link to comment
Share on other sites

Ocupa algo como esto

 

$link = msql_connect("TuServer", "user", "pass");

$con = mysql_select_db("TuDataBase");

mysql_query("INSERT INTO TuDataBase (col1, col2, col3, ...., colN) VALUES (val1, val2, val3, ...., valN)", $con);

 

Link to comment
Share on other sites

eso de arriba lo tengo claro, pero como paso los parametros col1,col2, etc, es decir en el insert into, como recupero esos valores, del codigo q me diste, donde se leen los excel, por $_get[¨file¨]?, nose xD

 

onda rescatarlos del codigo q me diste de los excel, como lo rescato...

 

pucha disculpame por molestarte harto, si te aburri es comprensible y dejalo hasta aqui no mas ya me has ayudado nnn

Link to comment
Share on other sites

ajaja relax

 

los col1 col2 etc.. son las columnas de tu base de datos eso son constantes, por ejemplo insert into myBase(Rut) values ("18.574.450-3")

 

lo importante seria rescatar ese rut... ("18.574.450-3")

 

segun lo que me dijiste

 

en la primera columna toos los rut pa abajo, la segunda columna, toos los nombres, etc, aqui ya recupero los datos, pero como puedo llevar estos datos a una tabla..

 

te falta simplemente hacer un bucle...

 

$link = msql_connect("TuServer", "user", "pass");
$con = mysql_select_db("TuDataBase");

for($i=1; $i<=$cantidadFilas; $i++){
$rut = $data->sheets[0]['cells'][$i][1];
$nombre = $data->sheets[0]['cells'][$i][2];
$edad = $data->sheets[0]['cells'][$i][3];

//y asi....

//Para agregar...

mysql_query("INSERT INTO TuDataBase (Rut, Nombre, Edad) VALUES ($rut, $nombre, $edad)", $con);
}

 

Y eso seria...

 

entonces añadiendo al codigo que antes te mostre...

 


<?php

//CAMBIAR
$dir = "miDir/"; //direccion de tus archivos excel...
$totalFilas = 5; //Numero total de filas a mostrar (1, 2, 3...)
$bd = array("host", "user", "pass", "bdName"); //datos del host, 1-Host; 2-Usuario; 3-Pass; 4-Nombre de la BD
//FIN CAMBIAR



//No cambiar de aca para abajo
$link = mysql_connect($bd[0], $bd[1], $bd[2]);
$con = mysql_select_db($bd[3]);
require_once 'Excel/reader.php';
$excel = $_GET['file'];
if($excel == ""){
    if($dh = opendir($dir)){
        while (($file = readdir($dh)) !== false){
            if($file != "." && $file != ".."){
            $file2 = "$dir$file";
            echo 'Leer archivo excel: <a href="?file='.$file2.'">'.$file.'</a><br/>';
            }
        }
    closedir($dh);
    }
}
else{
    if(file_exists($excel)){
    $ext = str_replace(strrev(strstr(strrev($excel), ".")), "", $excel);
        if($ext == "xls" || $ext == "xlsx"){
        $data = new Spreadsheet_Excel_Reader();
        $data->setOutputEncoding('CP1251');
        $data->read($excel);
            for($i=1; $i<=$totalFilas; $i++){
            $rut = $data->sheets[0]['cells'][$i][1];
            $nombre = $data->sheets[0]['cells'][$i][2];
            $edad = $data->sheets[0]['cells'][$i][3];
            mysql_query("INSERT INTO ".$bd[3]." (Rut, Nombre, Edad) VALUES ($rut, $nombre, $edad)", $con);
            }
        }
        else{
        echo "El archivo no es excel";
        }
    }
    else{
    echo "El archivo no existe";
    }
}
?>

 

Suerte cumpita con esto deberia andar rapido el relleno de base de datos y dinamico y facil de usar

Edited by alvaroxz
Link to comment
Share on other sites

ya BKN pude pero el atao q tengo ahora, q la fecha q trae el excel, en la columna 3 para abajo, me recupera valores q na q ver, too lo demas bn, pero hay donde me recupera valores q na q ver xD

 

por ejemplo la fecha 22/09/1986, me recupera el valor 31677, y na q ver, yo toos los demas campo bn, q raro, nose q estara mal xD

 

porfa otra ayudita mas :D

 

saludos... jejejej

Edited by crinfo
Link to comment
Share on other sites

ya BKN pude pero el atao q tengo ahora, q la fecha q trae el excel, en la columna 3 para abajo, me recupera valores q na q ver, too lo demas bn, pero hay donde me recupera valores q na q ver xD

 

por ejemplo la fecha 22/09/1986, me recupera el valor 31677, y na q ver, yo toos los demas campo bn, q raro, nose q estara mal xD

 

porfa otra ayudita mas :D

 

saludos... jejejej

 

Lee el excel a ver que contiene esa celda, ya que la libreria esta que lee escribe lo que esta en la celda como string.... y talvez 31677 es una forma de digitar fecha...

Link to comment
Share on other sites

dostor

en el form q el loko seleccione el excel le pones su input file para q seleccione el excel despues por post se lo mandai al php q recibe el archivo puedes copiarlo en una carpeta del servidor o directamente desde la memoria onda

$_FILES[archivo][tmp_name]

 

ai despues con ese archivo aces el proceso de importar pero = no seria mas facil importarlo desde un archivo csv? te saldria mucho menos tedioso, yo antes ocupaba el excel reader la verdad ni me acuerdo pq deje de usarlo creo q un cacho debe aber tirao mejor usa csv dostor y te aorrai el guebeo de la libreria saludossss

Link to comment
Share on other sites

si pero en un excel por los general son datos cortos o definidos segun el campo , pero lo que dices esta bien y ya recorde porque deje de usar esa libreria, cuando exportas un xls parece q esa libreria exporta o no?, ni recuerdo pero la guea q exportaba con una libreria php(probe con varias), al importar ese mismo archivo con la libreria que mencionan no me la reconocia asi que ai cueck guateo el desarrollok con importasaund de excel asi q cvs rapido bonito y funcionalp

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...