Últimamente me ha tocado exportar e importar archivos Excel usando PHP. En este post explicaré cómo lo hice usando XAMPP y los pasos que seguí.
1. Instalando las librerías necesarias
Para poder leer un archivo Excel vamos a necesitar dos librerías:
La librería Spreadsheet_Excel_Writer es una extensión de PHP que tendremos que instalar usando PEAR. Abriremos una consola y escribiremos:
pear install Spreadsheet_Excel_Writer
Para instalar la librería Spreadsheet_Excel_Reader iremos a su página principal, descargaremos el paquete y lo descomprimiremos.
Dentro del archivo veremos una carpeta llamada Excel y dentro de ella dos archivos: oleread.inc y reader.php. Copiaremos el archivo reader.php y lo pegaremos en la carpeta “directorio_de_php/pear/Spreadsheet/Excel/”. Luego copiaremos el archivo oleread.inc y lo pegaremos en la carpeta “directorio_de_php/pear/Spreadsheet/Excel/Reader”. Una vez hecho esto, cambiaremos el nombre del archivo oleread.inc a oleread.php.
2. Cargando el archivo Excel en nuestro PHP
//Cargamos la librería require_once 'Spreadsheet/Excel/reader.php'; //Creamos el objeto y cargamos el fichero Excel $data = new Spreadsheet_Excel_Reader(); $data->read(ruta_del_archivo_excel);
3. Códigos de ejemplo
A continuación os muestro algunos ejemplos de las funciones más sencillas que podemos usar para obtener datos del archivo Excel.
//Obtenemos un libro del Excel $sheet = $data->sheets[numero_de_libro]; //Obtenemos las celdas $cells = $data->sheets[0]['cells']; //Obtenemos una fila determinada $row = $data->sheets[0]['cells'][numero_de_fila]; //Obtenemos una celda concreta $data->sheets[0]['cells'][fila][columna]; //Obtenemos el número de filas y columnas del Excel $nrows = $data->sheets[0]['numRows']; $ncols = $data->sheets[0]['numCols'];
4. Conclusión
Personalmente, si quieres tratar los datos de un Excel frente a una base de datos, mi recomendación es que importes los datos del Excel a una tabla intermedia en una BD y posteriormente aproveches la potencia de SQL para hacer operaciones con esos datos.
Estoy de acuerdo con tu conclusión, veo que manejas del tema.
Hola, gracias por tu post, estoy utilizando la libreria para crear archivos excel desde PHP, sabes donde puedo encontrar la documentacion oficil de la libreria Spreadsheet_Excel_Reader.
Gracias…
Hace ya tiempo que trabajé con esta librería y recuerdo que la documentación era mas bien escasa.
De todas formas he encontrado algo aquí: http://code.google.com/p/php-excel-reader/wiki/Documentation
Espero que te valga.
Estimados :
Tengo el siguiente error :
Fatal error: Maximum execution time of 30 seconds exceeded in /usr/share/php/Spreadsheet/Excel/Reader/OLERead.php on line 172
He buscado info en la web y verdad que hay re poco agradecería su ayuda…
Es probable que te pase porque el excel que estad intentando parsear sea demasiado grande y salte el tempo máximo de ejecución de los scripts PHP.
Para intentar solucionar esto puedes probar con un excel mas pequeño o cambiar el tiempo máximo de ejecución de PHP en tu archivo php.ini por un valor superior y reiniciar tu servidor apache para que los cambios tengan efecto.
Estimado : el archivo que viene de ejemplo en http://sourceforge.net/projects/phpexcelreader/files/latest/download al parecer tiene un error.. use el que esta en http://code.google.com/p/php-excel-reader/wiki/Documentation y me funciono de inmediato…..
Ok, muchas gracias por el aviso, quizás le pueda venir bien a otros usuarios.
de esto habra algun video que no se como istalar Pear en xampp estoy utilizando sistema MAC Os
Si tienes ya instalado XAMPP con PHP entonces PEAR debería estar dentro de la carpeta de xampp/php/pear ya que suele venir con el instalado, compruébalo primero.
Quizás este link te pueda venir bien, aunque sea para Windows, hay cosas comunes: http://stackoverflow.com/questions/62658/getting-pear-to-work-on-xampp-apache-mysql-stack-on-windows