1.
通过: CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' 处理
TYPES :BEGIN OF tecl_data,
werks TYPE ztmm_location-werks, "工厂
lgort_1 TYPE ztmm_location-lgort_1, "一级库位
lgort_d2 TYPE ztmm_location-lgort_d2, "二级库位描述
lgort_d3 TYPE ztmm_location-lgort_d3, "三级库位描述
lgort_shl TYPE ztmm_location-lgort_shl, "损耗率‰
active TYPE ztmm_location-active, "是否激活
lgort_d1 TYPE ztmm_location-lgort_d1, "一级库位描述
END OF tecl_data.
DATA lt_read TYPE TABLE OF ztmm_location .
DATA lw_read TYPE tecl_data.
DATA lw_read1 TYPE ztmm_location .
DATA: lw_flag TYPE i ,
lw_pxag TYPE i.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = '1'
i_begin_row = '2'
i_end_col = '20'
i_end_row = '9999'
TABLES
intern = gt_excel[]
EXCEPTIONS
inconsistent_parameters = 1
s_file_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE s000(zfi01) WITH '文件打开失败!' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
FIELD-SYMBOLS <fs_value>.
FIELD-SYMBOLS <fs_excel> LIKE gt_excel.
SORT gt_excel BY row col.
LOOP AT gt_excel ASSIGNING <fs_excel>.
ASSIGN COMPONENT <fs_excel>-col OF STRUCTURE lw_read TO <fs_value>.
<fs_value> = <fs_excel>-value.
AT END OF row.
IF lw_read-lgort_1 IS NOT INITIAL .
SELECT SINGLE lgobe
FROM t001l
INTO lw_read-lgort_d1
WHERE werks = lw_read-werks
AND lgort = lw_read-lgort_1.
ENDIF .
TRANSLATE lw_read-active TO UPPER CASE.
MOVE-CORRESPONDING lw_read TO lw_read1 .
APPEND lw_read1 TO lt_read .
CLEAR lw_read .
CLEAR lw_read .
ENDAT.
ENDLOOP.
SORT lt_read BY werks lgort_1 lgort_d2 lgort_d3.
DELETE ADJACENT DUPLICATES FROM lt_read COMPARING ALL FIELDS .
IF lt_read IS NOT INITIAL .
MODIFY ztmm_location FROM TABLE lt_read .
IF sy-subrc = 0 .
WRITE:'数据导入成功'.
ENDIF .
ENDIF .
2. 通过:CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' 处理
TYPES : BEGIN OF typ_excel,
werks TYPE marc-werks,
matnr TYPE mara-matnr,
zcpxl TYPE ztsd_cpxl-zcpxl,
msg TYPE bapi_msg,"消息
END OF typ_excel.
DATA :gt_excel TYPE TABLE OF typ_excel,
gw_excel TYPE typ_excel.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = 'X' "X表示带抬头行的EXCEL的抬头行不传进内表,否则EXCEL不要带抬头
i_tab_raw_data = i_raw " WORK TABLE
i_filename = p_file
TABLES
i_tab_converted_data = gt_excel "ACTUAL DATA
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE '无法上载数据,请检查EXCEL文件' TYPE 'S' DISPLAY LIKE 'E'.
STOP.
ENDIF.