Dopo gli ultimi aggiornamenti di office, excel non apre più i falsi file excel come quello che vuoi creare.
Creare un file di testo con dentro il codice html per una tabella e poi dargli estensione xls o xlsx è una cattiva pratica che si è diffusa nel tempo. Già office 2007 con il modulo di controllo per la genuinità dei file non apre file di quel tipo dicendo che il contenuto non corrisponde al formato del file.
Devi creare un vero file excel usando una libreria apposita es. Phpexcel oppure esporta i dati i csv e salvali in formato .csv. Excel li apre inserendo un dato in ogni cella e ti permette poi di salvare il tutto in un file excel xlsx.