Hello all,
I am creating a application in BSP wherein i have to export data to excel sheet.
I am able to do that but the output in excel sheet is not formatted. it is displaying the data in a single
column. For example, the internal table which i am exporting to excel contains fields "product
name", "area name", country name", "values". all these should be displayed in different columns.How
can i achieve this functionality.A sample code will be of great help..
Below is the code i hav written for exporting to excel :
data: l_len type i,
l_string type string,
app_type type string,
file_content type xstring,
file_mime_type type string.
create OBJECT cached_response TYPE cl_http_response EXPORTING add_c_msg = 1.
cached_response->set_data( file_content ).
cached_response->set_header_field(
name = if_http_header_fields=>content_type
value = file_mime_type ).
LOOP AT itab_xls INTO wa_xls.
CONCATENATE L_STRING wa_xls-product_name
wa_xls-area_name
wa_xls-landx
CL_ABAP_CHAR_UTILITIES=>CR_LF INTO L_STRING SEPARATED BY SPACE.
ENDLOOP.
APP_TYPE = 'APPLICATION/MSEXCEL; charset=utf-16le'.
data: l_xstring type xstring.
call function 'SCMS_STRING_TO_XSTRING'
exporting
text = l_string
MIMETYPE = 'APPLICATION/MSEXCEL; charset=utf-16le'
IMPORTING
BUFFER = l_xstring.
Add the Byte Order Mark - UTF-16 Little Endian
concatenate cl_abap_char_utilities=>byte_order_mark_little
l_xstring
into l_xstring in byte mode.
cached_response->set_data( l_xstring ).
cached_response->set_header_field( name = if_http_header_fields=>content_type
value = 'APPLICATION/MSEXCEL; charset=utf-16le' ).
*Set the filename into the response header
cached_response->set_header_field( name = 'Content-Disposition'
value = 'attachment; filename=gkb_excel.xls' ).
*Set the Response Status
cached_response->set_status( code = 200 reason = 'OK' ).
*Set the Cache Timeout - 60 seconds - we only need this in the cache
*long enough to build the page and allow the IFrame on the Client to request it.
cached_response->server_cache_expire_rel( expires_rel = 60 ).
CALL FUNCTION 'GUID_CREATE'
IMPORTING
ev_guid_32 = guid.
CONCATENATE runtime->application_url '/' guid '.xls' INTO url.
cl_http_server=>server_cache_upload( url = url
response = cached_response ).
Can anyone help me with some solution.
Thanks in advance.
Gurmahima.