EXCEL上传





 CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME                = F_NAME
      I_BEGIN_COL             = '1'
      I_BEGIN_ROW             = '1'
      I_END_COL               = '9'
      I_END_ROW               = '2000'
    TABLES
      INTERN                  = INTERN
    EXCEPTIONS
      INCONSISTENT_PARAMETERS = 1
      UPLOAD_OLE              = 2
      OTHERS                  = 3.
  IF SY-SUBRC <> 0.
    MESSAGE '上传文件到SAP错误!' TYPE 'E'.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
***判断是否重复序号
  DATA: TEMP_INTERN LIKE TABLE OF INTERN WITH HEADER LINE.
*  SORT INTERN BY VALUE.
*  DATA:LINE(4).
*  DATA:LINE1(4).
*  DESCRIBE TABLE INTERN LINES LINE.
*  DELETE ADJACENT DUPLICATES FROM INTERN COMPARING COL VALUE.
*  DESCRIBE TABLE INTERN LINES LINE1.
*  IF LINE <> LINE1.
*    MESSAGE 'Excel文件中有重复序号的行项,请检查!' TYPE 'E'.
*  ENDIF.
*  REFRESH TEMP_INTERN.
*
  DATA: TEMP_TYPE LIKE DD01V-DATATYPE.
  DATA: F_INDEX LIKE SY-TABIX.

  LOOP AT INTERN .
    F_INDEX = SY-TABIX.
    CASE INTERN-COL .
      WHEN '0001'.
        "判断是否是纯数字字串
        CALL FUNCTION 'NUMERIC_CHECK'
          EXPORTING
            STRING_IN  = INTERN-VALUE
          IMPORTING
            STRING_OUT = IT_OUT-NUM
            HTYPE      = TEMP_TYPE.
        IF TEMP_TYPE = 'CHAR'.
          MESSAGE 'Excel文件中有的序号不是数字,请检查!' TYPE 'E'.
        ENDIF.
        CLEAR TEMP_TYPE.
      WHEN '0002'.
        IT_OUT-ISBN1 = INTERN-VALUE .
      WHEN '0003'.
        IT_OUT-ZMAKTXL1 = INTERN-VALUE .
      WHEN '0004'.
        IT_OUT-ENDPR1 = INTERN-VALUE .
      WHEN '0005'.
        IT_OUT-ZPRESS1 = INTERN-VALUE .
      WHEN '0006'.
        IT_OUT-ZMEDIA1 = INTERN-VALUE .
      WHEN '0007'.
        IT_OUT-ZAUTHOR1 = INTERN-VALUE .
      WHEN '0008'.
        IT_OUT-ZPUBDAT1 = INTERN-VALUE .
      WHEN '0009'.
        IT_OUT-ZPRIDAT1 = INTERN-VALUE .
        APPEND IT_OUT.
        CLEAR : IT_OUT ,INTERN.
    ENDCASE.

  ENDLOOP.

原文地址:https://www.cnblogs.com/xiong/p/286995.html