Che vengono troncati gli zeri iniziali da excel è normale, perchè lui lavora con le cifre, e nei numeri lo zero iniziale non conta. Non so cosa contiene il file clienti.xls, con che lo crei? Quello che hai scritto ti permette solo di dire al browser che le intestazioni contengono un file xls, e di comportarsi di conseguenza.
Hai provato a creare un file csv? Nell'importazione in excel puoi impostare il tipo di dato, quindi invece di utilizzare come tipo numerico, utilizzi stringa, allora gli zeri non te li toglie.