WebDynpro中实现Excel模板下载功能_右键

1.打开SE80创建WebDynpro组件。

WebDynpro中实现Excel模板下载功能_右键_02


2.填写详细信息

WebDynpro中实现Excel模板下载功能_编写代码_03


3.然后点击组件右键创建选项导入一个EXCEL模板

WebDynpro中实现Excel模板下载功能_右键_04


4.这个时候将我们本地新建的模板文件导入进去。

WebDynpro中实现Excel模板下载功能_代码编辑器_05


5.操作的系统模板名字暂时不能应用为中文,会提示错误。所以这里我将模板名字设置为1。

WebDynpro中实现Excel模板下载功能_右键_06

WebDynpro中实现Excel模板下载功能_代码编辑器_07


6.在VIEW视图下创建一个模板下载按钮。

WebDynpro中实现Excel模板下载功能_编写代码_08

WebDynpro中实现Excel模板下载功能_右键_09

WebDynpro中实现Excel模板下载功能_编写代码_10


7.然后创建ON Action就是点击按钮后的操作。双击进入到代码编辑器。

WebDynpro中实现Excel模板下载功能_代码编辑器_11

WebDynpro中实现Excel模板下载功能_右键_12


8.然后编写代码,实现模板下载功能。

WebDynpro中实现Excel模板下载功能_代码编辑器_13

代码如下:

DATA : lr_component TYPE REF TO if_wd_component.
DATA : lr_component_info TYPE REF TO if_wd_rr_component.
DATA : lr_mr_api TYPE REF TO if_mr_api.
DATA : lv_wd_name TYPE string.
DATA : lv_url TYPE string.
DATA : lv_xstr TYPE xstring.


* 取得组件相关对象

  lr_component = wd_comp_controller->wd_get_api( ).

  lr_component_info = lr_component->get_component_info( ).

* 取得当前组件的名字

  lv_wd_name = lr_component_info->get_name( ).

* 取得excel模板的URL

CALL METHOD cl_wd_utilities=>construct_wd_url(
EXPORTING
application_name = lv_wd_name
IMPORTING
out_local_url = lv_url ).

lv_url = lv_url && '/Template.xlsx'.

* 取得excel模板中的内容,保存为xstring格式

lr_mr_api = cl_mime_repository_api=>get_api( ).
lr_mr_api->get(
EXPORTING
i_url = lv_url
i_check_authority = ''
IMPORTING
e_content = lv_xstr ).
* 将excel打开
cl_wd_runtime_services=>attach_file_to_response(
EXPORTING
i_filename = '1.xlsx'
i_content = lv_xstr
i_mime_type = 'xlsx'
i_in_new_window = abap_false
i_inplace = abap_false ).



9.创建WebDynpro应用程序进行测试。

WebDynpro中实现Excel模板下载功能_编写代码_14


10.测试成功(复制链接到IE浏览器,其他浏览器会出现乱码情况)

WebDynpro中实现Excel模板下载功能_右键_15

WebDynpro中实现Excel模板下载功能_代码编辑器_16


WebDynpro中实现Excel模板下载功能_代码编辑器_17