事务码SMW0,选择二进制数据选项,点击图片左上角的查找或者按F8。然后选择包,进去之后,就可以加导入模板了。注意:当开发机第一次弄导入模板的时候,一定要在设置里维护MIME类型。
1.导入文件,读取文件名
FORM frm_file_data .
DATA: lv_rc TYPE i,
lv_filetable TYPE filetable.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = '选择文件'
file_filter = 'Excel file (*.XLS;*.XLSX;*.XLSM)|*.XLS;*.XLSX;*.XLSM|' "cl_gui_frontend_services=>filetype_excel
multiselection = space
CHANGING
file_table = lv_filetable
rc = lv_rc
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
IF sy-subrc = 0 AND lv_rc = 1.
READ TABLE lv_filetable INTO p_file INDEX 1.
ENDIF.
ENDFORM.
下载模板
FORM frm_download_excel_fromserver CHANGING e_error TYPE char255.
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 gv_temp '.XLSX' INTO ls_objnam.
SELECT SINGLE relid objid FROM wwwdata
INTO CORRESPONDING FIELDS OF lo_objdata
WHERE srtf2 = 0
AND relid = 'MI'
AND objid = gv_temp.
IF sy-subrc NE 0 OR lo_objdata-objid EQ space.
CONCATENATE '不存在模板' ls_objnam ',请检查' INTO e_error.
RETURN.
ENDIF.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = '销售订单导入模板.xlsx'
* mask = ',*.xls,*.xls.'
mode = 'S'
IMPORTING
filename = g_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
ls_destination = g_file.
IF sy-subrc = 0.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = lo_objdata
destination = ls_destination
IMPORTING
rc = li_rc.
IF li_rc NE 0.
CONCATENATE '下载模板' ls_objnam '失败,请检查!' INTO e_error.
ENDIF.
ENDIF.
ENDFORM. "sub_download_excel_fromserver
读取EXCLE文件中的内容
CALL FUNCTION 'ZALSM_EXCEL_TO_INTERNAL_TABLE' "读取excel文件中的内容
EXPORTING
filename = p_file
i_begin_col = '2'
i_begin_row = '6'
i_end_col = '100'
i_end_row = '99999'
TABLES
intern = lt_data
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.