运行效果:
代码:
REPORT ztest_sy04.
DATA: BEGIN OF gs_data,
matnr TYPE mara-matnr,
maktx TYPE makt-maktx,
END OF gs_data.
DATA: gt_data LIKE TABLE OF gs_data.
DATA: fullpath TYPE string. " 全路径
PERFORM get_data.
PERFORM download_excel.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text 获取数据
*----------------------------------------------------------------------*
FORM get_data.
gs_data-matnr = '1001'.
gs_data-maktx = '商品01'.
APPEND gs_data TO gt_data.
gs_data-matnr = '1002'.
gs_data-maktx = '商品02'.
APPEND gs_data TO gt_data.
gs_data-matnr = '1003'.
gs_data-maktx = '商品03'.
APPEND gs_data TO gt_data.
ENDFORM. "get_data
*&---------------------------------------------------------------------*
*& Form download_excel
*&---------------------------------------------------------------------*
* text 导出EXCEL
*----------------------------------------------------------------------*
FORM download_excel.
" 对话框维护文件路径
CALL FUNCTION 'GUI_FILE_SAVE_DIALOG'
IMPORTING
fullpath = fullpath.
CHECK NOT fullpath IS INITIAL.
" 保存数据到指定文件
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = fullpath
filetype = 'DAT'
TABLES
data_tab = gt_data
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. "download_excel
注: (1). CSDN博客的插入代码功能不支持ABAP语言,故选了JAVA语言替代,关键字无法高亮显示;
(2). 如有疏漏之处,还请不吝赐教!