Cómo generar un fichero Excel con PHP

Email this to someoneShare on FacebookShare on Google+Share on LinkedInTweet about this on Twitter

En el siguiente artículo vamos a ver una guía de cómo generar un fichero en formato Excel utilizando PHP. Esto puede ser muy útil para generar u ofrecer la posibilidad a nuestros usuarios de descargar un fichero .xls que contenga: reportes de estadísticas, rendimiento, facturación, etc. de nuestra base de datos.

Para comenzar necesitamos una clase llamada MS-Excel Stream Handler que es la que contiene las funciones necesarias para crear archivos Excel. En unijimpe.net basados en la documentación de la clase anterior, han creado el fichero excel-ext.php que contiene una función que facilitará el proceso.

Lo primero será utilizar la función createExcel la cual recibe dos parámetros, el primero el nombre del archivo que deseas crear y el segundo un array asociativo con los datos a mostrar en el archivo generado:

createExcel(“excelname.xls”, array);

El segundo paso es incluir el archivo excel.php y excel-ext.php en nuestro script php:

require_once(“excel.php”);
require_once(“excel-ext.php”);
El tercer paso es crear un array asociativo que contiene los datos a mostrar, para nuestro ejemplo creamos un array que contiene una lista de nombre y su IQ.
$assoc = array(
array(“Nombre”=>”Mattias”, “IQ”=>250),
array(“Nombre”=>”Tony”, “IQ”=>100),
array(“Nombre”=>”Peter”, “IQ”=>100),
array(“Nombre”=>”Edvard”, “IQ”=>100)
);
Por último, se crear el archivo Excel, para ello utilizamos la función createExcel, uniendo todo tendríamos:
require_once(“excel.php”);
require_once(“excel-ext.php”);
$assoc = array(
array(“Nombre”=>”Mattias”, “IQ”=>250),
array(“Nombre”=>”Tony”, “IQ”=>100),
array(“Nombre”=>”Peter”, “IQ”=>100),
array(“Nombre”=>”Edvard”, “IQ”=>100)
);
createExcel(“excel-array.xls”, $assoc);
exit;
Esto generará un archivo excel con dos columnas llamadas Nombre y IQ con los datos creados en el array.

Crear Excel desde una Base de Datos

Con el siguiente ejemplo se obtienen datos desde una base de datos MySQL y generará un archivo Excel como reporte. Para ello primero creamos una conexión a nuestra base de datos y consultamos la tabla empresa y luego colocamos los resultados en una matriz asociativa llamada $data.

require_once(“excel.php”);
require_once(“excel-ext.php”);
// Consultamos los datos desde MySQL
$conEmp = mysql_connect(“localhost”, “userDB”, “passDB”);
mysql_select_db(“sampleDB”, $conEmp);
$queEmp = “SELECT nombre, direccion, telefono FROM empresa”;
$resEmp = mysql_query($queEmp, $conEmp) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
// Creamos el array con los datos
while($datatmp = mysql_fetch_assoc($resEmp)) {
$data[] = $datatmp;
}
// Generamos el Excel
createExcel(“excel-mysql.xls”, $data);
exit;

Sé la primera persona en comentar

Deja un comentario

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

De conformidad con lo establecido en la LOPD, Adpv Advertising Provider S.L. garantiza la adopción de las medidas necesarias para asegurar el tratamiento confidencial de los datos de carácter personal. Así mismo le informamos de la inclusión de sus datos en un fichero con la finalidad de mantener su relación negocial o contractual con Adpv Advertising Provider S.L. y de la posibilidad de ejercer los derechos de acceso, rectificación, cancelación y oposición en la siguiente dirección: Ercilla, 26, 1Dcha., 48011, Bilbao, Bizkaia. Privacidad.