WebDynpro中实现Excel模板下载功能
转载
1.打开SE80创建WebDynpro组件。
2.填写详细信息
3.然后点击组件右键创建选项导入一个EXCEL模板
4.这个时候将我们本地新建的模板文件导入进去。
5.操作的系统模板名字暂时不能应用为中文,会提示错误。所以这里我将模板名字设置为1。
6.在VIEW视图下创建一个模板下载按钮。
7.然后创建ON Action就是点击按钮后的操作。双击进入到代码编辑器。
8.然后编写代码,实现模板下载功能。
代码如下:
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应用程序进行测试。
10.测试成功(复制链接到IE浏览器,其他浏览器会出现乱码情况)