Pues ahora usa el código de header() que usabas desde un principio ..
Código PHP:
// etc ....
$shtml=$shtml."</table>";
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=datos.xls");
echo $shtml;
Eso te ofrecerá a descarga el archivo generado (o te abrirá el Exel directamente).
Si quieres generar un archivo en el servidor .. usa el código del fopen() que tenías antes.
Un saludo,