REPORT zdemo_excel37. DATA: excel TYPE REF TO zcl_excel, reader TYPE REF TO zif_excel_reader. CONSTANTS: gc_save_file_name TYPE string VALUE '37-passthrough.xlsx'. SELECTION-SCREEN BEGIN OF BLOCK blx WITH FRAME. PARAMETERS: p_upfile TYPE string DEFAULT 'c:\temp\whatever.xlsx' LOWER CASE. SELECTION-SCREEN END OF BLOCK blx. INCLUDE zdemo_excel_outputopt_incl. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_upfile. PERFORM f4_p_upfile CHANGING p_upfile. START-OF-SELECTION. TRY. CREATE OBJECT reader TYPE zcl_excel_reader_2007. * CREATE OBJECT reader TYPE zcl_excel_reader_xlsm. excel = reader->load_file( p_upfile ). *** Create output lcl_output=>output( excel ). CATCH cx_root. MESSAGE 'Error reading excelfile' TYPE 'I'. ENDTRY. *&---------------------------------------------------------------------* *& Form F4_P_UPFILE *&---------------------------------------------------------------------* FORM f4_p_upfile CHANGING p_upfile TYPE string. DATA: lv_repid TYPE syrepid, lt_fields TYPE dynpread_tabtype, ls_field LIKE LINE OF lt_fields, lt_files TYPE filetable. lv_repid = sy-repid. CALL FUNCTION 'DYNP_VALUES_READ' EXPORTING dyname = lv_repid dynumb = '1000' request = 'A' TABLES dynpfields = lt_fields EXCEPTIONS invalid_abapworkarea = 01 invalid_dynprofield = 02 invalid_dynproname = 03 invalid_dynpronummer = 04 invalid_request = 05 no_fielddescription = 06 undefind_error = 07. READ TABLE lt_fields INTO ls_field WITH KEY fieldname = 'P_UPFILE'. p_upfile = ls_field-fieldvalue. cl_gui_frontend_services=>file_open_dialog( EXPORTING default_filename = p_upfile file_filter = zcl_excel_common=>c_xlsx_file_filter CHANGING file_table = lt_files rc = sy-tabix EXCEPTIONS OTHERS = 1 ). READ TABLE lt_files INDEX 1 INTO p_upfile. ENDFORM. " F4_P_UPFILE