REPORT zdemo_excel37. DATA: excel TYPE REF TO zcl_excel, reader TYPE REF TO zif_excel_reader, go_error TYPE REF TO cx_root, gv_message type string. 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 ). *--------------------------------------------------------------------* * CL_ABAP_ZIP may have problems reading LibreOffice generated files * You may have to use alternate ZIP-Class - see comments in issue #234 in abap2xlsx at developers network * excel = reader->load_file( i_filename = p_upfile * iv_use_alternate_zip = 'ZCL_EXCEL_ABAP_ZIP' ). *--------------------------------------------------------------------* *** Create output lcl_output=>output( excel ). CATCH cx_root INTO go_error. MESSAGE 'Error reading excelfile' TYPE 'I'. gv_message = go_error->get_text( ). IF gv_message IS NOT INITIAL. MESSAGE gv_message TYPE 'I'. ENDIF. 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