Si tienes un poco de paciencia puedes hacer unas pruebas:
Código PHP:
/*
aqui pones la extencion del archivo que deseas descargar del servidor
ese archivo debe estar en el mismo directiorio que este script
llama a ese archivo "original"
(prueba con archivos de diferente formato -llamados "original"-
que funcionen y cuyo soft poseas para abrirlo)
*/
$ext = "php";
//EJEMPLO HEADERS
header('Content-type: application/'.$ext.'');
// nombre que le dara al guardarlo
header('Content-Disposition: attachment; filename="downloaded.'.$ext.'"');
// archivo original a descargar
readfile('original.'.$ext.'');
Esto te permitira ver que es lo que sucede...
Cuando le des click al link, se abrira con el soft correspondinete. Lo probe en chrome.
Tu problema con el archivo xls es que quiza tu no tienes instalado el soft que corresponda... o que quiza no lo estes generando correctamente.
Me tengo que ir... asi que no puedo seguir, luego investigo mas...