二维码

ABAP开发Execl文件导入程序模板

Twilight发表于 2015-03-28 16:14Twilight 最后回复于 2015-03-28 16:14 [复制链接] 2770 0

文件导入程序一般步骤:
  • 获取文件地址
  • 读取文件数据到内表


以下是Dialog中execl文件导入例子:
导入界面:
ececl_import.jpg

相关代码:
  1. DATA: p_filename   TYPE  rlgrap-filename.
复制代码

  1.   CASE ok_code.
  2.     WHEN 'LIUL'.    "浏览
  3.       PERFORM frm_get_file USING p_filename.
  4.     WHEN 'PLDR'.  "批量导入
  5.       PERFORM frm_upload_file USING p_filename.
  6.   ENDCASE.
复制代码


PERFORM frm_get_file USING p_filename.
  1. *&---------------------------------------------------------------------*
  2. *&      Form  frm_get_file
  3. *&---------------------------------------------------------------------*
  4. *       text
  5. *----------------------------------------------------------------------*
  6. *      -->P_RLGRAP_FILENAME  text
  7. *----------------------------------------------------------------------*
  8. FORM frm_get_file  USING    p_filename TYPE  rlgrap-filename.
  9.   CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
  10.     EXPORTING
  11.       program_name  = syst-repid
  12.       dynpro_number = syst-dynnr
  13.       field_name    = ' '
  14.       static        = 'X'
  15.       mask          = 'X'
  16.     CHANGING
  17.       file_name     = p_filename
  18.     EXCEPTIONS
  19.       mask_too_long = 1
  20.       OTHERS        = 2.
  21.   IF sy-subrc <> 0.
  22.     MESSAGE s208(00) DISPLAY LIKE 'E' WITH text-001.
  23.     EXIT.
  24.   ENDIF.
  25.   PERFORM frm_check_file_name USING  p_filename.
  26. ENDFORM.                    " frm_get_file
复制代码


PERFORM frm_check_file_name USING  p_filename.
  1. *&---------------------------------------------------------------------*
  2. *&      Form  frm_check_file_name
  3. *&---------------------------------------------------------------------*
  4. *       text
  5. *----------------------------------------------------------------------*
  6. *      -->P_P_FILENAME  text
  7. *----------------------------------------------------------------------*
  8. FORM frm_check_file_name  USING    p_filename TYPE  rlgrap-filename.
  9. **检查文件地址合法性
  10.   DATA: w_len1 TYPE i VALUE 0,
  11.         w_len2 TYPE i VALUE 0,
  12.         w_len3 TYPE i VALUE 0.

  13.   w_len1 = STRLEN( p_filename ).
  14.   w_len2 = w_len1 - 3.
  15.   w_len3 = w_len1 - 4.
  16.   IF w_len2 <= 0 .
  17.     MESSAGE s208(00) DISPLAY LIKE 'E' WITH text-001.
  18.   ELSE.
  19.     IF  p_filename+w_len2 <> 'XLS'
  20.     AND p_filename+w_len2 <> 'xls'
  21.     AND p_filename+w_len3 <> 'XLSX'
  22.     AND p_filename+w_len3 <> 'xlsx'.
  23.       MESSAGE s208(00) DISPLAY LIKE 'E' WITH text-002.
  24.       EXIT.
  25.     ENDIF.
  26.   ENDIF.
  27. ENDFORM.                    " frm_check_file_name
复制代码


PS:text-001:路径错误,请检查!
text-002:只支持EXCEL格式文件的导入!

读取文件到内表可参考:abap将execl文件中的数据转化到内表中
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表