Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2012, 21:25
mogurbon
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 10 meses
Puntos: 155
APORTE- de Excell 2007 a mysql

Saludos a la banda forera

Bueno pues me tope hace poco con que me salieron con que necesitaba hacer unas cosas en php , entre ello importar un excell 2007 a una tabla de mysql , intente guardando como ods el excell y guardarlo en la base de datos con phpmyadmin, pero me pinto cremas, por que mezclaba unos campos, asi que mejor me eche un script malevolo para la insertada directamente de un xlsx a una tabla de mysql, la idea es que tanto el excell como la tabla tengan una estructura similar y tengamos phpexcell funcionando, no es el script original por que tenia la tabla y los campos fijos asi que lo generalice un poco , se los dejo , si les sirve chido , si no , también chido

Código PHP:
Ver original
  1. <?
  2. #Autor Gerardo Aquino López
  3. #su conexion a la base de datos
  4. require_once('conn.php');
  5.  
  6. #si esta choncho el excell luego se truena entonces subo el tiempo de ejecucion y el tamaño de la memoria
  7. ini_set('memory_limit','64M');
  8. #incluyo la clase phpexcel y el archivo Excel a importar
  9. require_once '../PHPExcel-1.7.7/Classes/PHPExcel/IOFactory.php';
  10. $objReader = PHPExcel_IOFactory::createReader('Excel2007');
  11. $nombre_archivo="elarchivo.xlsx";
  12. $objPHPExcel = $objReader->load($nombre_archivo);
  13. #defino tabla y campos
  14. $tabla="tabla";
  15. $campos[]="campo1";
  16. $campos[]="campo2";
  17. $campos[]="campo3";
  18.  
  19. #funcion malevola
  20. function guarda(){
  21.         global $tabla;
  22.         global $conn;
  23.         global $campos;
  24.         $num_datos=count($arg_list);
  25.         $sql="INSERT INTO `$tabla` (";
  26.         foreach($campos as $campo)
  27.                 $sql.="$campo,";
  28.         )
  29.         $sql=substr($sql,0,strlen($sql)-1);
  30.         $sql.=") VALUES (";
  31.         for ($i=0;$i<$num_datos;$i++){
  32.                 if(isset($arg_list[$i])){
  33.                         $sql.="'{$arg_list[$i]}',";
  34.                 }
  35.                 else{
  36.                         $sql.="'',";
  37.                 }
  38.         }
  39.         $sql=substr($sql,0,strlen($sql)-1).");";
  40.         mysql_query($sql,$conn);
  41.  
  42. }
  43.  
  44. #recorrido de los campos del excell para insertarlos en la base de datos
  45. $objWorksheet = $objPHPExcel->getActiveSheet();
  46. foreach ($objWorksheet->getRowIterator() as $row) {
  47.   $cellIterator = $row->getCellIterator();
  48.   $cellIterator->setIterateOnlyExistingCells(false);
  49.   unset ($arg_list)   ;
  50.   foreach ($cellIterator as $cell) {
  51.         $arg_list[]=$cell->getCalculatedValue();
  52.   }
  53.   guarda($arg_list);
  54. }
  55. unset($objPHPExcel);
  56. mysql_close($conn);
  57. ?>
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo