2017-11-12 1 views

Antwort

2

Sie können die Klasse cl_mass_spreadsheet_service verwenden, wenn Sie das Excel im Vordergrund hochladen. Siehe meinen Beispielcode unten:

DATA: 
    lv_file  TYPE if_mass_spreadsheet_types=>file_name, 
    lt_result TYPE STANDARD TABLE OF zsd_salesorder_create. "your result table 

lv_file = 'C:\some_file.xlsx'. 

cl_mass_spreadsheet_service=>fill_table(
    EXPORTING 
     iv_file      = lv_file "full path+name of file. See method navigate_to_file below 
     iv_from_file    = abap_true "use to upload from excel/CSV 
     iv_from_clipboard   = abap_false "use to copy directly from clipbiard 
     iv_tabname     = 'Order_Create' "can be whatever 
    CHANGING 
     ct_table     = lt_result "if ct_table have the same column names as the excel file, the order of the columns does not matter 
). 
+0

Diese Klasse erfordert DDIC-Struktur, also ist dies nicht vollständig dynamische Struktur-Lösung, aber trotzdem funktional! Besser, als ich jemals gesehen habe, Prost! – Suncatcher

+0

Es ist auch erwähnenswert, diese Klasse erschien erst seit 7.40, es existiert nicht in 7.31 und älteren Systemen. – Suncatcher

1

Wenn Sie die Daten mit der FM ALSM_EXCEL_TO_INTERNAL_TABLE hochladen, können Sie durch die interne Tabelle dieser FM (die mit Zeile, Spalte, Wert wie Sie erwähnt) LOOP gehen und Ihre eigene interne Tabelle füllen (die wie die Excel-Tabelle aussieht)) entsprechend.

Verwandte Themen