Since this works logged in but not under ASP, it seems like it may be a permissions problem with the (i presume) IIS user account not being able to write to the path you're saving in (or maybe not having full rights to Excel/libraries.
Side note: you might want (if for nothing else just to be explicit in the code) to hide the excel window (it miught be by default).. it's something similar to