Wednesday, January 25, 2012

HOW TO UPLOAD A EXCEL FILE USING ABAP


REPORT  ZEXCELFILEUPLOAD.
TYPE-POOLS: truxs.

type-pools : slis.
data:   it_fieldcat type slis_t_fieldcat_alv,
        lt_top_of_page type slis_t_listheader,
        ls_layout      type slis_layout_alv,
        gt_events      type slis_t_event.

data :  wa_fieldcat like line of it_fieldcat.

PARAMETERS: p_file TYPE  rlgrap-filename.

TYPES: BEGIN OF t_datatab,
      col1(30)    TYPE c,
      col2(30)    TYPE c,
      col3(30)    TYPE c,
      col4(30)    TYPE c,
      END OF t_datatab.
DATA: it_datatab type standard table of t_datatab,
      wa_datatab type t_datatab.

DATA: it_raw TYPE truxs_t_text_data.

* At selection screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      field_name = 'P_FILE'
    IMPORTING
      file_name  = p_file.


***********************************************************************
*START-OF-SELECTION.
START-OF-SELECTION.

  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
*     I_FIELD_SEPERATOR        =
      i_line_header            =  'X'
      i_tab_raw_data           =  it_raw       " WORK TABLE
      i_filename               =  p_file
    TABLES
      i_tab_converted_data     = it_datatab[]    "ACTUAL DATA
   EXCEPTIONS
      conversion_failed        = 1
      OTHERS                   = 2.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


***********************************************************************
* END-OF-SELECTION.
END-OF-SELECTION.
*  LOOP AT it_datatab INTO wa_datatab.
*    WRITE:/ wa_datatab-col1,
*            wa_datatab-col2,
*            wa_datatab-col3.
*  ENDLOOP.


  wa_fieldcat-fieldname = 'COL1'.
  wa_fieldcat-ref_tabname = 'IT_DATATAB'.
  wa_fieldcat-seltext_l = 'NAME'.
  wa_fieldcat-outputlen = 20.
  wa_fieldcat-col_pos     = '1'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-fieldname = 'COL2'.
  wa_fieldcat-ref_tabname = 'IT_DATATAB'.
  wa_fieldcat-seltext_l = 'ADDRESS'.
  wa_fieldcat-outputlen = 20.
  wa_fieldcat-col_pos     = '2'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-fieldname = 'COL3'.
  wa_fieldcat-ref_tabname = 'IT_DATATAB'.
  wa_fieldcat-seltext_l = 'PHONE'.
  wa_fieldcat-outputlen = 20.
  wa_fieldcat-col_pos     = '3'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-fieldname = 'COL4'.
  wa_fieldcat-ref_tabname = 'IT_DATATAB'.
  wa_fieldcat-seltext_l = 'EMAIL'.
  wa_fieldcat-outputlen = 20.
  wa_fieldcat-col_pos     = '4'.
  append wa_fieldcat to it_fieldcat.
  clear wa_fieldcat.

  clear wa_fieldcat.

  call function 'REUSE_ALV_GRID_DISPLAY'

  exporting
    i_callback_program                = sy-cprog
    is_layout                         = ls_layout
    it_fieldcat                       = it_fieldcat[]

   it_events                         = gt_events[]
   tables
     t_outtab                          = it_datatab[]
 exceptions
  program_error                     = 1
  others                            = 2
           .
  if sy-subrc <> 0.

  endif.
  """"""""""""