Crear hojas de cálculo Excel con PHP

10 COMENTARIOS -  Publicado hace 12 meses -  Clasificado en: , , ,

Existen varias formas de exportar a Excel mediante PHP. En este post vamos a servirnos de la clase Excel Writer. La clase es muy sencilla de utilizar y nos puede permitir realizar el proceso de exportación de una tabla de nuestra base de datos sin grandes complicaciones. Primero veamos un ejemplo básico muy ilustrativo del funcionamiento de la clase.

<php
include("excelwriter.inc.php"); 
$excel=new ExcelWriter("FicheroExcel.xls");

if($excel==false) { 
   echo $excel->error;
}

// PRIMERA FORMA DE ESCRITURA DE FILAS
$myArr=array("CeldaA1","CeldaB1","CeldaC1","CeldaD1");
$excel->writeLine($myArr);

$myArr=array("CeldaA2","CeldaB2","CeldaC2","CeldaD2");
$excel->writeLine($myArr);

//SEGUNDA FORMA DE ESCRITURA DE FILAS
$excel->writeRow();
$excel->writeCol("CeldaA3");
$excel->writeCol("CeldaB3");
$excel->writeCol("CeldaC3");
$excel->writeCol("CeldaD3");

$excel->writeRow();
$excel->writeCol("CeldaA4");
$excel->writeCol("CeldaB4");
$excel->writeCol("CeldaC4");
$excel->writeCol("CeldaD4");

$excel->close();
echo "Los datos se han grabado con éxito.";
?>

Descargar ejemplo completo » »

Supongamos ahora que tenemos una tabla con una serie de comercios y deseamos poder exportarla, para uso propio o porque el cliente nos lo ha pedido, a una hoja de cálculo Excel. Un ejemplo de utilización de la clase Excel Writer para exportar datos de una tabla de una base de datos MySQL sería:

<?php
include("includes/excelwriter.inc.php");

$excel=new ExcelWriter("galeria_comercial.xls");

if($excel==false) {
echo $excel->error;
}

//Escribimos la primera fila con las cabeceras
$myArr=array("Nombre Comercial","Direccion","CP","Localidad","Telefono","Email");
$excel->writeLine($myArr);

//REALIZAMOS LA CONSULTA
$dbhost = "localhost";
$dbuser = "usuario";
$dbpassword = "password";
$dbname = "base_de_datos";

$db2 = mysql_connect($dbhost, $dbuser, $dbpassword) or die("Connection Error: " . mysql_error());
mysql_select_db($dbname) or die("Error al conectar a la base de datos.");
$sql2 = "SELECT * FROM ComerciosGaleria";
$sql2 .= " ORDER BY NombreComercial ASC ";
$result2 = mysql_query( $sql2) or die("No se puede ejecutar la consulta: ".mysql_error());

//Escribimos todos los registros de la base de datos
//en el fichero EXCEL
while($Rs2 = mysql_fetch_array($result2)) {
$myArr=array(
$Rs2['Nombre_Comercial'],
$Rs2['Direccion'],
$Rs2['CodigoPostal'],
$Rs2['Localidad'],
$Rs2['Telefono'],
$Rs2['Email']
);
$excel->writeLine($myArr);
//Otra forma es
//$excel->writeLine($Rs2);
//De este modo volcariamos todos los registros seleccionados
//Sin necesidad de colocarlos/filtrar previamente en $myArr
}
$excel->close();

//Abrimos el fichero excel que acabamos de crear
header("location:galeria_comercial.xls");
?>

Algunas entradas relacionadas:

También te puede interesar:

COMENTARIOS

Publicado hace 12 meses
Jota -  
Me vendrá de lujo, sin duda alguna, para uno de mis próximos proyectos. Gracias!
Publicado hace 11 meses
Carlos -   www.e-sqquizoide.com

Muy buenas! he provado este script y si que genera el documento .xls pero al abrirlo da un error en las cabeceras y solo se ve una celda con todo el codigo xml del constructor de la clase excelwriter... sabéis como solucionarlo? muchas gracias de antemano!
Publicado hace 10 meses
felix charry -  
No me funciono, lo hice tal cual, lo unico que cambie fueron los valores de la Base de datos, los de la consulta y el array
Publicado hace 7 meses
aldo -  
excelente, me funciono de maravilla
Publicado hace 6 meses
sergio -  
El codigo no funciona genera el archivo de excel pero cuando llamas al header con el location da error en las cabeceras
Publicado hace 6 meses
Rafael Usuga -   http://youtu.260mb.com

Muchas gracias.

este script esta super, hace medio año esta buscando este tipo de procedimiento de nuevo muchas graciaaaasss.
Publicado hace 5 meses
felipe fernandez -  
Las celdas numéricas las genera como texto. ¿Como se cambia esto?
Publicado hace 2 meses
egm -  
¿Cómo se podrían insertar imágenes....?
Publicado hace 1 mes
juankcres -  
Como le puedes dar formatos a las celdas????????
Publicado hace 1 mes
Morfino -  
Hola, he aparecido de rebote en esta web, y he probado el código del ejemplo, a mi no me genera ningún excel, solo me muestra el texto de que: Los datos se han grabado con éxito.

saludos y gracias
Haz un comentario

¡Gracias por dejar tu opinión! Por favor procura que tu comentarios sean apropiados respecto al tema tratado en la entrada; que no sean spam, u ofensivos, de otro modo, serán eliminados. Todos los comentarios serán moderados antes de su publicación por lo que su aparición en la web puede verse aplazada un cierto tiempo. Si deseas realizar algún comentario, crítica o sugerencia sobre la propia web puedes hacer a través de la siguiente dirección de correo: webintenta@webintenta.com