EXCEL文件上传

方法一:

 

CALL FUNCTION ‘F4_FILENAME’
EXPORTING
field_name = ‘P_FILE’
IMPORTING
file_name = p_file.

 

CALL FUNCTION ‘TEXT_CONVERT_XLS_TO_SAP’
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = ‘X’
i_tab_raw_data = it_raw ” WORK TABLE
i_filename = p_file
TABLES
i_tab_converted_data = it_datatab[] “ACTUAL DATA
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.

IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

 

优点: 可以直接转换成内表格式,不需要再次填充内表.


方法二:

 

   DATA: l_rc TYPE i,
        l_filetable TYPE filetable.

  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = '请选择导入文件'
      file_filter             = '文本文件(.txt)|*.txt|EXCEL文件(.xls)|*.xls'
      multiselection          = 'X'
    CHANGING
      file_table              = l_filetable
      rc                      = l_rc
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      not_supported_by_gui    = 4
      OTHERS                  = 5.
  IF sy-subrc  = 0 AND l_rc  = 1.
    READ TABLE l_filetable INTO p_infile INDEX 1.
  ENDIF.

 

call function ‘ALSM_EXCEL_TO_INTERNAL_TABLE’
exporting
filename = p_infile
i_begin_col = ‘1′
i_begin_row = ‘2′ “Do not require headings
i_end_col = ‘14′
i_end_row = ‘31′
tables
intern = itab
exceptions
inconsistent_parameters = 1
upload_ole = 2
others = 3.
if sy-subrc 0.
message e010(zz) with text-001. “Problem uploading Excel Spreadsheet
endif.

 

  LOOP AT t_tab.
    ASSIGN COMPONENT t_tab-col OF STRUCTURE t_mara TO <fs_mara>.
    WRITE t_tab-value TO <fs_mara>.
    AT END OF row.
     APPEND t_mara.
    ENDAT.
  ENDLOOP.

特点: 按照行列顺序读取,内表ITAB格式为为行,列,值.使用时需要再次卦填充内表.红色代码可以地动态填充内表...推荐.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值