Hay una clase que hace eso, está en:
http://www.phpclasses.org/browse/package/1590.html
Te tendrás que dar de alta para descargarla, pero vale la pena, te lo aseguro.
Espero que te sirva. Yo la uso en varias webs para que mis clientes se bajen las tablas MySQL en formato Excel.