Dein Problem hat mir file:// nichts zu tun.
Apache ist per Default so konfiguriert, dass er für alle Dateien, deren Endung er nicht kennt, text/plain verwendet. Und was als text/plain ankommt, wird vom Browser als Ascii-Text angezeigt.
Du musst in Apaches "mime.types"-Datei einen entsprechende Eintrag für .xls einrichten und danach den Webserver die Konfiguration neu lesen lassen. (Frag ggf. Deinen Server-Admin um Hilfe.)
.xls stand doch für Excel, nicht wahr? In http://www.ltsw.se/knbase/internet/mime.htp sind dafür sogar zwei Mime Types eingetragen, application/excel und application/vnd.ms-excel. Welcher nun der "offizielle" ist, weiß ich allerdings auch nicht...