excel_en_php_portada

He sacado unos minutos para dejaros este breve manual sobre cómo leer y grabar un fichero de Excel en PHP. Hemos recibido el encargo de un proyecto que utiliza una hoja de Excel como fuente de datos y, aunque ya he trabajado otras veces con ficheros .csv e incluso generado ficheros .xls utilizando PHP, nunca había necesitado leer un fichero de Excel. Os explico cómo lo he hecho.

Leer archivos. xls de Excel

Para leer el archivo de Excel he utilizado la librería phpExcelReader, bajo licencia GNU. Para ello descargamos los archivos y guardamos la carpeta “Excel” en el directorio de nuestro proyecto. En la versión que yo he descargado he tenido que hacer una pequeña “chapuza” porque dentro del archivo reader.php había un require con una ruta equivocada. La versión que he subido a Github ya está corregida y funcionando correctamente.

Veamos un pequeño ejemplo de su uso. Leemos el fichero y mostramos en forma de tabla los datos que hemos obtenido.

 

A tener en cuenta

La variable $i controla las filas y la variable $j las columnas. Como generalmente los títulos de las columnas aparecen en la primera fila, si queremos obviarla tendremos que comenzar el for con $i=2 en lugar de con $i=1. De todas maneras, todo esto dependerá mucho del fichero Excel del que partamos.

En el ejemplo, para hacer referencia a un valor en concreto, por ejemplo, el almacenado en la celda B3, tendremos que utilizar

También cabe destacar que el objeto dispone de los campos numRowsnumCols para almacenar el número total de filas y columnas respectivamente.

Si el archivo Excel cuenta con más de una hoja de cálculo, podemos acceder a cada una de ellas variando el índice de sheets:

 

Grabar ficheros Excel en PHP

Esta es la parte fácil. Para grabar un fichero de Excel solo necesitamos mostrar los datos en una tabla y cambiar la cabecera del archivo. Como en el ejemplo anterior ya utilicé la etiqueta table para hacer echo de los datos, solo nos quedaría cambiar las cabeceras justo antes.

excelenphp

 

Descargas

He subido los archivos del ejemplo a Github:

https://github.com/davidmerinas/excelenphp

Suscríbete
Lista de correo

A través de mi lista de correo te mantendré informado/a de las novedades del blog, noticias y promociones exclusivas. 100% libre de SPAM.

¡OJO! Si no has recibido el mensaje de confirmación en unos minutos, es muy probable que haya sido etiquetado como SPAM. Por favor, revisa la carpeta de correo no deseado para rescatarlo ¡Gracias!