Vamos a ver como podemos leer archivos Excel programando en PHP.

Como podemos encontrar en php.net existe una función que nos permite leer archivos .csv desde PHP, esta función es fgetcsv()

Descripción

array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure [, string $escape ]]]] )

similar a  fgets() , pero fgetcsv() parsea la línea que lee en formato CSV y devuelve un array que contiene los campos leídos.

 

La función fgetcsv no nos sirve para leer nuestros ficheros en Excel. Buscando por internet he encontrado una función que sí que lo hace, aunque con pequeños retoques, ya que lo que hay en internet no funciona.

 Se trata de la función PHP-ExcelReader, que podemos encontrar en ESTE ENLACE

Pero si descomprimes los ficheros oleread.inc  y reader.php   y te creas una página php para poder utilizarlos...

te da un error de esta forma...

Warning: require_once(Spreadsheet/Excel/Reader/OLERead.php) [function.require-once]: failed to open stream: No such file or directory in C:AppServwwwPracticaphpExcelReaderExcel eader.php on line 31

¿por qué? Fácil, porque el fichero OLERead.php no está en ninguna parte del código que hemos descomprimido. En la linea 31 del fichero reader.php  hay que poner require_once ´oleread.inc´;   

Después de salvado este escollo el error es otro, incomprensiblemente , ninguno de los ficheros excel que he probado funcionan. El código me dice que los ficheros no se pueden leer. Investigando en el código podemos ver que en el fichero oleread.inc    aparece...

 

      // check if file exist and is readable (Darko Miljanovic)
     if(!is_readable($sFileName)) {
      $this->error = 1;
      return false;
     }

 

Lo cual comprueba si el fichero se puede leer, con la funcion   is_readable(), la cual siempre retorna false (???)

He comentado esta parte del código  y   voila!!!   funciona

     // check if file exist and is readable (Darko Miljanovic)
     //if(!is_readable($sFileName)) {
     // $this->error = 1;
     // return false;
     //}

 

El código para leer un archivo excel es este...

  require_once ´phpExcelReader/reader.php´;   // ojo con la ruta de acceso del fichero reader.php
  $data = new Spreadsheet_Excel_Reader();
  $data->read($ruta_archivo);
  error_reporting(E_ALL ^ E_NOTICE);

  for ($i = 1; $i <= $data->sheets[0][´numRows´]; $i++) {
   for ($j = 1; $j <= $data->sheets[0][´numCols´]; $j++) {
    echo """.$data->sheets[0][´cells´][$i][$j]."",";
   }
   echo " ";
  }

IMPORTANTE: si copiais este código, debéis cambiar las comillas que aparecen en él, sustituyendo las que véis por las comillas simples (las de la tecla de interrogación, a la derecha del cero del teclado)

Que disfrutéis!!!

Autor: Oscar Hernández Caballero

 ARTICULOS RELACIONADOS:

http://www.parentesys.es/Escribir-archivos-Excel-con-PHP-32858

)( parentesys.es )( La cultura al alcance de todos )
     mi cuenta
 Portada   Artículos   Informática   Buscador de Informática  

Leer archivos EXCEL en PHP
Fecha de publicación: 2009-07-15 03:07:27, por Oscar Hernández Caballero   (visto: 2697 veces)   (a 2 personas les ha gustado)
Fuente:


 
    


© parentesys.es - Todos los Derechos Reservados


Opiniones sobre el artículo
   pregunta publicada el (07/11/2009 03:11:37) Krathos  
   que onda! de todos los pasos ke eh visto para instalar esta cosa, tu explicacion es la mejor... pero aun me marca error - Fatal error: Allowed memory size... el cual buske y enkontre este http://www.educasitio.com/fatal-error dice ke modifique el archivo php.ini y ponga memory_limit = 32M y cuando lo pongo recargo la pagina y no pasa nada, nunca carga, se queda cargando y como a la media hora ya me dice que hay un problema en el apache... por que pasa eso? o como solucionarlo?? gracias!

   Fatal error: allowed memory size publicada el (12/11/2009 19:11:48) admin  
   Para solucionar este problema prueba con estas lineas de código al principio de tu página PHP

ini_set("memory_limit",500M);
set_time_limit(0);
Con esto le dices al Apache que reserve 500 megas de memoria y que el proceso no tenga tiempo de expiración. Saludos y espero haberte ayudado.

   Problema publicada el (12/12/2009 12:12:05) Reinier Ernesto  
   Hola, he visto que esta libreria no lee las celdas que contengan formulas. O sea las devuelve en blanco, sabes la solucion a esto. Ejemplo: La celda A1 tiene dentro =A3(no devuelve nada cuando obtengo la celda A1 y eso es lo que necesito) Gracias por tu ayuda.

   Eng publicada el (19/05/2010 05:05:04) René  
   Tengo el mismo problema a la hora de leer celdas que contienen fórmulas, y en ninguno de los foros que he visitado hay una respuesta sobre esta cuestión, es que sencillamente no tiene solución?, esto es un problema porque una de las ventajas de usar un fichero excel desde php, me parece que es la posibilidad de realizar cálculos en la hoja que luego sean mostrados en una página web. La librería es muy buena pero este es un gran escollo.


Escribe tu comentario
Tu nombre: [obligatorio]
Título: [obligatorio]
Tu sitio web: (escríbelo con http://) [opcional]
Tu email: (lo mantendremos privado) [obligatorio]
Contenido: [obligatorio]
Código de seguridad anti-spam:*  
  

 Escucha música mientras lees


 ...más Informática

La herramienta perfecta para promocionar tu tienda, restaurante, comercio, local o cualquier tipo de negocio en Internet.
syrope ha sido creado con el objetivo de incrementar tus ventas en Internet y ayudarte a promocionar tus productos fácilmente.
(por admin)

H.264 y HTML5, cuando todo comienza a tener sentido
Luego de leer una serie de artículos veo que se está perfilando algo en el universo de la web, lo primero es la intención deliberada de ciertos participantes a tener el más absoluto control sobre lo que hacemos y, por otra parte, el descubrir que de hecho ya lo tienen.
(por fabio.com.ar)

CONVERTIR CARACTERES UTF-8 EN PHP
A veces podemos sentir la imperiosa necesidad de jugar con la codificación de caracteres, cierto, pero en la mayoría de las ocasiones, y si se es programador más si cabe, nos veremos impelidos a actuar so pena de abroncamiento o melancolía.
(por Adrián Martínez Buleo)

Escribir archivos Excel con PHP
Vamos a ver como generar archivos excel desde PHP de una manera muy sencilla.
(por Oscar Hernández Caballero)

Calendario y selección de intervalo de fechas en Javascript
Módulo para implementar un calendario y una ventana de selección de intervalo de fechas en cualquier web. Hecho en javascript.
(por Oscar Hernández Caballero)

Restar dias a una fecha en mysql
La siguiente consulta selecciona todos los registros dentro de los últimos 7 días
(por admin)

¿Donde encuentro los archivos hosts, httpd.conf, php.ini en MAC?
Guía rápida para saber cómo encontrar algunos archivos fundamentales en el desarrollo de aplicaciones en entorno MAC OSX
(por Oscar Hernández Caballero)

Cuanto cuesta una web
Si te consideras un poco perdido en cuanto a pedir presupuestos para tu web, este artículo puede despejarte algunas dudas.
(por admin)

Eliminar lista de usuarios del Messenger
Habrás observado que, si tu PC ha sido utilizado por varias personas para acceder a MSN Messenger, los emails de todos ellos se quedan guardados. Si deseas que estos usuarios desaparezcan debes hacer lo siguiente.
(por admin)

Motores de almacenamiento de MySQL y tipos de tablas
MySQL soporta varios motores de almacenamiento que tratan con distintos tipos de tabla. Los motores de almacenamiento de MySQL incluyen algunos que tratan con tablas transaccionales y otros que no lo hacen.
(por admin)