Exportar A Excel Con PHP y Mysql
Exportar A Excel Con PHP y Mysql
Exportar A Excel Con PHP y Mysql
Muchas veces nos hemos encontrado con la necesidad de exportar informacin de una
tabla en nuestra base de datos a una hoja de Excel para generar informes o hacer
clculos extra, a continuacin veremos cmo podemos exportar la consulta de una
base de datos a un archivo Excel.
Que necesitamos?
ID
Ventas_dia
Fecha
Sera el identificador
del registro, nuestra
llave primaria y se
autoincrementara.
Formato INT
Supongamos que de
otro script se est
guardando esta
informacin , con
cada una de las
ventas del da, el
formato es DOUBLE
para poder guardar
decimales
Supongamos que
dicho script esta
guardando la fecha a
la que pertenece el
registro de ventas. El
formato es DATE
Una vez tenemos la tabla creada vamos a insertar algunos valores para poder probar
nuestro script.
INSERT INTO `ventas` (`id`, `Ventas_dia`, `fecha`) VALUES (NULL, 234500, 2011-0409), (NULL, 530890, 2011-04-09);
Ahora que ya tenemos datos en nuestra tabla para poder probar nuestro script, vamos
a crear 2 archivos PHP:
Fecha.php
Reporte.php
Fecha.php
Creamos un formulario para enviar la informacin a reporte.php
<form action=reporte.php method=post>
<label>Escoja la fecha</label><br /><br />
<select name=date>
<?php
//hacemos una conexin a nuestro servidor MySQL para poder recuperar las fechas
disponibles, cambie los datos de la conexin de acuerdo a los que se acomoden a su
servidor.
$conexio = mysql_connect(localhost,usuariotest,123456);
//realizamos la consulta
// Noten que estoy escribiendo select distinct que lo que hace es buscar un valor en la
base de datos pero no trae los que se repiten en el caso de la fecha sabes que se repite
porque hay varios registros en la tabla, pero no queremos traer cada uno de los
registros con esa fecha, solo me interesa traer la fecha 1 vez ya que ser nuestro
criterio de bsqueda.
$sql = mysql_query(select distinct fecha from tutoriales.ventas order by fecha DESC,
$conexio);
//una vez tenemos loa resultados vamos a colocarlos en un array y vamos a hacer un
loop para imprimir cada resultado en la opcin
while($row = mysql_fetch_array($sql)){
echo <option>$row[fecha]</option>;
}
?>
</select>
<input name=" type=submit value=Enviar />
</form>
Reporte.php
<?php
//insertamos los headers que van a generar el archivo excel
header(Content-type: application/vnd.ms-excel);
//en filename vamos a colocar el nombre con el que el archivo xls sera generado
header(Content-Disposition: attachment; filename=ventas.xls);
header(Pragma: no-cache);
header(Expires: 0);
//recogemos la variable de fecha con la que limitaremos la cinsulta.
$fecha = $_POST['date'];
//hacemos la conexion al servidor MySql
$conexio = mysql_connect(localhost,usuariotest,123456);
//realizamos la consulta
$sql = mysql_query(select * from tutoriales.ventas where fecha = $fecha,$conexio);
?>
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml>
<head>
<meta http-equiv=Content-Type content=text/html; charset=utf-8 />
<title>Reporte de ventas</title>
</head>
<body><!Vamos a crear una tabla que ser impresa en el archivo excel >
<table width=600 border=0>
<tr>
<th width=600>
<!Imprimimos un titulo >
<div style=color:#003; text-align:center; text-shadow:#666;><font
size=+2>Reporte de Ventas <br /><?php echo $fecha ?></font></div></th>
</tr>
</table>
<!creamos la tabla de el reporte con border 1 y los ttulos>
<table width=641 border=1>
<tr>
<th width=50% style=background-color:#006; text-align:center;
color:#FFF><strong>Ventas</strong></th>
<th width=50% style=background-color:#006; text-align:center;
color:#FFF><strong>Fecha</strong></th>
</tr>
<?php
// Un proceso repetitivo para imprimir cada uno de los registros.
while($row = mysql_fetch_array($sql)){
echo
<tr>
Ahora que ya tenemos los scripts que necesitamos corremos los archivos en nuestro
servidor web y obtenemos el archivo excel