Buenas,
Estoy buscando una ayuda.
Lo que necesito es que al Exportar de la BD a Excel se adecue a la configuración que el usuario tiene en el Excel con respecto a los separadores de miles y decimales. Porque algunos utilizan como separadores de miles las "comas" y de decimales los "puntos", y otros viceversa.
El código que utilice (que figura más abajo) es que reemplace los "puntos" por las "comas". Asi las comas quedan como decimales, ya que es lo que generalmente se usa. Pero apareció un visitante diciéndome que él en su máquina tiene configurado las "comas" como separadores de miles y los "puntos" como decimales. Y lo que le generaba es que al exportar un número 10,12345678 en el Excel le figuraba 1,012,345,678
Código PHP:
<?php
header("Content-type: application/vnd.ms-excel" ) ;
header("Content-Disposition: attachment; filename=Tabla-de-datos.xls" ) ;
$servidor="xxxxxxxxx";
$user="xxxxxxxxxx";
$pass="xxxxxxxx";
$db="xxxxxxxxxxx";
$tabla="xxxxxxxx";
mysql_connect($servidor,$user,$pass) ;
mysql_select_db($db) ;
if(isset($_GET['ano1'])){
$ano1 = $_GET['ano1'];
}
if(isset($_GET['region'])){
$region = $_GET['region'];
}
$query=mysql_query("SELECT Region, DATE_FORMAT(Fecha,'%d-%m-%Y') AS Fecha, REPLACE(CAST(Erlangs_BBH AS CHAR),'.',',') Erlangs_BBH,
REPLACE(CAST(Falla_acceso_voz*100 AS CHAR),'.',',') Falla_acceso_voz,
REPLACE(CAST(Llamadas_caidas_voz*100 AS CHAR),'.',',') Llamadas_caidas_voz,
REPLACE(CAST(Mbps_DL_BBH AS CHAR),'.',',') Mbps_DL_BBH,
REPLACE(CAST(Mbps_UL_BBH AS CHAR),'.',',') Mbps_UL_BBH,
REPLACE(CAST(Fallas_acceso_datos*100 AS CHAR),'.',',') Fallas_acceso_datos,
REPLACE(CAST(Llamadas_caidas_datos*100 AS CHAR),'.',',') Llamadas_caidas_datos,
REPLACE(CAST(Erlangs_Neto AS CHAR),'.',',') Erlangs_Neto,
REPLACE(CAST(Gbytes_DL_Neto AS CHAR),'.',',') Gbytes_DL_Neto,
REPLACE(CAST(Gbytes_UL_Neto AS CHAR),'.',',') Gbytes_UL_Neto,
REPLACE(CAST(Thruput AS CHAR),'.',',') Thruput
FROM bd_informe_kpis_bbh_2g
WHERE Fecha>=('".$ano1."') AND Region='".$region."'" ) ;
$campos = mysql_num_fields($query) ;
$i=0;
echo "<table border=1><tr>";
while($i<$campos){
echo "<td align=center>". mysql_field_name ($query, $i) ;
echo "</td>";
$i++;
}
echo "</tr>";
while($row=mysql_fetch_array($query)){
echo "<tr>";
for($j=0; $j<$campos; $j++) {
echo "<td align=center>".$row[$j]."</td>";
}
echo "</tr>";
}
echo "</table><p align=center>Jefatura Métrica, Calidad y Desempeño de Redes</p>";
?>
Muchas gracias, saludos.