13

Excel XLSX Upload – Unified approach for older ABAP Version

 2 years ago
source link: https://blogs.sap.com/2021/12/30/xlsc-upload-unified-approach-for-older-abap-version/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
December 30, 2021 1 minute read

Excel XLSX Upload – Unified approach for older ABAP Version

It is all about XLSX files and a unified approach to upload XLSX files into SAP GUI and Webdynpro ABAP / Floor Plan Manager using XSL Transformation.

In this document, I explained the steps to import the XLSX file.

View Document

If you are on the higher version, you can make use of the APIs

METHOD import.
    CHECK ip_xlsx_filename IS NOT INITIAL.
    TRY.
        DATA(lv_xlsx_data) = cl_openxml_helper=>load_local_file( ip_xlsx_filename ).
        DATA(lo_xlsx_data) = load_xlsx_data( ip_xlsx_data = lv_xlsx_data ip_xlsx_filename = ip_xlsx_filename ).
        IF lo_xlsx_data IS BOUND.
          rt_jobdoc_data = me->do_mapping_import( lo_xlsx_data ).
        ENDIF.
      CATCH cx_openxml_not_found.
    ENDTRY.
  ENDMETHOD.
  METHOD load_xlsx_data.
    TRY.
        DATA(lo_xlsx_ref) = NEW cl_fdt_xl_spreadsheet(
            document_name     = ip_xlsx_filename
            xdocument         = ip_xlsx_data ).
        IF lo_xlsx_ref IS BOUND.
          lo_xlsx_ref->if_fdt_doc_spreadsheet~get_worksheet_names(
            IMPORTING
              worksheet_names = DATA(lt_worksheets) ).
          ro_xlsx_data = lo_xlsx_ref->if_fdt_doc_spreadsheet~get_itab_from_worksheet( CONV #( text-001 ) ).
        ENDIF.
      CATCH cx_openxml_not_found cx_fdt_excel_core.
    ENDTRY.
  ENDMETHOD.
  METHOD do_mapping_import.
    DATA: ls_jobdoc_data  TYPE if_jsm_jobdoc_mass_maintenance=>ts_jobdoc_master,
          lt_jobmon_data  TYPE if_jsm_jobdoc_mass_maintenance=>tt_jobdoc_master,
          lv_language_iso TYPE char2,
          lv_language_sap TYPE lang1.
    FIELD-SYMBOLS: <lt_worksheet_data> TYPE STANDARD TABLE,
                   <lv_data>           TYPE string.
    ASSIGN it_data->* TO <lt_worksheet_data>.
    LOOP AT <lt_worksheet_data> ASSIGNING FIELD-SYMBOL(<ls_worksheet_data>) FROM 2.
      APPEND INITIAL LINE TO lt_jobmon_data ASSIGNING FIELD-SYMBOL(<ls_jobdoc_data>).
      DO 52 TIMES.
        ASSIGN COMPONENT sy-index OF STRUCTURE <ls_worksheet_data> TO <lv_data>.
        ASSIGN COMPONENT sy-index OF STRUCTURE <ls_jobdoc_data> TO FIELD-SYMBOL(<lv_value>).
        <lv_value> = <lv_data>.
      ENDDO.
    ENDLOOP.
...
...
    ENDMETHOD

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK