• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
静心境
博客园    首页    新随笔    联系   管理    订阅  订阅

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.   

posted @ 2011-12-21 14:46  静心境  阅读(394)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3