what OS are you on? I have php on my win98 box, and what I do is create a CSV file so anyone can open it with Excel.
There is a class out there that generates the file on the fly, tapping into Excel COM interface.
I decided not to use that since our server is on Red Hat and it seems like a pain in the ass to try to create an Excel file on the fly with this setup.
I figure I need a win32 box to talk to when someone tries to open up a php script on the Red Hat box. That php script will somehow talk COM to the win32 box to generate the file. Then the PHP script grabs that file and moves/copies it to the server so someone can download it. So..the problem is that I didn't want to create a dependancy on another box, and it seemed like a pain in the ass compared to....
creating a CSV file and making the user download and import it to Excel.
It's definately more 'cool' to have Excel pop open automatically, but I can't see a clean/easy way of doing it on Linux.
(by the way, I've tried changing the mime types with header() but that saves all the HTML formatting in the Excel. )