1 *&---------------------------------------------------------------------* 2 *& FORM FRM_UPDATA_EXCEL 3 *&---------------------------------------------------------------------* 4 * TEXT 5 *----------------------------------------------------------------------* 6 * --> P1 TEXT 7 * <-- P2 TEXT 8 *----------------------------------------------------------------------* 9 FORM FRM_UPDATA_EXCEL . 10 IF P_FILE IS INITIAL. 11 MESSAGE \'请输入导入文件的路径\' TYPE \'I\'. 12 LEAVE TO TRANSACTION SY-TCODE. 13 ENDIF. 14 15 DATA: BEGIN OF I_EXCEL OCCURS 0. 16 INCLUDE STRUCTURE ALSMEX_TABLINE. 17 DATA: END OF I_EXCEL. 18 19 DATA: L_ANSWER(1) TYPE C, 20 L_COLUMN TYPE I. 21 22 FIELD-SYMBOLS: <FS>. 23 DATA: L_PATHNAME LIKE RLGRAP-FILENAME. 24 DATA: 25 C_BEGIN_ROW TYPE I VALUE 3, "Beginning row of excel file 26 C_BEGIN_COL TYPE I VALUE 1, "Beginning column of excel file 27 C_END_ROW TYPE I VALUE 10000, "Ending row of excel file 28 C_END_COL TYPE I VALUE 4. "Ending column of excel file 29 30 MOVE P_FILE TO L_PATHNAME. 31 32 CALL FUNCTION \'ALSM_EXCEL_TO_INTERNAL_TABLE\' 33 EXPORTING 34 FILENAME = L_PATHNAME 35 I_BEGIN_COL = C_BEGIN_COL 36 I_BEGIN_ROW = C_BEGIN_ROW 37 I_END_COL = C_END_COL 38 I_END_ROW = C_END_ROW 39 TABLES 40 INTERN = I_EXCEL 41 EXCEPTIONS 42 INCONSISTENT_PARAMETERS = 1 43 UPLOAD_OLE = 2 44 OTHERS = 3. 45 IF SY-SUBRC <> 0. 46 MESSAGE \'打开EXCEL文件出错!\' TYPE \'E\'. 47 ELSE. 48 IF I_EXCEL[] IS INITIAL. 49 CALL FUNCTION \'POPUP_TO_CONFIRM_WITH_MESSAGE\' 50 EXPORTING 51 DIAGNOSETEXT1 = \'数据为空!\' 52 TEXTLINE1 = \'请检查文件是否正确\' 53 TITEL = \'警告\' 54 IMPORTING 55 ANSWER = L_ANSWER. 56 LEAVE TO TRANSACTION SY-TCODE. 57 ELSE. 58 59 DELETE I_EXCEL WHERE ROW = \'0001\'. 60 SORT I_EXCEL BY ROW COL. 61 LOOP AT I_EXCEL. 62 MOVE I_EXCEL-COL TO L_COLUMN. 63 ASSIGN COMPONENT L_COLUMN OF STRUCTURE IW_ANLA TO <FS>. 64 MOVE I_EXCEL-VALUE TO <FS>. 65 AT END OF ROW. 66 APPEND IW_ANLA TO IT_ANLA. 67 CLEAR IW_ANLA. 68 ENDAT. 69 ENDLOOP. 70 ENDIF. 71 ENDIF. 72 73 ENDFORM. "FRM_UPDATA_EXCEL