In this post you will learn how to Read Excel File from Application Server. This solution covers reading the data from Excel File tabs as well.

Step 1 : Read the file from application server into xstring.

Important to note that the file should be read in binary mode.

DATA(lv_file) = 'path/file.xlsx'.
OPEN DATASET lv_file FOR INPUT IN BINARY MODE.
IF sy-subrc EQ 0.
  READ DATASET lv_file INTO lv_xls_xstr.
  IF sy-subrc NE 0.
    MESSAGE e002 WITH lv_file.
  ENDIF.
ELSE.
  MESSAGE e001 WITH lv_file.
ENDIF.
CLOSE DATASET lv_file.

Step 2 : Get the Excel Sheet names

CL_FDT_XL_SPREADSHEET class is used to get the sheet names and get the data from specific sheet.

"Create object for cl_fdt_xl_spreadsheet
DATA(lo_xls) = NEW cl_fdt_xl_spreadsheet( document_name = iv_file
                                          xdocument     = lv_xls_xstr ).

"Get work sheets
lo_xls->if_fdt_doc_spreadsheet~get_worksheet_names( 
  IMPORTING 
    worksheet_names = DATA(lt_sheets) 
).

Step 3 : Read the sheet data

"Loop at sheets & get data using a method from the class
LOOP AT lt_sheets INTO DATA(ls_sheet).
  ir_data_ref = lo_xls->if_fdt_doc_spreadsheet~get_itab_from_worksheet( ls_sheet  ) .
  ASSIGN ir_data_ref->* TO FIELD-SYMBOL(<lfs_data_tab>).
  cl_demo_output=>display( <lfs_data_tab> ).
ENDLOOP.

This part of code will read each sheet and display with the demo output class.

It is important to note that

  • the column names from the table are A, B, C, D … and so on
  • the actual column header from the excel file are shown as the first line

This is a effective method which allows us to read Excel file. However, this comes at a risk. SAP suggests to use this class only within BRF+ framework and not outside. See the note below for the warning.

Note 2468709 – Usage of standard class CL_FDT_XL_SPREADSHEET

The solution to this issue is to use the ABAP2XLSX open source project. It can be found on github at below links.

https://github.com/abap2xlsx/abap2xlsx

Visit ABAP Code Sample : ABAP2XLSX project for tutorial on installing the project.

Visit ABAP Code Samples page for more code samples.


If you like the content, please subscribe…

Join 4,016 other subscribers

Discovering ABAP YouTube Channel