Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Download or Save CSV file in the App server problem

Former Member
0 Kudos

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

2 REPLIES 2

Former Member
0 Kudos

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.

Former Member
0 Kudos

Hi,

Check Out The Program to download the file to the application server

or

Check out this wiki

or check out the threads below

thread1

thread2

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