Se vuoi creare un file di excel al volo e con tutti i crismi, puoi usare Spreadsheet_Excel_Writer presente nel pacchetto Pear.
Se vuoi fare in casa, ed ottenere un effetto simil-excel, devi invece togliere da $riga la formattazione a tabelle, ed usare invece il tabulatore (\t) ed il NewLine (\n).
Codice PHP:
$riga.= .$utente['nome']."\\t".$utente['cognome']."\\t".$utente['facolta']."\\t".$utente['telefono']."\t".$utente['email']."\\n";
Questo è un barbatrucco, nel senso che una volta che vengono lanciati gli header, quando si apre il prompt che ti chiede "Apri", "Salva" e "Annulla", se si preme APRI si otterrà un file di testo con dei caratteri strani tra le varie parole.
Cosa che non succede una volta che verrà salvato nel PC.
Un ultimo appunto: uno degli header che hai scritto te è errato.
Codice PHP:
header ("Content-Disposition:attachment; filename=$filename");
Vedi un po' se funge ora???