01-22-2014 7:30 PM
Hi Experts,
I just want to ask on how we can save/download a .csv file that displays in excel as a column, not separated with semicolon ;?
Any suggestion, or sample code is a great help.
Thank you so much!!
Regards,
Borland
01-22-2014 7:40 PM
1) Make your data table comma delimited. You can use the below function module for that. But if your table contains like more than 100000 records, I would not recommend to us it.
"Convert the Output Table in to Text Table separated by comma
CALL FUNCTION 'SAP_CONVERT_TO_TEX_FORMAT'
EXPORTING
i_field_seperator = ',' "Comma
i_line_header = abap_true
TABLES
i_tab_sap_data = gt_data
CHANGING
i_tab_converted_data = gt_output
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
FREE: r_value.
RETURN.
ENDIF.
2) Download the converted table as below.
lv_filename should contain the file path with the correct filename ( with .CSV extension )
"Begin - Download
OPEN DATASET lv_filename
FOR OUTPUT IN TEXT MODE ENCODING DEFAULT
MESSAGE lv_msg.
IF sy-subrc <> 0.
MESSAGE e004 "Error
WITH lv_filename lv_msg RAISING exception_occured.
ENDIF.
LOOP AT gt_output INTO ls_output.
TRANSFER ls_outpu TO lv_filename.
ENDLOOP.
CLOSE DATASET lv_filename.
01-23-2014 3:41 AM
Hi,
Check Out The Program to download the file to the application server
or
or check out the threads below
Download the file to presentation server
TYPES : BEGIN OF test,
str TYPE char100,
END OF test.
DATA : lt_test TYPE STANDARD TABLE OF test,
lv_test TYPE test.
lv_test = 'test'.
APPEND lv_test TO lt_test.
lv_test = 'test'.
APPEND lv_test TO lt_test.
lv_test = 'test'.
APPEND lv_test TO lt_test.
lv_test = 'test'.
APPEND lv_test TO lt_test.
lv_test = 'test'.
APPEND lv_test TO lt_test.
lv_test = 'test'.
APPEND lv_test TO lt_test.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE =
filename = 'C:\ALEN\test.csv'
* FILETYPE = 'ASC'
* APPEND = ' '
* WRITE_FIELD_SEPARATOR = ' '
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = ' '
* WRITE_LF = 'X'
* COL_SELECT = ' '
* COL_SELECT_MASK = ' '
* DAT_MODE = ' '
* CONFIRM_OVERWRITE = ' '
* NO_AUTH_CHECK = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = ' '
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE
* SHOW_TRANSFER_STATUS = ABAP_TRUE
* VIRUS_SCAN_PROFILE = '/SCET/GUI_DOWNLOAD'
* IMPORTING
* FILELENGTH =
tables
data_tab = lt_test
* FIELDNAMES =
* EXCEPTIONS
* FILE_WRITE_ERROR = 1
* NO_BATCH = 2
* GUI_REFUSE_FILETRANSFER = 3
* INVALID_TYPE = 4
* NO_AUTHORITY = 5
* UNKNOWN_ERROR = 6
* HEADER_NOT_ALLOWED = 7
* SEPARATOR_NOT_ALLOWED = 8
* FILESIZE_NOT_ALLOWED = 9
* HEADER_TOO_LONG = 10
* DP_ERROR_CREATE = 11
* DP_ERROR_SEND = 12
* DP_ERROR_WRITE = 13
* UNKNOWN_DP_ERROR = 14
* ACCESS_DENIED = 15
* DP_OUT_OF_MEMORY = 16
* DISK_FULL = 17
* DP_TIMEOUT = 18
* FILE_NOT_FOUND = 19
* DATAPROVIDER_EXCEPTION = 20
* CONTROL_FLUSH_ERROR = 21
* OTHERS = 22
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
Regards,
Alenlee mj