*&---------------------------------------------------------------------* *& Report ZDEMO_TECHED3 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zdemo_teched3. ******************************* * Data Object declaration * ******************************* DATA: lo_excel TYPE REF TO zcl_excel, lo_excel_reader TYPE REF TO zif_excel_reader, lo_worksheet TYPE REF TO zcl_excel_worksheet. DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c. DATA: lt_files TYPE filetable, ls_file TYPE file_table, lv_rc TYPE i, lv_value TYPE zexcel_cell_value. CONSTANTS: lc_default_file_name TYPE string VALUE 'TechEd01.xlsx'. ******************************* * Selection screen management * ******************************* PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. lv_workdir = p_path. cl_gui_frontend_services=>file_open_dialog( EXPORTING initial_directory = lv_workdir default_filename = lc_default_file_name file_filter = 'abap2xlsx|*.xlsx' CHANGING file_table = lt_files rc = lv_rc ). IF lv_rc EQ 1. READ TABLE lt_files INTO ls_file INDEX 1. lv_full_path = ls_file-filename. p_path = ls_file-filename. ENDIF. INITIALIZATION. cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). cl_gui_cfw=>flush( ). cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). CONCATENATE lv_workdir lv_file_separator lc_default_file_name INTO lv_full_path. p_path = lv_full_path. START-OF-SELECTION. IF lv_full_path IS INITIAL. cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). CONCATENATE lv_workdir lv_file_separator lc_default_file_name INTO lv_full_path. ENDIF. ******************************* * abap2xlsx read XLSX * ******************************* CREATE OBJECT lo_excel_reader TYPE zcl_excel_reader_2007. lo_excel = lo_excel_reader->load_file( lv_full_path ). lo_excel->set_active_sheet_index( 1 ). lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->get_cell( EXPORTING ip_column = 'C' ip_row = 10 IMPORTING ep_value = lv_value ). WRITE: 'abap2xlsx total score is ', lv_value.