Código PHP:
<?php
include("conex.php");
$link=Conectarse();
$Descargar=$_POST['Descargar'];
$datos1=mysql_query("select * from datos1 where pais='$Descargar' order by id asc");
$con1=mysql_fetch_array($datos1);
$shtml="<table>";
$shtml.="<tr>";
$shtml.="<td>ID</td>";
.
.
.
$shtml.="<td>Enlace</td>";
$shtml.="</tr>";
//echo $smtml;
while ($con1=mysql_fetch_assoc($datos1)) {
$puntero=$con1['id'];
$datos2=mysql_query("select * from datos2 where id='$puntero'"); //tomamos el registro de datos2 asociado al id de datos1
$con2=mysql_fetch_array($datos2);
$shtml.="<tr>";
$shtml.="<td>".$con1['id']."</td>";
.
.
.
$shtml.="<td>".$con2['enlace']."</td>";
$shtml.="</tr>";
}
$shtml.="</table>";
// estas dos linesa las puse despues pero el resultado es el mismo, solo graba la cabecera de la tabla
mysql_free_result($datos1);
mysql_close($link);
$scarpeta="descargas"; //carpeta donde guardar el archivo.
//debe tener permisos 775 por lo menos
$sfile=$scarpeta."/descarga.xls"; //ruta del archivo a generar
$fp=fopen($sfile,"w");
fwrite($fp,$shtml);
fclose($fp);
echo "<a href='".$sfile."'>Haz click aqui para descargar</a>";
?>
saludos