定义屏幕:
PARAMETERS p_file TYPE localfile DEFAULT 'C:\'.
开始事件:
START-OF-SELECTION.
PERFORM update_data."EXCEL 上传
子程序:
FORM UPDATE_DATA .
DATA lt_excel TYPE TABLE OF alsmex_tabline WITH HEADER LINE.
DATA l_index LIKE sy-tabix.
CLEAR:lt_excel[],lt_excel,l_index.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = '1'
i_begin_row = '2'
i_end_col = '50'
i_end_row = '50000'
TABLES
intern = lt_excel
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
FIELD-SYMBOLS : <fs>.
FIELD-SYMBOLS : <str>.
DATA exception TYPE REF TO cx_root.
SORT lt_excel BY row col. ":行号 列
IF lt_excel[] IS INITIAL.
MESSAGE i006.
ENDIF.
ASSIGN gs_0050 TO <str>." 上传结构(内表)
*ASSIGN 用法可参考https://www.cnblogs.com/jiangzhengjun/p/4293262.html#_Toc411766090
TRY."异常捕获
LOOP AT lt_excel.
MOVE lt_excel-col TO l_index.
ASSIGN COMPONENT l_index OF STRUCTURE <str> TO <fs>.
MOVE lt_excel-value TO <fs>.
AT END OF row.
MOVE-CORRESPONDING <str> TO gt_alv."gt_alv 定义的是内表
APPEND gt_alv.
CLEAR: gt_alv,<str>.
ENDAT.
ENDLOOP.
CATCH cx_root INTO exception.
MESSAGE e008.
ENDTRY.
lt_excel: