Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/01/2014, 08:24
facundojr07
 
Fecha de Ingreso: enero-2013
Mensajes: 64
Antigüedad: 11 años, 10 meses
Puntos: 0
Exportar MySQL a Excel por PHP

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&eacute;trica, Calidad y Desempe&ntilde;o de Redes</p>";

?>
Muchas gracias, saludos.