Skip to content

Instantly share code, notes, and snippets.

@cetint
Last active August 29, 2015 14:22
Show Gist options
  • Save cetint/0d93bc693b3dcfb03825 to your computer and use it in GitHub Desktop.
Save cetint/0d93bc693b3dcfb03825 to your computer and use it in GitHub Desktop.
ABAP-Upload From Excel-Download To Excel-EN
REPORT zexample_upload_download_excel .
FIELD-SYMBOLS: <fs_tab> TYPE STANDARD TABLE .
DATA : BEGIN OF gt_itab OCCURS 0.
include structure ztable.
DATA: silme(1) TYPE c,
END OF gt_itab.
DATA: gv_tname TYPE string ,
gv_filen TYPE string.
***DOWNLOAD TO EXCEL FROM ITAB >>>
gv_tname = 'GT_ITAB[]' .
ASSIGN (gv_tname) TO <fs_tab>.
IF sy-subrc NE 0.
MESSAGE i899(fb) WITH 'An error was accured!' DISPLAY LIKE 'W'.
STOP.
ENDIF.
CALL FUNCTION 'GUI_FILE_SAVE_DIALOG'
EXPORTING
default_extension = '.xls'
default_file_name = 'liste'
IMPORTING
fullpath = gv_filen.
CHECK sy-ucomm NE 'CANC'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = gv_filen
filetype = 'DAT'
TABLES
data_tab = <fs_tab>
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.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
***DOWNLOAD TO EXCEL FROM ITAB <<<
***UPLOAD FROM EXCEL TO ITAB >>>
CLEAR : GT_ITAB[], GT_ITAB .
TYPE-POOLS: truxs.
DATA: it_raw TYPE truxs_t_text_data,
gv_file LIKE rlgrap-filename .
DATA : gt_file_table TYPE filetable,
gv_rc TYPE i,
gv_filename TYPE string.
gv_tname = 'GT_ITAB[]'.
gv_table = 'ZTABLE' .
gv_line = 'GS_ITAB'.
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE ,
<fs_ztable> TYPE STANDARD TABLE ,
<gs_table> TYPE ANY .
ASSIGN (gv_line) TO <gs_table>.
ASSIGN (gv_tname) TO <fs_table>.
IF sy-subrc NE 0.
MESSAGE i899(fb) WITH 'An error was accured!' DISPLAY LIKE 'W'.
STOP.
ENDIF.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = gv_file.
REFRESH <fs_table> .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header = ''
i_tab_raw_data = it_raw
i_filename = gv_file
TABLES
i_tab_converted_data = <fs_table>
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
**MODIFY database table from data uploading from excel >>
ASSIGN gv_table TO <fs_ztable> .
IF <fs_ztable> IS ASSIGNED .
LOOP AT <fs_table> INTO <gs_table> .
MODIFY (<fs_ztable>) FROM <gs_table> .
ENDLOOP.
ENDIF .
**MODIFY database table from data uploading from excel <<
***UPLOAD FROM EXCEL TO ITAB <<<
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment