You can download a file to a PC in the background, but it's a hell of a job because the session is no longer attached to the PC that created it.
You will have to write the data to the application server using OPEN DATASET (so you're Excel option is limited to CSV or TAB delimited files), then transfer the file using the *FTP* functions to the PC, in the meantime hoping that the end user has not switched the PC off.....
An easier option would be to make the current GUI invisible and give the user a new one, so that the program is running in the foreground on the PC - he just can't see it.
Have a look at the function module 'SAPGUI_SET_PROPERTY'