
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('Sheet1').
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
25 | |
24 | |
17 | |
14 | |
10 | |
10 | |
9 | |
9 | |
8 | |
8 |