1.Tcode: SMW0 ,上传模板 ,创建的模板存储类型
2. 选择新建,输入对象名称和描述,导入自己的模板
3. 保存到对应的传入依赖就可以了
4.程序中下载模板,调用函数 (ZJH_DOWNLOAD_FILE_SMW0)
DATA LD_STR TYPE STRING.
CALL FUNCTION 'ZJH_DOWNLOAD_FILE_SMW0' "模板输出
EXPORTING
IM_OBJNAME = 'ZSTUDENT' " 传输模板的名字
IM_FILENAME_DEF = '学生信息导入模板.xlsx' " 下载好的名字
* IM_FILTER_STR =
IMPORTING
EX_FULLNAME = LD_STR.
这是另一种写法
DATA: LS_WWWDATATAB LIKE WWWDATATAB,
LT_MIME LIKE W3MIME OCCURS 10,
LV_FILENAME TYPE STRING,
LV_PATH TYPE STRING,
LV_FULLPATH TYPE STRING,
WINDOW_TITLE TYPE STRING,
DEFAULT_FILE_NAME TYPE STRING.
DATA: LV_DESTINATION TYPE RLGRAP-FILENAME,
LV_SUBRC TYPE SY-SUBRC.
CLEAR: LS_WWWDATATAB,LT_MIME[],LV_FILENAME,LV_PATH,LV_FULLPATH,
WINDOW_TITLE,DEFAULT_FILE_NAME.
LS_WWWDATATAB-RELID = 'MI'. "IMPORT/EXPORT 数据表中的区域
LS_WWWDATATAB-OBJID = 'object name'. "SMW0 WEB RFC的二进数据 对像名称
LS_WWWDATATAB-TEXT = '***导入模板'. "WWWDATA 对象的短文本
WINDOW_TITLE = '下载导入模板'.
DEFAULT_FILE_NAME = '***导入模板'.
CALL FUNCTION 'WWWDATA_IMPORT' "#EC *
EXPORTING
KEY = LS_WWWDATATAB
TABLES
MIME = LT_MIME
EXCEPTIONS
WRONG_OBJECT_TYPE = 1
IMPORT_ERROR = 2
OTHERS = 3.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = WINDOW_TITLE
DEFAULT_EXTENSION = 'xlsx'
DEFAULT_FILE_NAME = DEFAULT_FILE_NAME
* file_filter = 'EXCEL'
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 SY-SUBRC <> 0.
STOP.
ENDIF.
IF LV_FULLPATH IS NOT INITIAL.
LV_DESTINATION = LV_FULLPATH.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
KEY = LS_WWWDATATAB
DESTINATION = LV_DESTINATION
IMPORTING
RC = LV_SUBRC.
IF LV_SUBRC <> 0.
MESSAGE '下载失败' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDIF.
下载模板还有一种写法,这是直接下载的,提前选一个下载路径
DATA: ls_objdata LIKE wwwdatatab.
DATA: lv_file TYPE rlgrap-filename.
DATA: lv_rc TYPE sy-subrc.
DATA: lv_copy_rows TYPE i.
SELECT SINGLE relid objid
INTO CORRESPONDING FIELDS OF ls_objdata
FROM wwwdata
WHERE srtf2 EQ 0
AND relid = 'MI'
AND objid = p_objid.
IF sy-subrc NE 0 OR ls_objdata-objid EQ space.
MESSAGE e042 WITH p_objid INTO p_message.
RETURN.
ENDIF.
CONCATENATE p_file '\' 'excel1' '.xlsx'
INTO lv_file.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = ls_objdata
destination = lv_file
IMPORTING
rc = lv_rc.
IF lv_rc NE 0.
MESSAGE e043 WITH p_objid INTO p_message.
RETURN.
ENDIF.
5. 上传本地模板内容(函数1:'WS_FILENAME_GET',函数2: 'ALSM_EXCEL_TO_INTERNAL_TABLE' )
函数1:'WS_FILENAME_GET',
函数2: 'ALSM_EXCEL_TO_INTERNAL_TABLE'
DATA: ZXUANZE TYPE CHAR50.
DATA: P_FIELD TYPE RLGRAP-FILENAME.
DATA WX_01 LIKE TABLE OF ZSTU.
DATA WS_01 LIKE ZSTU.
DATA:I_TAB TYPE TABLE OF ALSMEX_TABLINE,
WA_TAB TYPE ALSMEX_TABLINE.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = ' '
DEF_PATH = ' '
MASK = '.*.*.*.*'
MODE = 'S'
TITLE = 'O'
IMPORTING
FILENAME = ZXUANZE
* RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
P_FIELD = ZXUANZE.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FIELD
I_BEGIN_COL = 1
I_BEGIN_ROW = 2
I_END_COL = 4
I_END_ROW = 20
TABLES
INTERN = I_TAB[]
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
LOOP AT I_TAB INTO WA_TAB.
CASE WA_TAB-COL.
WHEN '0001'.
WS_01-ZXUEHAO = WA_TAB-VALUE.
WHEN '0002'.
WS_01-ZNAME = WA_TAB-VALUE.
WHEN '0003'.
WS_01-ZBANJI = WA_TAB-VALUE.
WHEN '0004'.
WS_01-ZMIAOSU = WA_TAB-VALUE.
ENDCASE.
AT END OF ROW.
APPEND WS_01 TO WX_01.
CLEAR WS_01.
ENDAT.
ENDLOOP.