Leer un archivo Excel desde PHP

Ú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.

11 thoughts on “Leer un archivo Excel desde PHP

  1. 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…

  2. 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…

  3. Yo estoy bajo SO Linux Ubuntu y quisiera saber como lo puedo instalar alli…porque trate de solo usar el que puede leer y me da error de porque dice que mi archivo no puede ser leido

  4. Esto es bueno, pero tiene un inconveniente grave.
    Estoy peleandome para migrar de excel a mysql, y esta librería tiene el inconveniente que no lee la columna escondida (es decir, cuadno el texto excede el ancho de la celda, el lector no reconoce la existencia de ese texto)=>

    |mi texto esta cor|siguiente celda| otra celda mas|

    la cadena “Mi texto esta cortado” no se lee entera..
    ALguien sabe como resolver??
    Graciassssssssssssssssssssssssssssssssssssssssssssssssssssss

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>