Veamos.
 
generaXLS.php 
 Código PHP:
    <?php
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition:  filename=\"datos.xls\";");  
include("dbconnect.php");
$link = conectar_bbdd();
$sql = "SELECT * FROM `here`";
$r = mysql_query($sql,$link);
echo '<table>';
while($arr = mysql_fetch_array($r, MYSQL_NUM)) {
  echo '<tr>';
  foreach($arr as $value) echo '<td>'.$value.'</td>';
  echo '</tr>';
}
echo '</table>';    
  Y luego, donde quieras un  
 Código HTML:
 <a href="generaXLS.php">Generar XLS</a> 
 Esto NO lo muestra por pantalla, te genera un XLS descargable con los datos de la tabla SQL :) 
Evidentemente, tardará X tiempo en crearse. 
¿Que quieres que sea un archivo ya creado en el servidor?
Puedes hacerlo con fopen, fwrite, y fclose. ¿Cómo? Créalo como un csv (coma separated values) que tb lo abre excel :)