Code: Alles auswählen.
DATA: xls TYPE xstring.
DATA: solix_tab TYPE solix_tab.
PARAMETERS: p_file TYPE file_table-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM f4_for_file CHANGING p_file.
START-OF-SELECTION.
  PERFORM get_data_from_xls USING p_file CHANGING xls.
  PERFORM download_xls USING xls.
FORM get_data_from_xls  USING    file TYPE file_table-filename
                        CHANGING excel TYPE xstring.
  TRY.
      DATA: filesize TYPE w3param-cont_len.
      DATA: bin_data TYPE w3mimetabtype.
      cl_gui_frontend_services=>gui_upload( EXPORTING
                                        filename   = CONV #( file )
                                        filetype   = 'BIN'
                                      IMPORTING
                                        filelength = filesize
                                      CHANGING
                                        data_tab   = bin_data ).
* solix -> xstring
      excel = cl_bcs_convert=>solix_to_xstring( it_solix = bin_data ).
    CATCH cx_root INTO DATA(e_text).
      MESSAGE e_text->get_text( ) TYPE 'S' DISPLAY LIKE 'E'.
  ENDTRY.
ENDFORM.
FORM f4_for_file  CHANGING filename TYPE file_table-filename.
  DATA: rc TYPE i.
  DATA: files TYPE filetable.
  DATA: action TYPE i.
  CLEAR files.
  TRY.
      cl_gui_frontend_services=>file_open_dialog( EXPORTING
                                                    file_filter = |xlsx (*.xlsx)\|*.xlsx\|{ cl_gui_frontend_services=>filetype_all }|
                                                  CHANGING
                                                    file_table  = files
                                                    rc          = rc
                                                    user_action = action ).
      IF action = cl_gui_frontend_services=>action_ok.
        IF lines( files ) > 0.
          filename = files[ 1 ]-filename.
        ENDIF.
      ENDIF.
    CATCH cx_root INTO DATA(e_text).
      MESSAGE e_text->get_text( ) TYPE 'I'.
  ENDTRY.
ENDFORM.
FORM download_xls  USING    excel TYPE xstring.
  IF xstrlen( excel ) > 0.
    DATA: action TYPE i.
    DATA: filename TYPE string.
    DATA: fullpath TYPE string.
    DATA: path TYPE string.
    cl_gui_frontend_services=>file_save_dialog( EXPORTING
                                                  default_file_name = 'Excel.xlsx'
                                                  default_extension = 'xlsx'
                                                  file_filter       = |Excel-Datei (*.xlsx)\|*.xlsx\|{ cl_gui_frontend_services=>filetype_all }|
                                                CHANGING
                                                  filename          = filename
                                                  path              = path
                                                  fullpath          = fullpath
                                                  user_action       = action ).
    IF action EQ cl_gui_frontend_services=>action_ok.
      DATA(bin_data) = cl_bcs_convert=>xstring_to_solix( EXPORTING iv_xstring = excel ).
      cl_gui_frontend_services=>gui_download( EXPORTING
                                                filename     = fullpath
                                                filetype     = 'BIN'
                                                bin_filesize = xstrlen( excel )
                                              CHANGING
                                                data_tab     = bin_data ).
    ENDIF.
  ENDIF.
ENDFORM.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag: 
			PeterPaletti