ABAP 读取EXCEL数据到内表

ABAP 读取EXCEL 到内表

本文实例演示
使用到的函数
WS_FILENAME_GET —显示文件路径
TEXT_CONVERT_XLS_TO_SAP —读取excl数据到内表

以公司工厂为例子

tables:t001,t001w.
types:begin of ty_exl,
        bukrs like t001-bukrs, "公司代码
        werks like t001w-werks, "工厂
      end of ty_exl.

data gt_exl type STANDARD TABLE OF ty_exl WITH HEADER LINE.

*SCREEN
parameters p_path type c length 200.

at selection-screen on value-request for p_path."弹出对话框
  perform get_path .
 
start-of-selection .
  perform get_data .   "取数
  perform display.
  
end-of-selection .

WS_FILENAME_GET

form get_path.
 call function 'WS_FILENAME_GET'
    exporting
*     DEF_FILENAME     = ' '
*     DEF_PATH         = ' '
      mask             = ',EXCEL.XLS,*.XLS,TXT,*.TXT,EXCEL.XLSX,*.XLSX.'
      mode             = 'O'
*     TITLE            = ' '
    importing
      filename         = p_path
*     RC               =
    exceptions
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      others           = 5.
  if sy-subrc <> 0.
* Implement suitable error handling here
  endif.
  enfform.

TEXT_CONVERT_XLS_TO_SAP

form get_data .

  data lt_raw type truxs_t_text_data .
  data lv_path type rlgrap-filename .
  data lt_line type c value 1.
  lv_path = p_path .

  call function 'TEXT_CONVERT_XLS_TO_SAP'
    exporting
      i_field_seperator    = 'X'
     I_LINE_HEADER        = lt_line "第一行不读
      i_tab_raw_data       = lt_raw "必输参数
      i_filename           = lv_path "路径
    tables
      i_tab_converted_data = gt_exl[] "读取EXCEL数据到内表
    exceptions
      conversion_failed    = 1
      others               = 2.
  if sy-subrc <> 0.
* Implement suitable error handling here
  endif.
endform.

输出内表内容。

form display .
LOOP AT gt_exl.
  WRITE: / gt_exl-bukrs, gt_exl-werks.
  ENDLOOP.
endform.

实际效果

ABAP 读取EXCEL数据到内表_第1张图片
ABAP 读取EXCEL数据到内表_第2张图片
ABAP 读取EXCEL数据到内表_第3张图片

如有雷同,必属巧合,请联系我,交流学习,学习笔记!感谢!

你可能感兴趣的:(ABAP)