Post on 10-Apr-2016
description
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 1/14
Programar En PHPProgramando en php, de forma sencilla…
Importar de excel a mysql con php
junio 6, 2011
Necesitas importar registros a tu base de datosdesde Excel y ¿aún no sabes como hacerlo?, eneste artículo te explico con un ejemplo sencillocomo puedes hacerlo, así que no te pierdas esteartículo y mejor aún léelo hasta el final.
Te va ser muy útil cuando necesitas cargar datosque ya tienes almacenados en una hoja de Excel yque ahora necesitas insertarlos en tu base dedatos, o bien necesitas jalar datos del mismo Excelpara realizar cálculos en tu código, etc. muchos
ejemplos donde necesites leer un documento en Excel.
Pero bueno a ti te interesa el ejemplo y eso te voy a explicar ahorita, paso a paso:
Primero: La base de datos que voy a utilizar para este ejemplo se llama: “escuela” y la tabla enla voy insertar los registros extraídos de Excel se llama “alumnos” y tiene los campos “(id,nocontrol, nombre, grado, grupo, sexo).
Segundo: Necesitas descargar la Clase PHPExcel de Maarten Balliauw (tiene licencia LGPL), yla puedes descargar desde aquí http://www.codeplex.com/PHPExcel(http://www.codeplex.com/PHPExcel), o bien ya viene incluida en el ejemplo.
Tercero: El siguiente código es el que hace el trabajo pesado, se encuentra comentado:
<!– http://ProgramarEnPHP.wordpress.com (http://ProgramarEnPHP.wordpress.com) –>
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 2/14
<!– http://ProgramarEnPHP.wordpress.com (http://ProgramarEnPHP.wordpress.com) –>
<head>
<meta http‑equiv=”Content‑Type” content=”text/html; charset=utf‑8″ />
<title>:: Importar de Excel a la Base de Datos ::</title>
</head>
<body>
<!– FORMULARIO PARA SOICITAR LA CARGA DEL EXCEL –>
Selecciona el archivo a importar:
<form name=”importa” method=”post” action=”<?php echo $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>
<!– CARGA LA MISMA PAGINA MANDANDO LA VARIABLE upload –>
<?php
extract($_POST);
if ($action == “upload”){
//cargamos el archivo al servidor con el mismo nombre
//solo le agregue el sufijo bak_
$archivo = $_FILES[‘excel’][‘name’];
$tipo = $_FILES[‘excel’][‘type’];
$destino = “bak_”.$archivo;
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 */require_once(‘Classes/PHPExcel.php’);
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 3/14
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 = mysql_connect (“localhost”,”root”,”pass”) or die (“ERROR EN LA CONEXION”);
$db = mysql_select_db (“escuela”,$cn) or die (“ERROR AL CONECTAR A LA BD”);
// Llenamos el arreglo con los datos del archivo xlsx
for ($i=1;$i<=47;$i++){
$_DATOS_EXCEL[$i][‘nocontrol’] = $objPHPExcel‑>getActiveSheet()‑>getCell(‘B’.$i)‑>getCalculatedValue();
$_DATOS_EXCEL[$i][‘nombre’] = $objPHPExcel‑>getActiveSheet()‑>getCell(‘C’.$i)‑>getCalculatedValue();
$_DATOS_EXCEL[$i][‘grado’]= $objPHPExcel‑>getActiveSheet()‑>getCell(‘D’.$i)‑>getCalculatedValue();
$_DATOS_EXCEL[$i][‘grupo’]= $objPHPExcel‑>getActiveSheet()‑>getCell(‘E’.$i)‑>getCalculatedValue();
$_DATOS_EXCEL[$i][‘sexo’] = $objPHPExcel‑>getActiveSheet()‑>getCell(‘F’.$i)‑>getCalculatedValue();
}
}
//si por algo no cargo el archivo bak_
else{echo “Necesitas primero importar el archivo”;}
$errores=0;
//recorremos el arreglo multidimensional
//para ir recuperando los datos obtenidos
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 4/14
//para ir recuperando los datos obtenidos
//del excel e ir insertandolos en la BD
foreach($_DATOS_EXCEL as $campo => $valor){
$sql = “INSERT INTO alumnos VALUES (NULL,ʹ”;
foreach ($valor as $campo2 => $valor2){
$campo2 == “sexo” ? $sql.= $valor2.”‘);” : $sql.= $valor2.”‘,ʹ”;
}
$result = mysql_query($sql);
if (!$result){ echo “Error al insertar registro “.$campo;$errores+=1;}
}
/////////////////////////////////////////////////////////////////////////
echo “<strong><center>ARCHIVO IMPORTADO CON EXITO, EN TOTAL $campoREGISTROS Y $errores ERRORES</center></strong>”;
//una vez terminado el proceso borramos el
//archivo que esta en el servidor el bak_
unlink($destino);
}
?>
</body>
</html>
Cuarto: Te explico, lo primer
o es el formulario HTML que solicita el archivo a importar, luego una vez copiadocorrectamente el mismo en el servidor y gracias a la clase PHPExcel comenzamos a recorrerlo yobtener los datos del mismo hacia un arreglo multidimensional, ojo aquí se podría ir creando laconsulta sql para insertarlo en la BD, pero la idea de guardarlo en el arreglo es poder procesar,utilizar y/o calcular si lo fuese necesario con esos datos almacenados.
Ya una vez almacenado los datos en el arreglo ahora los utilizamos para pasarlos a la consultaque se encarga de insertar los datos.
Ups, me extendí un
poco en la explicación pero espero haberme explicado, igual da click aquí
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 5/14
poco en la explicación pero espero haberme explicado, igual da click aquí(http://programarenphp.dysihosting.com/ejemplos/excelamysql.rar)para descargar el ejemplocompleto, incluyendo el documento en Excel del ejemplo, solo recuerda poner los datos deconexión del mysql tuyo.
Ahora si nos vemos en la próxima, espero te sea de mucha, mucha utilidad como a mí. Nodudes comentar o bien déjame tus dudas, yo dos veces por semana checo comentarios ycontesto los mas posibles.
Atte, tu amigo Salvador López
From → Avanzado
32 comentarios 1. Carlos permalinkHola se ve bueno el tutorial, pero me sale este error: Acceso prohibido!
Usted no tiene permiso de accesar al objeto solicitado. El objeto está protegido contralectura, o no puede ser leido por el servidor.
Si usted cree que esto es un error del servidor, por favor comuníqueselo al administradordel portal.
Error 403
—‑ A que se debe esto???? Ayuda por favor
Responder2. BRENDA MEZA permalinkMuchas gracias por el tutorial!!! Si funciona correctamente… solamente modificando en elarchivo php.ini en este pequeño codigo ;extension=php_zip.dll quitar el comentario “;” ylisto… me funciono a la primera!!! :D…
ResponderJan Carlos permalinkamiga podrias pasarme todo el archivo completo,es que me hace falta para mi proyectode sustentacion y lo necesito urgente
Responder
You May Like
1.
Acerca de estos anuncios (https://wordpress.com/about-these-ads/)
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 6/14
Responder3. Juan permalinkla aplicacion esta buena, solo que teine problemas con la ñ y los acentos, como se puedearreglar?
Responder4. quero permalinkforeach($_DATOS_EXCEL as $campo => $valor){ $sql = “INSERT INTO alumnos VALUES (NULL,ʹ”; foreach ($valor as $campo2 => $valor2){ $campo2 == “sexo” ? $sql.= $valor2.”‘);” : $sql.= $valor2.”‘,ʹ”; } $result = mysql_query($sql); if (!$result){ echo “Error al insertar registro “.$campo;$errores+=1;} }
no tengo claro como funciona este insert….
Responder5. David permalinkTuve que modificar un poco el codigo para que me dejara importar unos datos ( unos,porque solo me importa los 30 primeros, :S ).
¿No saben porque se da eso?y ¿como puedo importar totalmente el archivo?
Responder6. @overloadxd permalinkexcelente funciono al toque, saludos.
Responder7. @overloadxd permalinkexcelente, me anduvo al toque
buenisima opcion para traspasar datos
algun script para crear tablas desde php ma amigablemetne?
saludos.
Responder8. Isma permalinkUna consulta, en esta parte del código le pones $i<=47, Hay alguna manera de saber cuantasfilas tengo con satos.. porque la cantidad de fila en los archivos siempre varia, las columnasen mi caso no. existe alguna función que haga eso?? porque sino inserta los datos y en todaslas que ʺsobranʺ arroja error de consulta… ademas si tienes como promedio 5000 filas parainsertar… es muy ineficiente poner 10.000, para que las inserte todas..
for ($i=1;$igetActiveSheet()‑>getCell(‘B’.$i)‑>getCalculatedValue(); $_DATOS_EXCEL[$i][‘nombre’] = $objPHPExcel‑>getActiveSheet()‑>getCell(‘C’.$i)‑>getCalculatedValue(); $_DATOS_EXCEL[$i][‘grado’]= $objPHPExcel‑>getActiveSheet()‑>getCell(‘D’.$i)‑>getCalculatedValue();
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 7/14
>getCalculatedValue(); $_DATOS_EXCEL[$i][‘grupo’]= $objPHPExcel‑>getActiveSheet()‑>getCell(‘E’.$i)‑>getCalculatedValue(); $_DATOS_EXCEL[$i][‘sexo’] = $objPHPExcel‑>getActiveSheet()‑>getCell(‘F’.$i)‑>getCalculatedValue(); }
Responder9. Andres Erazo ‑ Coordinador General ITSCS permalinkQue mas brothers, encontre la solucion a lo que buscaba no fue necesaria una funcion delPHPEXCEL sino un simple contador, hagan lo siguiente incluso el codigo funciona sinobjetos ojala les sirva de algo:
:: Importar de Excel a la Base de Datos ::
Estimado Usuario: Seleccione el archivo a importar: <form name=ʺimportaʺ method=ʺpostʺ action=ʺ” enctype=”multipart/form‑data” >
<?php extract($_POST); if ($action == ʺuploadʺ) //si action tiene como valor UPLOAD haga algo (el value de estehidden 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”,””) 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
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 8/14
// Cargando la hoja de calculo $objReader = new PHPExcel_Reader_Excel2007(); //instancio un objeto comoPHPExcelReader(objeto de captura de datos de excel) $objPHPExcel = $objReader‑>load(“bak_”.$archivo); //carga en objphpExcel por medio deobjReader,el nombre del archivo $objFecha = new PHPExcel_Shared_Date();
// Asignar hoja de excel activa $objPHPExcel‑>setActiveSheetIndex(0); //objPHPExcel tomara la posicion de hoja (en estacaso 0 o 1) con el setActiveSheetIndex(numeroHoja)
// Llenamos un arreglo con los datos del archivo xlsx $i=1; //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 noha encontrado un NULL entonces siga metiendo datos {
$nocontrol=$objPHPExcel‑>getActiveSheet()‑>getCell(‘B’.$i)‑>getCalculatedValue(); $nombre=$objPHPExcel‑>getActiveSheet()‑>getCell(‘C’.$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 alumnos values($i,$nocontrol,’$nombre’,’$grado’,’$grupo’,’$sexo’)”); mysql_query($c);
if($objPHPExcel‑>getActiveSheet()‑>getCell(‘A’.$i)‑>getCalculatedValue()==NULL)//pregunto que si ha encontrado un valor null en una columna inicie un parametro en 1 queindicaria 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 comoque 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) }
?>
Responder
10. Andres Erazo ‑ Coordinador General ITSCS permalink
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 9/14
10. Andres Erazo ‑ Coordinador General ITSCS permalinkMuchas gracias eres un Dios, el ejemplo funciono perfectamente, solo tengo una duda, en elejemplo solo importa hasta 47 registros, claro me doy cuenta que la cosa esta en el for quecaptura los datos, pero supon el caso en que no se cuantos registros tengo, hay algunamanera de saber cuantos registros escritos existen en el excel para luego ese valorcapturarlo en un parametro y que este sea el limite del for, asi no sera necesario saber delusuario cuantos registros esta subiendo. Muchas gracias por el aporte y ayudame a ver si sehalla solucion para esta otra situacion que te cuento.
Responder11. Marco permalink
Hola, muy bueno el tutorial. Me pregunto si conoces alguna manera de que verifique si undato en la base de datos ya existe. Que este no se guarde pero se continue con los demas.
Responder12. jusernt permalink
aunque ya hay algunos metodos para cargar excel a mysql, la data no siempre es la mismapara todos. Va a servir bastante tu POST, me diste otro camino y parece bueno ^^, graciaspor el aporte y por compartirlo
Sldos.
Responder13. @r@ permalink
Hola gracias por el aporte, pero cuando quiero cargar mas de 6 campos en mi bd no sepuede marca error, si hago una importacion de no mas de 5 campos lo hace bien, despuesdel 5 ya no funciona marca error!!1
Responder14. Ara permalink
hola gracias por el aporte pero me genera los siguientes errore
Warning: copy(bak_a_importar.xlsx) [function.copy]: failed to open stream: Permissiondenied in /home *Warning: Invalid argument supplied for foreach() in /home *ARCHIVO IMPORTADO CON EXITO, EN TOTAL REGISTROS Y 0 ERRORES
Warning: unlink(bak_a_importar.xlsx) [function.unlink]: No such file or directory in /home
Responder15. crashmetal permalink
Hay problemas con la subida del Archivo Excel, aca les dejo el codigo correspondiente y elque ocupo yop:
$status = “”; if ($_POST[“action”] == “upload”) { // obtenemos los datos del archivo $tamano = $_FILES[“archivo”][‘size’];
$tipo = $_FILES[“archivo”][‘type’];
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 10/14
$tipo = $_FILES[“archivo”][‘type’]; $archivo = $_FILES[“archivo”][‘name’]; $prefijo = substr(md5(uniqid(rand())),0,6);
if ($archivo != “”) { // guardamos el archivo a la carpeta files $destino = $archivo; if (copy($_FILES[‘archivo’][‘tmp_name’],$destino)) { $status = “Archivo subido: “.$archivo.”“; } else { $status = “Error al subir el archivo”; } } else { $status = “Error al subir archivo”; } }
PD: El form ejecutenlo en un HTML y el este Codigo en un PHP para que funcione comocorresponde. Saludos
Responder16. Martín Indico permalink
Hola: He logrado subir con éxito el archivo, y la base de datos la he creado como se indicaen el manual, pero al momento de que comienza el proceso de importación a la base dedatos obtengo los siguiente errores:
Selecciona el archivo a importar:
Archivo Cargado Con Éxito
Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zipobject in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php online 300
Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zipobject in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php online 303
Warning: Invalid argument supplied for foreach() in/home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php on line 373
Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zipobject in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php online 300
Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zipobject in /home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php online 303
Warning: Invalid argument supplied for foreach() in/home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php on line 410Warning: ZipArchive::close() [ziparchive.close]: Invalid or unitialized Zip object in
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 11/14
Warning: ZipArchive::close() [ziparchive.close]: Invalid or unitialized Zip object in/home/hostingp/public_html/2mysql/Classes/PHPExcel/Reader/Excel2007.php on line 1526
Fatal error: Uncaught exception ‘Exception’ with message ‘Active sheet index is out ofbounds.’ in /home/hostingp/public_html/2mysql/Classes/PHPExcel.php:365 Stack trace: #0/home/hostingp/public_html/2mysql/importar.php(39): PHPExcel‑>setActiveSheetIndex(0)#1 {main} thrown in /home/hostingp/public_html/2mysql/Classes/PHPExcel.php on line 365
¿Que es lo que he hecho mal? todo está como indica el manual pero tengo estos errores, porfacvor, necesito ayuda para solucionarlo.
Gracias por tus respuesta.
Responderprogramarenphp permalinkHola Martín, la ultima vez que utiliza esta librería me tope con el mismo error y existendos soluciones; la primera es modificar algunas lineas del php.ini (que ahorita norecuerdo) y la segunda (que yo utilice) fue la de cambiar de versión de PHP a una masnueva y con eso en automático se soluciono el problema. Gracias por tu visita, pero esteblog ya solo lo visito dos veces al mes, el que se encuentra activo es el dehttp://AprendeAprogramarEnPHPya.com/blog
ResponderKunyaro permalinktengo la ultima version del php y el problema persiste saludos
shirley permalinkHola el promeba es que tienes Word 2003 y este ejemplo funciona con el 2007
Responder17. Edwin permalink
gracias por el codigo pero me sale el siguiente error:
Fatal error: Class ‘ZipArchive’ not found inD:\AppServ\www\excelamysql\Classes\PHPExcel\Reader\Excel2007.php on line 368
esperando tu pronta respuesta
Atentamente Edwin
Responderprogramarenphp permalinkHola Edwin, la ultima vez que utiliza esta librería me tope con el mismo error y existendos soluciones; la primera es modificar algunas lineas del php.ini (que ahorita norecuerdo) y la segunda (que yo utilice) fue la de cambiar de versión de PHP a una masnueva y con eso en automático se soluciono el problema. Gracias por tu visita, pero esteblog ya solo lo visito dos veces al mes, el que se encuentra activo es el dehttp://AprendeAprogramarEnPHPya.com/blog
Responder
Nicanor permalink
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 12/14
Nicanor permalinkla version valida de php debe ser PHP 5 >= 5.2.0 normalmente la extension php_zip.dll debe de esta liberado si no es asi modifique elphp.ini sacando el “;”. y debe quedar asi
extension=php_zip.dll
Responder18. Constanza Navarro permalink
A mí tb me da error, cargo el archivo excel y aparece un error que dice Class ‘ZipArchive’not found inC:\AppServ\www\importarDatos\Classes\PHPExcel\Reader\Excel2007.php on line 368
Responder19. Luciano permalink
hola mira tengo el siguiente problema
Notice: Undefined variable: action in C:\xampp\htdocs\excelamysql\importar.php on line19 (esto me lo muestra en importar.php)
y este cuando hago click en importar
http://localhost/excelamysql/%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20Undefined%20variable:%20PHP_SELF%20in%20%3Cb%3EC:%5Cxampp%5Chtdocs%5Cexcelamysql%5Cimportar.php%3C/b%3E%20on%20line%20%3Cb%3E10%3C/b%3E%3Cbr%20/%3E
¡Objeto no encontrado!
El enlace requerido no ha sido localizado en este servidor. El enlace en la página referenteparece tener algun error o ha expirado. Por favor comunique al autor de la página el error.
Por favor contacte con el webmaster en caso de que usted crea que existe un error en elservidor. Error 404 localhost 09/10/2011 08:06:54 p.m. Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4Perl/v5.10.1
Agradeceria tu respuesta a la brevedad .. muy bueno el tutorial por cierto , un abrazo
ResponderJuan permalinkLes cuento que el error que te sale es por la variable $action, que no esta definida ya que$PHP_SELF esta obsoleta, en la parte <form name=ʺimportaʺ method=ʺpostʺ action=ʺ” enctype=”multipart/form‑data” >Cambiar esa variable por $_SERVER[‘PHP_SELF’]. Aunque sigue saliendo el Notice, laimportacion es exitosa.
ResponderEsteban permalink
Como quedaria entonces o donde se cambia??? por que lo puse asi <form
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 13/14
Como quedaria entonces o donde se cambia??? por que lo puse asi <formname=ʺimportaʺ method=ʺpostʺ action=ʺ” enctype=”multipart/form‑data” > y nisiquiera me importa nada te lo agradeceria si me respondieras
20. Lionel permalinkYo tengo elk mismos erro que ale sale ese mensaje y encima no carga en la base de datos
Responder21. David permalink
Para los que tienen el error de “Archivo Cargado Con ÉxitoError al insertar registro 1Erroral insertar registro 2Error al insertar registro 3 ARCHIVO IMPORTADO CON EXITO, ENTOTAL 3 REGISTROS Y 3 ERRORES” tienen que hacer 2 cosas: Primero habilitar php.ini la sentencia ;extension=php_zip.dll que esta con “;” , borrarlo yreiniciar apache. Segundo al crear la tabla alumnos con los campos (id, nocontrol, nombre, grado, grupo,sexo), no se olviden que id tiene que ser int, primary key, autoincrement, con eso les da full.
Responder22. Marcos Reyes permalink
me perdi aqui
foreach($_DATOS_EXCEL as $campo => $valor){
$sql = “INSERT INTO alumnos VALUES (NULL,’”;
foreach ($valor as $campo2 => $valor2){
$campo2 == “sexo” ? $sql.= $valor2.”‘);” : $sql.= $valor2.”‘,’”;
}
$result = mysql_query($sql);
if (!$result){ echo “Error al insertar registro “.$campo;$errores+=1;}
}
//////////////////
pero bueno analizare bien, una duda se puede dar formato a las celdas al momento deimportar ? ejemplo yo tengo en una celda con datoa tipo time tamp y les tengo que dar un formato asipara poder insetarlos en el mysql aaaa‑dd‑mm HH:MM:ss
Responder23. ale permalink
Hola!!!! muchas gracias por el tutorial, esta muy bueno pero sabes que me da error en laparte de insertar los archivos a la bd, gracias de antemano!!!! error:
Archivo Cargado Con ÉxitoError al insertar registro 1Error al insertar registro 2Error al
30/12/2015 Importar de excel a mysql con php | Programar En PHP
https://programarenphp.wordpress.com/2011/06/06/importardeexcelamysqlconphp/ 14/14
Archivo Cargado Con ÉxitoError al insertar registro 1Error al insertar registro 2Error alinsertar registro 3 ARCHIVO IMPORTADO CON EXITO, EN TOTAL 3 REGISTROS Y 3ERRORES
ResponderIsma permalinkes por:$i<=47
for ($i=1;$igetActiveSheet()‑>getCell(‘B’.$i)‑>getCalculatedValue(); $_DATOS_EXCEL[$i][‘nombre’] = $objPHPExcel‑>getActiveSheet()‑>getCell(‘C’.$i)‑>getCalculatedValue(); $_DATOS_EXCEL[$i][‘grado’]= $objPHPExcel‑>getActiveSheet()‑>getCell(‘D’.$i)‑>getCalculatedValue(); $_DATOS_EXCEL[$i][‘grupo’]= $objPHPExcel‑>getActiveSheet()‑>getCell(‘E’.$i)‑>getCalculatedValue(); $_DATOS_EXCEL[$i][‘sexo’] = $objPHPExcel‑>getActiveSheet()‑>getCell(‘F’.$i)‑>getCalculatedValue(); }
ese numero no es exacto… es mayor a la cantidad de filas que tienes para insertar
Responder
Crea un blog o un sitio web gratuitos con WordPress.com. | El tema Titan.