I was struggling with this feature for a longtime and finally found some solution and so thought of listing it:
Here is what I did to download an internal table to xslx format (works for xls aso) :
I found this excellent link that allowed me to download an XSLX file on to local directory and then I added a little more to download to app server.
http://abapblog.com/articles/tricks/33-create-xlsx-mhtml-file-from-internal-table-in-background
<
Per this link. once the bin file is prepared, pass it to
CALL FUNCTION 'HR_CA_DOWNLOAD_TO_APPSERVER' EXPORTING filename = p_file filesize = g_size IMPORTING bytes_transfered = len TABLES data_tab = gt_bintab EXCEPTIONS invalid_filesize = 1 no_authority = 2 dataset_open_error = 3 OTHERS = 4.
This works for xslx as well as xls