OWC (Office web components) if need to create actual file (some copywright limitations though) see 4guys for a tutorial. Or if just nedd a dynamic spreadsheet use Response.ContentType = "application/vnd-msexcel" (check this to make sure mime type is correct. Again see 4guys for a tutorial.
What I did, is created the spreadsheet in Excel 2000 then saved as HTML (almost all functionality remains, including macros). Then in ASP retrieved the HTML file (relevant piece) and replaced the sections through a search and replace that I needed to change. Then I saved the HTML file again. The user can then retrieve the HTML file with all the functionality and if they desire can then save it out as Excel again.
features must your excel files have? ie just tabular data or graphs or what. Also how will microsoft ever know about the owc being on the server. (Oh no did I say that out loud..cringe) </evil grin>