{ parentesys.es :: }
Mi perfil


Fecha de publicación: 15/07/2009 03:07:27

Importar EXCEL en PHP


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





Tags: 

Si esta información te ha sido útil, compártela:


Opiniones sobre el artículo

parentesys.es se reserva el derecho de suprimir, por cualquier razón y sin previo aviso, cualquier contenido generado en los espacios de participación en caso de que los mensajes incluyan insultos, mensajes racistas, sexistas... Tampoco se permitirán los ataques personales ni los comentarios que insistan en boicotear la labor informativa de la revista, ni todos aquellos mensajes no relacionados con la noticia que se esté comentando. De no respetarse estas mínimas normas de participación este medio se verá obligado a prescindir de este foro, lamentándolo sinceramente por todos cuantos intervienen y hace en todo momento un uso absolutamente cívico y respetuoso de la libertad de expresión.


pregunta


publicada el (06/11/2009 19:11:37) por 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 11:11:48) por 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 04:12:05) por 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 (18/05/2010 22:05:04) por 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.

Blog de peces


publicada el (22/10/2010 21:10:43) por Jesus | Blog de peces
Gracias.

Excelente


publicada el (24/10/2010 05:10:09) por Henry Vallenilla
Brother, excelente aporte, me sirvio de gran ayuda.

Buen Aporte


publicada el (13/02/2011 04:02:26) por Jimmy Toledano
Gracias por el aporte, lo voy a probrar

Yo tengo un problema con los acentos


publicada el (23/03/2011 03:03:39) por V?ctor

A mi me funcionaba correctamente pero en algunas celdas misteriosamente donde hay una tilde se corta y pasa a la celda siguiente.

Los mas extraño es que NO LO HACE CON TOTAS LAS TILDES.. solo con algunas.

En fin ojala encontremos algúna solución.

Un saludo.


Ayuda


publicada el (17/11/2011 19:11:53) por POPEYE
como hago para que en vez de abrir el archivo que indique en la ruta, me abra el que seleccione a traves de un formulario al dar click en el boton leer archivo.

gracias por el dato


publicada el (15/12/2011 00:12:40) por bien
pense que era por el lado de PEAR pero era solo ajustar la linea que indicas. gracias!!

Agradecimiento


publicada el (14/07/2012 20:07:56) por rollanime
Excelente explicación había buscado la forma de hacerlo pero no encontraba. Aunque me tomo la primera parte la del CSV ya que me es más simple de esa forma para luego utilizarla en un Ciclo for(según lo que necesito) Muchas gracias nuevamente. Saludos

Problema con PHPExcel


publicada el (01/09/2014 09:09:25) por Ruben
Buenas, tengo un problema con PHPExcel, tengo un siot web que esta en linea en intranet, ingreso al mismo desde otra PC de la red y quiero recorrer los datos del archivo excel y almacenarlos pero me sale errores diferentes al seleccionar un archivo de xls o xlsx.. Por favor ayuda.....


Para escribir comentarios debes estar registrado:


Area Privada: 

Email


Contraseña

Si no tienes cuenta de usuario, regístrate aquí
+ Informática
Code injection Warning  This post is a warning against a code injection launched on January 2, 2014...

Una cosa es decir que haces SEO y otra cosa es demostrarlo.  Mucha gente dice que hace SEO, que son expertos en optimización en buscadores, que pueden poner tu página web en primeras posiciones de Google, pero nadie lo demuestra. Nosotros lo...

Errores que cometen los hostales en Facebook  Algunos de los errores típicos que los dueños de hoteles, hostales y casas rurales comenten en Facebook, y cómo evitarlos....

SEO y posicionamiento web  ¿A quién no le suenan estas expresiones tan técnicas, de tantas veces que las hemos oído, y que nadie sabe muy bien de qué se tratan? Aquí vamos a ver cómo muchos aprovechan la con...

Google Places se cierra, la compañía hace de Google+ el centro de gravedad para búsquedas de negocios locales.  Cuando Google+ y Google+ Páginas para negocios fueron presentadas hace poco menos de un año, mucha gente en el entorno de las búsquedas locales anticipó el día en que Google fusi...

¿Tienes un Hostal y deseas aumentar tus ingresos?  40 millones de personas al año, vienen a España y se alojan en Hostales, Hoteles, y Casas rurales. La mayoría no saben español, y no van a perder su tiempo enviándote emails para ...