No está de más una breve explicación ..
En general se trata de que compongas una tabla HTML .. la estructura de filas y celdas de esa tabla HTML es representada por Excel para darle la ubicación a tus datos. Esto sería un método muy simple pero efectivo.
Si quieres generar un archivo del resultado y dejarlo en el servidor .. tan sólo con funciones como fopen() .. fwrite() y demás lo generas.
Si quieres enviar el archivo a "descargar" ahí necesitas componer las cabeceras HTTP adecuadas para indicar que el dato que vas a enviar es de tipo ".xls" (y si .. ahí usarías "header()" para enviar esas cabeceras).
Otras opciones pasan por usar COM (
www.php.net/com) si usas PHP bajo Windows (con el office instalado) .. también generar el "binario" própio de Excel con sus própios códigos.
Como todo en esta vida ya está más que inventado, puedes usar alguna classe para tal fin que te ayude. (No obstante saber "como funciona" es necesario como te acabo de explicar a groso modo):
http://www.phpclasses..org/browse/package/237.html http://www.phpclasses.org/browse/package/1919.html
(tienes más en
www.phpclasses.org)
Un saludo,