Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/10/2012, 11:08
Avatar de portalmana
portalmana
 
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 4 meses
Puntos: 80
Respuesta: consulta a fichero excel

Te dejo un ejemplo que quizas te pueda ayudar.
Usa la libreria PHPExcel de Codeplex que la puedes descargar del sitio.
La idea es que sea un excel con la primera fila tipo Encabezados.

usuario clave
UNO 11111
DOS 2222
TRES 3333
CUATRO 4444

Y que empiece en la Columna A Fila 1.
Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5.         <title>EJEMPLO PHPEXCEL LEER ARCHIVO</title>
  6.     </head>
  7.     <body>
  8. <?php
  9. // Lanza todos los errores
  10. error_reporting(E_ALL  | E_STRICT);
  11. // Tiempo ilimitado para el script
  12.  
  13. // Direccion con nombre de Archivo.
  14. $file   = './claves.xlsx';
  15. $extencion  = substr(strrchr($file, '.'), 1);
  16.  
  17. // Tipos de Archivos capaces de Manejar con PHPExcel anteriores a 2007 y posteriores.
  18. $tipoExcel  = array('xlsx'  => 'Excel2007',
  19.                     'xls'   => 'Excel5');
  20. // Incluyo las librerias que voy a utilizar
  21. require_once 'PHPExcel/Classes/PHPExcel.php';
  22. require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php';
  23. // Creo un objeto de Lectura con el tipo de Archivo Correcto Excel20007(xlsx)
  24. // Excel5(xls)
  25. $objReader      = PHPExcel_IOFactory::createReader($tipoExcel[$extencion]);
  26. // Configuro que sera solo para leer el archivo
  27. $objReader  ->setReadDataOnly(true);
  28. // Cargo el Archivo
  29. $objPHPExcel    = $objReader->load($file);
  30. $objWorksheet   = $objPHPExcel->getActiveSheet();
  31. $nroColumnas    = PHPExcel_Cell::columnIndexFromString($objWorksheet->getHighestColumn());
  32. $nroFilas       = $objWorksheet->getHighestRow();
  33. echo "Su Excel Contiene:<br> $nroColumnas columnas y <br> $nroFilas filas<br>";
  34.  
  35. // Extraigo los Titulos
  36. $titulos = array();
  37. for ($i=0; $i<= $nroColumnas-1; $i++) {
  38.     $titulos[$i] = $objWorksheet->getCellByColumnAndRow($i, 1)->getCalculatedValue();
  39. }
  40. echo 'Sus Titulos: ' . implode(', ', $titulos);
  41.  
  42. $datos      = array();
  43. $campoId    = 'usuario'; // Este deberia ser uno de los campos como  titulo columnas
  44. for ($fila = 2; $fila <= $nroFilas; $fila++) {
  45.     $dFilas = array();
  46.     for ($columna = 0; $columna <= $nroColumnas-1; $columna++) {
  47.         $dFilas[$titulos[$columna]] = $objWorksheet->getCellByColumnAndRow($columna, $fila)->getCalculatedValue();
  48.     }
  49.    
  50.     $datos[$dFilas[$campoId]]   = $dFilas;
  51. }
  52.  
  53. echo '<pre>';
  54. var_dump($datos);
  55. echo '</pre>';
  56.  
  57. // Usuario a Buscar
  58. $usuario = 'UNO';
  59.  
  60. if (isset($datos[$usuario])) {
  61.     echo 'Usuario: <pre>';
  62.     echo var_dump($datos[$usuario]);
  63.     echo '<pre>';
  64. }
  65. ?>
  66.     </body>
  67. </html>

Espero te pueda ayudar.

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp