Bueno yo modifique un ejemplo k encontre por alli,y me salio bien, haber para k se entienda donde dice cabezera sera que ira en el primer renglon del excel, si quires no los pones, pero sale muy bien, claro esta sin formatear osea las celdas sin colores ni nada por el estilo...;)
ah tambien me faltaba decir que esto lo puse en un enlace porque a parte k se mostraba la consulta deberia tener la opcion de descargarlo en excel..puse un link dando los parametros de la consulta para k se generara...haber si le interesa a alguien. Código PHP: <?php
require('../funciones/func_inicio.php');
$conexion = mysql_pconnect(bd_cadena,bd_usuario,bd_password);
if (!$conexion)
{
echo "Error: No se pudo establecer conexión con la base de datos";
exit;
}
$bd=mysql_select_db(bd_nombre,$conexion);
if ($cod_pais=="02"){
$cabezera=array("Código","DNI-CI","ZP","ZP'","ZR","ZR'","UN","UN'","EE","EE'","GV","GV'","EM","EM'","HM","HM'","HO","HO'","OJ","OJ'","CF","CF'","NBI","NBI'","NOTA");
foreach($cabezera as $valor){
$header.=$valor."\t";
}
}
if ($cod_pais=="05"){
$cabezera=array("Código","DNI-CI","ZP","ZP'","ZR","ZR'","UN","UN'","EE","EE'","GV","GV'","EM","EM'","HM","HM'","HO","HO'","OJ","OJ'","CF","CF'","OA","OA'","NOTA" );
foreach($cabezera as $valor){
$header.=$valor."\t";
}
}
//calculo y media para la varianza de Perú
$sql_MedStd_pe="select avg(zona_res), avg(zona_proc), avg(univer), avg(educ_escol), avg(grup_vuln), avg(educ_madre), ";
$sql_MedStd_pe.="avg(hnos_menor), avg(hogar_orig), avg(ocupac_jefe), avg(compos_famil), avg(nbi_hogar), ";
$sql_MedStd_pe.="stddev(zona_res), stddev(zona_proc), stddev(univer), stddev(educ_escol), stddev(grup_vuln), stddev(educ_madre), ";
$sql_MedStd_pe.="stddev(hnos_menor), stddev(hogar_orig), stddev(ocupac_jefe), stddev(compos_famil), stddev(nbi_hogar) ";
$sql_MedStd_pe.="from promedio_notas where cod_pais='02'";
$result=mysql_query($sql_MedStd_pe,$conexion);
while ($fila=mysql_fetch_array($result,MYSQL_NUM))
{
$avg_zona_res_pe=$fila[0];
$avg_zona_proc_pe=$fila[1];
$avg_univer_pe=$fila[2];
$avg_educ_escol_pe=$fila[3];
$avg_grup_vuln_pe=$fila[4];
$avg_educ_madre_pe=$fila[5];
$avg_hnos_menor_pe=$fila[6];
$avg_hogar_ori_pe=$fila[7];
$avg_ocupac_jefe_pe=$fila[8];
$avg_compos_famil_pe=$fila[9];
$avg_nbihogar_pe=$fila[10];
$stddev_zona_res_pe=$fila[11];
$stddev_zona_proc_pe=$fila[12];
$stddev_univer_pe=$fila[13];
$stddev_educ_escol_pe=$fila[14];
$stddev_grup_vuln_pe=$fila[15];
$stddev_educ_madre_pe=$fila[16];
$stddev_hnos_menor_pe=$fila[17];
$stddev_hogar_orig_pe=$fila[18];
$stddev_ocupac_jefe_pe=$fila[19];
$stddev_compos_famil_pe=$fila[20];
$stddev_nbi_hogar_pe=$fila[21];
}
//calculo y media para la varianza de Chile
$sql_MedStd_ch="select avg(zona_res), avg(zona_proc), avg(univer), avg(educ_escol), avg(grup_vuln), avg(educ_madre), ";
$sql_MedStd_ch.="avg(hnos_menor), avg(hogar_orig), avg(ocupac_jefe), avg(compos_famil), avg(ocup_actual), ";
$sql_MedStd_ch.="stddev(zona_res), stddev(zona_proc), stddev(univer), stddev(educ_escol), stddev(grup_vuln), stddev(educ_madre), ";
$sql_MedStd_ch.="stddev(hnos_menor), stddev(hogar_orig), stddev(ocupac_jefe), stddev(compos_famil), ";
$sql_MedStd_ch.="stddev(ocup_actual) from promedio_notas where cod_pais='05'";
$result=mysql_query($sql_MedStd_ch,$conexion);
while ($fila=mysql_fetch_array($result,MYSQL_NUM))
{
$avg_zona_res_ch=$fila[0];
$avg_zona_proc_ch=$fila[1];
$avg_univer_ch=$fila[2];
$avg_educ_escol_ch=$fila[3];
$avg_grup_vuln_ch=$fila[4];
$avg_educ_madre_ch=$fila[5];
$avg_hnos_menor_ch=$fila[6];
$avg_hogar_ori_ch=$fila[7];
$avg_ocupac_jefe_ch=$fila[8];
$avg_compos_famil_ch=$fila[9];
$avg_ocup_actual_ch=$fila[10];
$stddev_zona_res_ch=$fila[11];
$stddev_zona_proc_ch=$fila[12];
$stddev_univer_ch=$fila[13];
$stddev_educ_escol_ch=$fila[14];
$stddev_grup_vuln_ch=$fila[15];
$stddev_educ_madre_ch=$fila[16];
$stddev_hnos_menor_ch=$fila[17];
$stddev_hogar_orig_ch=$fila[18];
$stddev_ocupac_jefe_ch=$fila[19];
$stddev_compos_famil_ch=$fila[20];
$stddev_ocup_actual_ch=$fila[21];
}
$sqlexcel="select datos_personales.cod_postulante, datos_personales.dni_ci, promedio_notas.cod_pais, ";
$sqlexcel.="promedio_notas.zona_res, promedio_notas.zona_proc, promedio_notas.univer, promedio_notas.educ_escol, ";
$sqlexcel.="promedio_notas.grup_vuln, promedio_notas.educ_madre, promedio_notas.hnos_menor, ";
$sqlexcel.="promedio_notas.hogar_orig, promedio_notas.ocupac_jefe, promedio_notas.compos_famil, ";
$sqlexcel.="promedio_notas.nbi_hogar, promedio_notas.ocup_actual, promedio_notas.promed_final ";
$sqlexcel.="from datos_personales, promedio_notas ";
$sqlexcel.="where (datos_personales.cod_postulante=promedio_notas.cod_postulante) ";
if (!empty($nota_min)||($nota_min==0))
$sqlexcel.="and cod_pais='$cod_pais' and promed_final>=$nota_min ";
$sqlexcel.="order by cod_postulante";
$result = mysql_query($sqlexcel, $conexion);
while ($fila=mysql_fetch_array($result,MYSQL_NUM))
{
$cod_postulante=$fila[0];
$dni_ci=$fila[1];
$cod_pais=$fila[2];
$zona_res=$fila[3];
$zona_proc=$fila[4];
$univer=$fila[5];
$educ_escol=$fila[6];
$grup_vuln=$fila[7];
$educ_madre=$fila[8];
$hnos_menor=$fila[9];
$hogar_orig=$fila[10];
$ocupac_jefe=$fila[11];
$compos_famil=$fila[12];
$nbi_hogar=$fila[13];
$ocup_actual=$fila[14];
$promed_final=$fila[15];
//Calculo del promedio final para Peru
if ($cod_pais=="02")
{
$zo_res=(($zona_res-$avg_zona_res_pe)/$stddev_zona_res_pe);
$zo_proc=(($zona_proc-$avg_zona_proc_pe)/$stddev_zona_proc_pe);
$uni=(($univer-$avg_univer_pe)/$stddev_univer_pe);
$edu_esco=(($educ_escol-$avg_educ_escol_pe)/$stddev_educ_escol_pe);
$gru_vul=(($grup_vuln-$avg_grup_vuln_pe)/$stddev_grup_vuln_pe);
$edu_madre=(($educ_madre-$avg_educ_madre_pe)/$stddev_educ_madre_pe);
$hnos_men=(($hnos_menor-$avg_hnos_menor_pe)/$stddev_hnos_menor_pe);
$hog_ori=(($hogar_orig-$avg_hogar_orig_pe)/$stddev_hogar_orig_pe);
$ocup_jefe=(($ocupac_jefe-$avg_ocupac_jefe_pe)/$stddev_ocupac_jefe_pe);
$compo_fami=(($compos_famil-$avg_compos_famil_pe)/$stddev_compos_famil_pe);
$nbi_hog=(($nbi_hogar-$avg_nbi_hogar_pe)/$stddev_nbi_hogar_pe);
$fila_peru=array(
$cod_postulante,
$dni_ci,
$zona_proc,
$zo_proc,
$zona_res,
$zo_res,
$univer,
$uni,
$educ_escol,
$edu_esco,
$grup_vuln,
$gru_vul,
$educ_madre,
$edu_madre,
$hnos_menor,
$hnos_men,
$hogar_orig,
$hog_ori,
$ocupac_jefe,
$ocup_jefe,
$compos_famil,
$compo_fami,
$nbi_hogar,
$nbi_hog,
$promed_final);
$line = '';
foreach($fila_peru as $value){
if(!isset($value) || $value == ""){
$value = "\t";
}else{
$value = str_replace('"', '""', $value);
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim($line)."\n";
}//fin del if_peru
//Calculo del promedio final para Chile
if ($cod_pais=="05")
{
$zo_res=(($zona_res-$avg_zona_res_ch)/$stddev_zona_res_ch);
$zo_proc=(($zona_proc-$avg_zona_proc_ch)/$stddev_zona_proc_ch);
$uni=(($univer-$avg_univer_ch)/$stddev_univer_ch);
$edu_esco=(($educ_escol-$avg_educ_escol_ch)/$stddev_educ_escol_ch);
$gru_vul=(($grup_vuln-$avg_grup_vuln_ch)/$stddev_grup_vuln_ch);
$edu_madre=(($educ_madre-$avg_educ_madre_ch)/$stddev_educ_madre_ch);
$hnos_men=(($hnos_menor-$avg_hnos_menor_ch)/$stddev_hnos_menor_ch);
$hog_ori=(($hogar_orig-$avg_hogar_orig_ch)/$stddev_hogar_orig_ch);
$ocup_jefe=(($ocupac_jefe-$avg_ocupac_jefe_ch)/$stddev_ocupac_jefe_ch);
$compo_fami=(($compos_famil-$avg_compos_famil_ch)/$stddev_compos_famil_ch);
$ocup_act=(($ocup_actual-$avg_ocup_actual_ch)/$stddev_ocup_actual_ch);
$fila_chile=array(
$cod_postulante,
$dni_ci,
$zona_proc,
$zo_proc,
$zona_res,
$zo_res,
$univer,
$uni,
$educ_escol,
$edu_esco,
$grup_vuln,
$gru_vul,
$educ_madre,
$edu_madre,
$hnos_menor,
$hnos_men,
$hogar_orig,
$hog_ori,
$ocupac_jefe,
$ocup_jefe,
$compos_famil,
$compo_fami,
$ocup_actual,
$ocup_act,
$promed_final);
$line = '';
foreach($fila_chile as $value){
if(!isset($value) || $value == ""){
$value = "\t";
}else{
$value = str_replace('"', '""', $value);
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim($line)."\n";
}
}//fin while
$data = str_replace("\r", "", $data);
if ($data == "") {
$data = "\nNo se encontraron registros\n";
}
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=compxPond.xls");
header("Pragma: no-cache");
header("Expires: 0");
echo $header."\n".$data;
?> tambien quise poner una imagen para k se vea como era la salida ,pero no supe como hacerlo, por mas k intente..Jejeje |