2020.02.24 【ABAP随笔】- EXCEL常见操作笔记 1

EXCEL常见操作笔记 1

1.    Excel模板下载

TCODE:SMW0

创建excel模板(其他模板也可以)

我们选择二进制数据

选择在哪个包里面创建模板

 

点击创建:

备注:如果出现以下错误( 无分配给对象 c:\ 的 MINE类型)

 则需要进行以下操作:保存。

 

 

 

 这样就可以成功创建了。

 

在report程序中代码:

TABLES:sscrfields.
SELECTION-SCREEN: FUNCTION KEY 1."在标题行
SELECTION-SCREEN PUSHBUTTON 02(10) TEXT-001 USER-COMMAND pb1."在select界面
INITIALIZATION.
  sscrfields-functxt_01 = '下载模板'.

AT SELECTION-SCREEN.
  CASE sscrfields-ucomm.
    WHEN 'FC01' OR 'PB1'.
CALL METHOD zcl_document_jxzhu=>download_template_to_frontend
        EXPORTING
          name_of_template = '物料主数据客制表'
*         iv_relid         = 'MI'
          iv_objid         = 'ZMMT001'
*        IMPORTING
*         rv_filepath      =
        EXCEPTIONS
          download_error   = 1
          OTHERS = 2.
      IF sy-subrc <> 0.
*       Implement suitable error handling here
      ENDIF.
    WHEN OTHERS.
  ENDCASE.

其中zcl_document_jxzhu=>download_template_to_frontend的代码为:

同学们可以直接创建SE24类。方便以后可以直接调用。

METHOD download_template_to_frontend.
    DATA: ls_key         TYPE wwwdatatab,
          ls_wwwdata     TYPE wwwdata,
          lv_filename    TYPE string,
          lv_path        TYPE string,
          lv_fullpath    TYPE string,
          lv_extension   TYPE c LENGTH 100,
          lv_user_action TYPE i.
    DATA: lv_offset TYPE i,
          lv_length TYPE i.
    CLEAR rv_filepath.
    IF iv_relid IS INITIAL.
      SELECT SINGLE relid objid srtf2 checkout checknew chname tdate ttime text
        INTO CORRESPONDING FIELDS OF ls_wwwdata
        FROM wwwdata
        WHERE objid = iv_objid.
      iv_relid = ls_wwwdata-relid.
    ELSE.
      SELECT SINGLE relid objid srtf2 checkout checknew chname tdate ttime text
        INTO CORRESPONDING FIELDS OF ls_wwwdata
        FROM wwwdata
        WHERE relid = iv_relid AND objid = iv_objid.
    ENDIF.

*window title
    DATA(iv_window_title) = |Please choose the save filepath !|.
*file extension
    CALL FUNCTION 'WWWPARAMS_READ'
      EXPORTING
        relid            = ls_wwwdata-relid
        objid            = ls_wwwdata-objid
        name             = 'fileextension' "c_extension of include LSHTMTOP
      IMPORTING
        value            = lv_extension
      EXCEPTIONS
        entry_not_exists = 1
        OTHERS           = 2.
    IF sy-subrc <> 0.
    ENDIF.
    DATA iv_default_extension TYPE string.
    iv_default_extension = lv_extension.
*file filter
    DATA(iv_file_filter) = '(*' && iv_default_extension && ')|*' && iv_default_extension.
*file name
    CONCATENATE name_of_template '-' sy-datum+0(8) sy-timlo+0(4)
      INTO DATA(iv_default_file_name).
    IF iv_default_file_name IS INITIAL.
      iv_default_file_name = ls_wwwdata-text.
    ELSE.
      WHILE iv_default_file_name CA './'.
        lv_offset = sy-fdpos.
        lv_length = lv_offset.
        lv_offset = lv_offset + 1.
        iv_default_file_name = iv_default_file_name+0(lv_length) && iv_default_file_name+lv_offset.
      ENDWHILE.
    ENDIF.
    ls_key-relid = iv_relid.
    ls_key-objid = iv_objid.
*File path of selection
    CALL METHOD cl_gui_frontend_services=>file_save_dialog
      EXPORTING
        window_title         = iv_window_title
        default_extension    = iv_default_extension
        default_file_name    = iv_default_file_name
        file_filter          = iv_file_filter
      CHANGING
        filename             = lv_filename
        path                 = lv_path
        fullpath             = lv_fullpath
        user_action          = lv_user_action
      EXCEPTIONS
        cntl_error           = 1
        error_no_gui         = 2
        not_supported_by_gui = 3
        OTHERS               = 4.
    IF sy-subrc <> 0.
* happen sth wrong
      DATA(ev_rc) = sy-subrc.
    ENDIF.
* user action ( exit or cancal )
    IF lv_user_action <> 0.
      ev_rc = lv_user_action.
    ENDIF.

    IF ev_rc <> 0 .
      RAISE download_error.
    ENDIF.

    rv_filepath = lv_fullpath.

*Download web object
    DATA: lv_destination TYPE rlgrap-filename.
    lv_destination = rv_filepath.
    CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
      EXPORTING
        key         = ls_key
        destination = lv_destination
      IMPORTING
        rc          = ev_rc
      CHANGING
        temp        = lv_destination.
    IF ev_rc <> 0 .
      RAISE download_error.
    ENDIF.
  ENDMETHOD.

 

 效果:

- Tab Zhu 不念过去 不畏将来

 

 

SELECTION-SCREENFUNCTION KEY 1."在标题行
SELECTION-SCREEN PUSHBUTTON 02(10TEXT-001 USER-COMMAND pb1."在select界面

posted @ 2020-02-25 00:14  TAB_Zhu  阅读(1010)  评论(0编辑  收藏  举报