PHP:¿Cómo puedo exportar tablas de Mysql en excel desde php?
De Foros del Web
Llamando a este script por browser:
Código PHP:
/* Mysql To Excel Generación de excel versión 1.0 Nicolás Pardo - 2007 */ #Conexion a la db require_once('__conn.php'); #Sql, acá pone tu consulta a la tabla que necesites exportar filtrando los datos que creas necesarios. $sql = " SELECT * FROM usuarios WHERE activo > -1 ORDER BY codigo DESC "; $r = mysql_query( $sql ) or trigger_error( mysql_error($conn), E_USER_ERROR ); $return = ''; if( mysql_num_rows($r)>0){ $return .= '<table border=1>'; $cols = 0; while($rs = mysql_fetch_row($r)){ $return .= '<tr>'; if($cols==0){ $cols = sizeof($rs); $cols_names = array(); for($i=0; $i<$cols; $i++){ $col_name = mysql_field_name($r,$i); $return .= '<th>'.htmlspecialchars($col_name).'</th>'; $cols_names[$i] = $col_name; } $return .= '</tr><tr>'; } for($i=0; $i<$cols; $i++){ #En esta iteración podes manejar de manera personalizada datos, por ejemplo: if($cols_names[$i] == 'fechaAlta'){ #Fromateo el registro en formato Timestamp $return .= '<td>'.htmlspecialchars(date('d/m/Y H:i:s',$rs[$i])).'</td>'; }else if($cols_names[$i] == 'activo'){ #Estado lógico del registro, en vez de 1 o 0 le muestro Si o No. $return .= '<td>'.htmlspecialchars( $rs[$i]==1? 'SI':'NO' ).'</td>'; }else{ $return .= '<td>'.htmlspecialchars($rs[$i]).'</td>'; } } $return .= '</tr>'; } $return .= '</table>'; mysql_free_result($r); } #Cambiando el content-type más las <table> se pueden exportar formatos como csv header("Content-type: application/vnd-ms-excel; charset=iso-8859-1"); header("Content-Disposition: attachment; filename=NombreDelExcel_".date('d-m-Y').".xls"); echo $return;
Totalmente adaptable con solo cambiar el query.
--nicolaspar 08 May 2007
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
