Código PHP:
/*
Mysql To Excel
Generación de excel versión 1.0
Nicolás Pardo - 2007
*/
#Conexion a la db
require_once('../cone.php');
$link=conectarse();
$tabla=$_POST["tabla"];
#Sql, acá pone tu consulta a la tabla que necesites exportar filtrando los datos que creas necesarios.
$sql = "SELECT * FROM $tabla";
$r = mysql_query($sql) or trigger_error( mysql_error($link), 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=$tabla_".date('d-m-Y').".xls");
echo $return;
ahora bien yo quisiera poder escoger en que formato quiero bajarlo, que podria variar en .sql, .csv, .xls que son los mas usados
si alguien sabe como hacerlo les agradezco la respuesta