首先想要在SAP端创建这个模板
事务码:smw0,选择二进制数据
然后输入包名字,这里我自己写在本地了
进来后选择 “新建” 输入对象名称
导入后保存激活即可
下面是所有代码
FORM frm_download_excel1 .
DATA: lo_objdata LIKE wwwdatatab,
lo_mime LIKE w3mime,
ls_destination LIKE rlgrap-filename,
ls_objnam TYPE string,
li_rc LIKE sy-subrc,
ls_errtxt TYPE string.
DATA: lv_path TYPE string,
lv_fullpath TYPE string,
lv_objid TYPE wwwdatatab-objid,
lv_filename TYPE string,
p_filename(128).
CONCATENATE TEXT-004 sy-datum '_' sy-uzeit INTO lv_filename."文件名字
lv_objid = 'ZTEST_6E'."模板 这里一定是SWM0里上传时候写的对象名称
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
default_extension = 'XLSX'
default_file_name = lv_filename
CHANGING
filename = lv_filename
path = lv_path
fullpath = lv_fullpath
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF lv_fullpath = ''.
RETURN.
ENDIF.
IF sy-subrc = 0.
p_filename = lv_fullpath.
CONCATENATE p_filename 'X' INTO p_filename.
PERFORM frm_download_excel_fromserver1 USING lv_objid p_filename.
ENDIF.
ENDFORM. "frm_download_template
FORM frm_download_excel_fromserver1 USING p_objid LIKE wwwdatatab-objid
p_dest.
DATA: lo_objdata LIKE wwwdatatab,
lo_mime LIKE w3mime,
ls_destination LIKE rlgrap-filename,
ls_objnam TYPE string,
li_rc LIKE sy-subrc,
ls_errtxt TYPE string.
CONCATENATE p_objid '.XLSX' INTO ls_objnam.
CONDENSE ls_objnam NO-GAPS.
SELECT SINGLE relid objid FROM wwwdata
INTO CORRESPONDING FIELDS OF lo_objdata
WHERE srtf2 = 0
AND relid = 'MI'
AND objid = p_objid.
IF sy-subrc NE 0 OR lo_objdata-objid EQ space.
CONCATENATE '模板文件' ls_objnam '不存在,请用TCODE:SMW0进行加载' INTO ls_errtxt.
WRITE: ls_errtxt.
ENDIF.
ls_destination = p_dest.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = lo_objdata
destination = ls_destination
IMPORTING
rc = li_rc.
IF li_rc NE 0.
CONCATENATE TEXT-005 ls_objnam '下载失败' INTO ls_errtxt.
WRITE: ls_errtxt.
ENDIF.
ENDFORM.