EXCEL导入数据
*----------------------------------------------------------------------*
* SELECTION-SCREEN 选择屏幕
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TITLE1 .
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:\' obligatory. "上载选择路径
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
TITLE1 = '选择上载文件'.
*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM GET_DATA_FROM_EXCEL. "从EXCEL中读出数据汇总到内表中
call SCREEN 100.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN 选择帮助
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM FRM_SQDH_F4HELP USING 'P_FILE'.
*&---------------------------------------------------------------------*
*& Form FRM_SQDH_F4HELP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0037 text
*----------------------------------------------------------------------*
FORM FRM_SQDH_F4HELP USING VALUE(P_0037).
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
MASK = ',EXCEL文件 (*.xls;*.xlsx),*.XLSX;*.XLS;'
MODE = 'O'
TITLE = '选取Excel文件'
IMPORTING
FILENAME = P_FILE
EXCEPTIONS
INV_WINSYS = 01
NO_BATCH = 02
SELECTION_CANCEL = 03
SELECTION_ERROR = 04.
* IF SY-SUBRC = 0.
* FILENAME = TMP_FILENAME.
* ENDIF.
ENDFORM. " FRM_SQDH_F4HELP
*&---------------------------------------------------------------------*
*& Form GET_DATA_FROM_EXCEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_FROM_EXCEL .
DATA: FT_INTERN TYPE TABLE OF ALSMEX_TABLINE WITH HEADER LINE,
FT_BJ TYPE TABLE OF ALSMEX_TABLINE WITH HEADER LINE,
WA_INTERN TYPE ALSMEX_TABLINE.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = 1
I_BEGIN_ROW = 2
I_END_COL = 7
I_END_ROW = 1200
TABLES
INTERN = FT_INTERN
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE 'EXCEL导入失败' TYPE 'E'.
ELSE.
LOOP AT FT_INTERN INTO WA_INTERN.
IF WA_INTERN-COL = '0001'."版本
GT_TAB-VERSN = WA_INTERN-VALUE.
ENDIF.
IF WA_INTERN-COL = '0002'."起始期间
GT_TAB-PERBL_L = WA_INTERN-VALUE.
ENDIF.
IF WA_INTERN-COL = '0003'."结束期间
GT_TAB-PERBL_H = WA_INTERN-VALUE.
ENDIF.
IF WA_INTERN-COL = '0004'."年份
GT_TAB-GJAHR = WA_INTERN-VALUE.
ENDIF.
IF WA_INTERN-COL = '0005'."WBS元素
GT_TAB-POSID = WA_INTERN-VALUE.
ENDIF.
IF WA_INTERN-COL = '0006'."成本要素
GT_TAB-KSTAR = WA_INTERN-VALUE.
ENDIF.
IF WA_INTERN-COL = '0007'."金额
GT_TAB-WKFXX = WA_INTERN-VALUE.
ENDIF.
AT END OF ROW.
APPEND GT_TAB.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM.
浙公网安备 33010602011771号