您的位置:首页 > 其它

Excel文件上传

2016-05-18 16:50 183 查看
*&---------------------------------------------------------------------*
*&      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 0.
INCLUDE STRUCTURE ALSMEX_TABLINE.
DATA: END OF I_EXCEL.

DATA: L_ANSWER(1) TYPE C,
L_COLUMN TYPE I.

FIELD-SYMBOLS: <FS>.
DATA: L_PATHNAME LIKE RLGRAP-FILENAME.
DATA:
C_BEGIN_ROW TYPE I VALUE 3,       "Beginning row of excel file
C_BEGIN_COL TYPE I VALUE 1,       "Beginning column of excel file
C_END_ROW   TYPE I VALUE 10000,   "Ending row of excel file
C_END_COL   TYPE I VALUE 4.      "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 = 1
UPLOAD_OLE              = 2
OTHERS                  = 3.
IF SY-SUBRC <> 0.
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 = '0001'.
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: