Sucede que he venido usando ese código para exportar un query de MySQL a excel y ha venido funcionando de maravilla.
Pero algunos de mis usuarios han actualizado a Excel 2016 y cuando les baja el archivo les aparece vacío..........Que deberé cambiar para que sea compatible a Excel 2016 ?
Todas las ideas son bienvenidas.
Saludos y Gracias.
Código PHP:
<?php
require_once('../Connections/conexion.php');
/////////////////////////////////////////////////////////////////////////////////////////////////////
mysql_select_db($database_conexion, $conexion);
#Sql, acá pone tu consulta a la tabla que necesites exportar filtrando los datos que creas necesarios.
$sql = "SELECT * FROM mi_tabla";
$r = mysql_query( $sql ) or trigger_error( mysql_error($conexion), 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] == 'MONTO' OR $cols_names[$i] == 'CANTIDAD')
{
$return .= '<td>'. number_format($rs[$i],2,".",",").'</td>'; }
elseif( ($cols_names[$i] == 'Algo') && ($rs[$i] <= 0) )
{
$return .= '<td>'. number_format(0,2,".",",") .'</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/force-download");
header("Content-Disposition: attachment; filename=Reporte.xls");
header("Pragma: no-cache");
header("Expires: 0");
echo $return;
?>