ALSM_EXCEL_TO_INTERNAL_TABLE 上传EXCEL示例


 

要把图中的数据传到内表OUTTAB中,源代码如下,用到的函数是ALSM_EXCEL_TO_INTERNAL_TABLE

 

DATA: filetab TYPE filetable WITH HEADER LINE .

DATA: rc TYPE i.

DATA: outtab TYPE TABLE OF mara WITH HEADER LINE  .

DATA: itab TYPE TABLE OF alsmex_tabline WITH HEADER LINE.

 

 

DATA:g_file TYPE rlgrap-filename.

 

FIELD-SYMBOLS: <fs>.

 

PARAMETERS: p_file TYPE string.

 

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  CALL METHOD cl_gui_frontend_services=>file_open_dialog

    EXPORTING

      default_filename = p_file

    CHANGING

      rc               = rc

      file_table       = filetab[].

 

  READ TABLE  filetab INDEX  1.

 

  IF sy-subrc EQ 0.

    p_file = filetab-filename.

  ENDIF.

 

 

START-OF-SELECTION.

  g_file = p_file.  "注意两个文件用于不同的函数,所以类型不同

 

  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

    EXPORTING

      filename    = g_file

      i_begin_col = 1

      i_begin_row = 1

      i_end_col   = 255

      i_end_row   = 65536

    TABLES

      intern      = itab[].

 

  DELETE itab WHERE row = 1.  "删除字段名行

  

  LOOP AT itab.

    

    ON CHANGE OF itab-row.

      IF sy-tabix NE 1.

        APPEND outtab.

        CLEAR outtab.

      ENDIF.

    ENDON.

 

    ASSIGN COMPONENT itab-col OF STRUCTURE outtab TO <fs>.         "动态方法将值传到相应的内表

    <fs> = itab-value.

 

  ENDLOOP.

 

  APPEND outtab.   "这句不要忘记,要把最后一条APPEND到内表中

 

结果如下



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值