The last time I've done this I just have a link that sets the content type header to something like text/excel (that's not it exactly i don't think, google for it) and on Windows at least it always worked to open the page in Excel. And if you use an HTML table, excel will just open it as a spreadsheet, including any CSS text formatting you use.
Is that what you meant, or did I answer a different question?