模板下载函数&&excel上载函数
留存一个批导模板下载的函数
使用方式如下
CALL FUNCTION 'ZFM_DOWN_EXCEL'
EXPORTING
i_file = p_file
i_name = 'ZSDC016'.
I_FILE TYPE LOCALFILE
I_NAME TYPE W3OBJID
FUNCTION zfm_down_excel.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" REFERENCE(I_FILE) TYPE LOCALFILE
*" VALUE(I_NAME) TYPE W3OBJID
*"----------------------------------------------------------------------
DATA: lv_objdata LIKE wwwdatatab,
lv_obj_name LIKE wwwdatatab-objid,
lv_destination LIKE rlgrap-filename,
lv_objid LIKE sy-repid,
lv_subrc LIKE sy-subrc.
DATA:l_ret TYPE abap_bool,
lv_answer.
DATA:lv_file TYPE string.
DATA:p_filepath TYPE string.
DATA:g_excel TYPE ole2_object,
g_applica TYPE ole2_object,
g_sheet TYPE ole2_object,
g_cell TYPE ole2_object,
g_workbook TYPE ole2_object.
DATA: lw_file TYPE localfile.
MOVE i_file TO lv_file.
CALL METHOD cl_gui_frontend_services=>file_exist
EXPORTING
file = lv_file
RECEIVING
result = l_ret
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
wrong_parameter = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
EXIT.
ENDIF.
IF l_ret EQ 'X'.
* 模版已存在,是否覆盖
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
text_question = '模版已存在,是否覆盖?'
text_button_1 = '是'(001)
text_button_2 = '否'(002)
IMPORTING
answer = lv_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
IF lv_answer EQ 'A'. "取消
EXIT.
ELSEIF lv_answer NE '1'. "否
p_filepath = i_file.
ENDIF.
ELSE.
lv_answer = '1'.
ENDIF.
CREATE OBJECT g_excel 'EXCEL.APPLICATION'.
GET PROPERTY OF g_excel 'Workbooks' = g_workbook .
CALL METHOD OF
g_workbook
'Close'.
IF lv_answer EQ '1'.
SELECT relid objid
FROM wwwdata
INTO CORRESPONDING FIELDS OF lv_objdata
UP TO 1 ROWS
WHERE srtf2 = 0 AND relid = 'MI'
AND objid = i_name.
ENDSELECT.
CONCATENATE i_file '.XLSX' INTO lw_file.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = lv_objdata
destination = lw_file
IMPORTING
rc = lv_subrc.
IF lv_subrc = 0.
ENDIF.
ENDIF.
CALL METHOD OF
g_workbook
'open'
EXPORTING
#1 = i_file.
CALL METHOD OF
g_excel
'worksheets' = g_sheet
EXPORTING
#1 = 1.
CALL METHOD OF
g_sheet
'activate'.
SET PROPERTY OF g_excel 'visible' = 1.
FREE OBJECT g_sheet.
FREE OBJECT g_applica.
FREE OBJECT g_workbook.