*&---------------------------------------------------------------------*
*& FORM FRM_UPDATA_EXCEL
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM FRM_UPDATA_EXCEL .
IF P_FILE IS INITIAL.
MESSAGE '请输入导入文件的路径' TYPE 'I'.
LEAVE TO TRANSACTION SY-TCODE.
ENDIF. DATA: BEGIN OF I_EXCEL OCCURS .
INCLUDE STRUCTURE ALSMEX_TABLINE.
DATA: END OF I_EXCEL. DATA: L_ANSWER() TYPE C,
L_COLUMN TYPE I. FIELD-SYMBOLS: <FS>.
DATA: L_PATHNAME LIKE RLGRAP-FILENAME.
DATA:
C_BEGIN_ROW TYPE I VALUE , "Beginning row of excel file
C_BEGIN_COL TYPE I VALUE , "Beginning column of excel file
C_END_ROW TYPE I VALUE , "Ending row of excel file
C_END_COL TYPE I VALUE . "Ending column of excel file MOVE P_FILE TO L_PATHNAME. CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = L_PATHNAME
I_BEGIN_COL = C_BEGIN_COL
I_BEGIN_ROW = C_BEGIN_ROW
I_END_COL = C_END_COL
I_END_ROW = C_END_ROW
TABLES
INTERN = I_EXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS =
UPLOAD_OLE =
OTHERS = .
IF SY-SUBRC <> .
MESSAGE '打开EXCEL文件出错!' TYPE 'E'.
ELSE.
IF I_EXCEL[] IS INITIAL.
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
DIAGNOSETEXT1 = '数据为空!'
TEXTLINE1 = '请检查文件是否正确'
TITEL = '警告'
IMPORTING
ANSWER = L_ANSWER.
LEAVE TO TRANSACTION SY-TCODE.
ELSE. DELETE I_EXCEL WHERE ROW = ''.
SORT I_EXCEL BY ROW COL.
LOOP AT I_EXCEL.
MOVE I_EXCEL-COL TO L_COLUMN.
ASSIGN COMPONENT L_COLUMN OF STRUCTURE IW_ANLA TO <FS>.
MOVE I_EXCEL-VALUE TO <FS>.
AT END OF ROW.
APPEND IW_ANLA TO IT_ANLA.
CLEAR IW_ANLA.
ENDAT.
ENDLOOP.
ENDIF.
ENDIF. ENDFORM. "FRM_UPDATA_EXCEL