Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/03/2012, 15:06
vistoko
 
Fecha de Ingreso: septiembre-2009
Ubicación: Limache
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Problema con libreria PHPExcel

Estimados

Estoy trabajando con la libreria PHPExcel para cargar una planilla excel a una base de datos mysql a través de PHP, pero cuando la ejecuto y cargo la planilla para que la suba a la base de datos me lanza el siguiente error

"Fatal error: Class 'PHPExcel_Reader_Excel2007' not found in C:\wamp\www\proyecto\cargar.php on line 47"

Siendo que la libreria que pide la tengo cargada en mi código. Ojala me puedan ayudar con este problema.

Saludos

Código PHP:
Ver original
  1. <?php
  2. $ciudad = $_POST['nombre_cdd'];
  3. ?>
  4.  
  5. <html><head>
  6.     <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
  7.     <title>:: Importar de Excel a la Base de Datos ::</title>
  8. </head>
  9. <div>
  10.     <strong><center>Ciudad seleccionada <?php echo "$ciudad[0]"; ?></center></strong><br>
  11.  
  12.     Antes de actualizar primero debe descargar la planilla estandar desde
  13.     <a href="descarga/ruta_senales.xlsx">AQU&Iacute;</a>
  14.  
  15. </div>
  16. <body>
  17.     <!-– FORMULARIO PARA SOICITAR LA CARGA DEL EXCEL -–>
  18.     <p><br>
  19.         Selecciona el archivo a importar:
  20.         <form name="importa" method="post" action="<?php $PHP_SELF ?>" enctype="multipart/form-data" >
  21.             <input type="file" name="excel" />
  22.             <input type="submit" name="enviar"  value="Importar"  />
  23.             <input type="hidden" value="upload" name="action" />
  24.         </form>
  25.  
  26.     <!–- CARGA LA MISMA PAGINA MANDANDO LA VARIABLE upload -–>
  27.  
  28.     <?php
  29.         extract($_POST);
  30.         if ($action == "upload"){
  31.             //cargamos el archivo al servidor con el mismo nombre
  32.             //solo le agregue el sufijo temp_
  33.             $archivo = $_FILES['excel']['name'];
  34.             $tipo = $_FILES['excel']['type'];
  35.             $destino = "temp_".$archivo;
  36.             if (copy($_FILES['excel']['tmp_name'],$destino)){
  37.                 echo "Archivo Cargado Con &Eacute;xito";
  38.             }else{
  39.                 echo "Error Al Cargar el Archivo";
  40.             }
  41.         ////////////////////////////////////////////////////////
  42.         if (file_exists ($destino)){
  43.             /** Clases necesarias */
  44.             require_once("Classes/PHPExcel.php");
  45.             require_once("Classes/PHPExcel/Reader/Excel2007.php");
  46.             // Cargando la hoja de cálculo
  47.             $objReader = new PHPExcel_Reader_Excel2007();
  48.             $objPHPExcel = $objReader->load($destino);
  49.             $objFecha = new PHPExcel_Shared_Date();
  50.             // Asignar hoja de excel activa
  51.             $objPHPExcel->setActiveSheetIndex(0);
  52.             //contamos la cantidad de celdas con datos
  53.             $Contar = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
  54.             //se almacena el nombre de la ciudad seleccionada para posterior insercion en la tabla canal
  55.             $city = "SELECT id_ciudad FROM ciudad WHERE nombre_ciudad = '$ciudad[0]'";
  56.             //conectamos con la base de datos
  57.             $cn = mysql_connect ('localhost','root','') or die ("ERROR EN LA CONEXION");
  58.             $db = mysql_select_db ('ruta_senales2',$cn) or die ("ERROR AL CONECTAR A LA BD");
  59.            
  60.             //varaible del id_canal para comparacion
  61.             $comparar = "Select nombre_canal, ciudad_id_ciudad FROM ciudad ORDER BY id_ciudad ASC";
  62.             $result = mysql_query ($query);
  63.                        
  64.             // Llenamos el arreglo con los datos  del archivo xlsx
  65.             for ($i=4;$i=$Contar;$i++){
  66.                 $_DATOS_EXCEL[$i]['Numero'] = $objPHPExcel->getActiveSheet()->getCell('B'.$i)->getCalculatedValue();
  67.                 $_DATOS_EXCEL[$i]['Nombre'] = $objPHPExcel->getActiveSheet()->getCell('C'.$i)->getCalculatedValue();
  68.                 :
  69.                                 :
  70.                 $_DATOS_EXCEL[$i]['Frecuencia'] = $objPHPExcel->getActiveSheet()->getCell('BF'.$i)->getCalculatedValue();
  71.                 $_DATOS_EXCEL[$i]['Mpeg Salida'] = $objPHPExcel->getActiveSheet()->getCell('BG'.$i)->getCalculatedValue();
  72.             }
  73.         }
  74.         //si por algo no cargo el archivo temp_
  75.         else{
  76.             echo "Necesitas primero importar el archivo";
  77.         }
  78.    
  79.         $errores=0;
  80.         //recorremos el arreglo multidimensional
  81.         //para ir recuperando los datos obtenidos
  82.         //del excel e ir insertandolos en la BD
  83.    
  84.         foreach($_DATOS_EXCEL as $campo){
  85.            
  86.         while ($nt = mysql_fetch_array($result))
  87.             if( ($nt['nombre_canal'] && $nt['ciudad_id_ciudad']) == ($campo["Nombre"] && $campo["Numero"]) ){
  88.                 $sql = "UPDATE canal SET (".$campo["Numero"].",'".$campo["Nombre"]."','".$campo["Tipo Recepcion"]."','".$campo["Modelo Receptor"]."','".$campo["Ubicacion Rack"]."','".$campo["Parametro Satelital"]."',".$campo["UA Receptor"].",'".$campo["Posicion patch"]."','".$campo["Ubicacion fibra"]."','".$campo["Ubicacion Rack"]."','".$campo["Salida Señal"]."');";
  89.             }else{
  90.                 //insercion en tabla canal
  91.                 $sql = "INSERT INTO canal VALUES (NULL,".$city.",NULL,".$campo["Numero"].",'".$campo["Nombre"]."','".$campo["Tipo Recepcion"]."','".$campo["Modelo Receptor"]."','".$campo["Ubicacion Rack"]."','".$campo["Parametro Satelital"]."',".$campo["UA Receptor"].",'".$campo["Posicion patch"]."','".$campo["Ubicacion fibra"]."','".$campo["Ubicacion Rack"]."','".$campo["Salida Señal"]."');";
  92.                 $result = mysql_query($sql);
  93.                 echo "<BR>** $sql";
  94.             }
  95.                            
  96.             //variable para almacenar el ultimo registro ID insertado
  97.             $fk_canal = "SELECT LAST_INSERT_ID();";
  98.            
  99.             //insercion en tabla encoder
  100.             $sql2 = "INSERT INTO encoder VALUES (NULL,".$fk_canal.",'".$campo["Modelo"]."','".$campo["Ubicacion Rack"]."','".$campo["Entrada"]."','".$campo["Salida"]."',".$campo["Mpeg Out"].");";
  101.             $result = mysql_query($sql2);
  102.             echo "<BR>** $sql2";
  103.            
  104.             //insercion en tabla splitter
  105.             $sql3 = "INSERT INTO splitter VALUES (NULL,".$fk_canal.",'".$campo["Numero"].",'".$campo["Slot"]."','".$campo["Puerto IN"]."','".$campo["Ubicacion Rack"]."');";
  106.             $result = mysql_query($sql3);
  107.             echo "<BR>** $sql3";
  108.            
  109.             //insercion en tabla tmx
  110.             $sql4 = "INSERT INTO tmx VALUES (NULL,".$fk_canal.",'".$campo["Numero"].",".$campo["Nro splitter"].",'".$campo["Slot splitter"]."','".$campo["Puerto splitter"]."',".$campo["RIM"].",".$campo["ASI IN"].",".$campo["Mpeg in"].",".$campo["ROM"].",".$campo["ASI Out"].",".$campo["Mpeg Out"].",'".$campo["Ubicacion Rack"]."');";
  111.             $result = mysql_query($sql4);
  112.             echo "<BR>** $sql4";
  113.            
  114.             //insercion en tabla agb
  115.             $sql5 = "INSERT INTO agb VALUES (NULL,".$fk_canal.",'".$campo["Ubicacion rack"]."',".$campo["Numero AGB"]."',".$campo["Nro splitter"].",'".$campo["Slot splitter"]."','".$campo["Puerto splitter"]."',".$campo["ASI Port"].",'".$campo["Multicast primario"]."',".$campo["UDP Primario"].",'".$campo["Source Primario"]."','".$campo["Multicast Backup"]."',".$campo["UDP Backup"].",'".$campo["Source Backup"]."');";
  116.             $result = mysql_query($sql5);
  117.             echo "<BR>** $sql5";
  118.            
  119.             //insercion en tabla cap
  120.             $sql6 = "INSERT INTO cap VALUES (NULL,".$fk_canal.",'".$campo["Ubicacion rack"]."','".$campo["Numero CAP"]."','".$campo["TS"]."',".$campo["PID PMT"].",".$campo["PID Video"].",".$campo["PID Audio 1"].",".$campo["PID Audio 2"].",".$campo["PID Subtitulado(spa)"].",".$campo["PID Subtitulado(por)"].");";
  121.             $result = mysql_query($sql6);
  122.             echo "<BR>** $sql6";
  123.            
  124.             //insercion en tabla sem_apex
  125.             $sql7 = "INSERT INTO sem_apex VALUES (NULL,".$fk_canal.",'".$campo["Ubicacion rack"]."','".$campo["IP admin"]."','".$campo["IP giga"]."','".$campo["QAM"]."',".$campo["Nro Canal"].",'".$campo["Frecuencia"]."',".$campo["Mpeg Salida"].");";
  126.             $result = mysql_query($sql7);
  127.             echo "<BR>** $sql7";
  128.            
  129.             if (!$result){
  130.                 echo mysql_error($cn)."- Error al insertar registro ";
  131.                 $errores++;
  132.             }
  133.            
  134.             //se limpa la variable $fk_canal para el nuevo registro
  135.             unset($fk_canal);
  136.         }  
  137.            
  138.         /////////////////////////////////////////////////////////////////////////
  139.         echo "<strong><center>ARCHIVO IMPORTADO CON EXITO, EN TOTAL " .$campo. " REGISTROS Y " .$errores. " ERRORES</center></strong>";
  140.         //una vez terminado el proceso borramos el
  141.         //archivo que esta en el servidor el temp_
  142.         unlink($destino);
  143.     }
  144.     ?>
  145. </body></html>