ABAP 上传和下载excel模板的相关操作

首先做一个简单的excel模板,也就是新建一个空白工作表然后用代码添加内容。

 CREATE OBJECT g_excel 'EXCEL.APPLICATION'.
  CALL METHOD OF g_excel 'WORKBOOKS' = g_books.
  SET PROPERTY OF g_excel 'VISIBLE' = 1.
  CALL METHOD OF g_books 'ADD' = g_books.

  CALL METHOD OF g_books 'WORKSHEETS' = g_sheet
    EXPORTING
    #1 = 1.

  CALL METHOD OF g_sheet 'ACTIVATE'.
  g_sheet_n = g_sheet.

基本是固定格式,然后在单元格里写入数据

PERFORM frm_fill_cell USING:  1 1   '模板',

FORM frm_fill_cell USING  pr_row    TYPE i
                          pr_col    TYPE i
                          pr_value  TYPE any.

  CALL METHOD OF g_sheet_n 'CELLS' = g_cell
    EXPORTING
    #1 = pr_row
    #2 = pr_col.

  SET PROPERTY OF g_cell 'VALUE' = pr_value.
ENDFORM.                    "frm_fill_cell

SET PROPERTY OF g_excel 'VISIBLE' = 1.

这样一个简单的模板就做好了,只是没有调整格式。

然后我们在模板文件里面对数据进行修改,完成之后再上传回来。

DATA: l_file TYPE rlgrap-filename.

  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      file_name = l_file.

调用函数把数据放入处理表

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                = p_file
      i_begin_col             = begin_col
      i_begin_row             = begin_row 
      i_end_col               = end_col 
      i_end_row               = end_row
    TABLES
      intern                  = lt_load
    EXCEPTIONS
      inconsistent_parameters = 1
      upload_ole              = 2
      OTHERS                  = 3.

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

然后根据需要从lt_load里面把数据取出来。

 LOOP AT lt_load.

    IF lt_load-col LE end_col.
      ASSIGN COMPONENT lt_load-col OF STRUCTURE lt_data TO <fs_any>.
      MOVE lt_load-value TO <fs_any> .
    ENDIF.

    AT END OF row.
      APPEND lt_data. CLEAR lt_data.
    ENDAT.

  ENDLOOP.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值