DOWNLOAD FROM ITAB TO EXCEL

ABAP将内表中的数据下载到Excel

先把模板用SMW0存到系统中,名字为 ZLJC001.

REPORT zljc .

INCLUDE <icon>.
INCLUDE <symbol>.
INCLUDE z_alv_incl_001.
INCLUDE z_file_incl_001.

DATA : im_ifile TYPE ibipparms-path,
im_startrow TYPE i,
ex_tag TYPE zsubrc,
ex_msg TYPE zyxmsg.

DATA: gc_objid TYPE wwwdata-objid VALUE ‘ZLJC001’.
DATA: ldf_filename TYPE text255,
ls_fieldcat TYPE zexcel_s_fieldcat,
lt_fieldcat TYPE zexcel_t_fieldcat.
DATA: ldf_count TYPE i,
ldf_row TYPE i.

TYPES: BEGIN OF ty_data,
matnr TYPE mara-matnr,
groes TYPE mara-groes,
END OF ty_data.
DATA: lt_data TYPE TABLE OF ty_data WITH HEADER LINE.
START-OF-SELECTION.
PERFORM prepare_file.

PERFORM frm_download_file.

* 打开文件
CALL FUNCTION ‘ZEXCEL_START’
EXPORTING
filename = ldf_filename
IMPORTING
subrc = ex_tag
msg = ex_msg.

CHECK ex_tag = 0.
PERFORM prepare_data.

ldf_row = 2.
CALL FUNCTION ‘ZEXCEL_FILL_ITAB’
EXPORTING
row = ldf_row
column = 2
fieldcat = lt_fieldcat
autoheader = 0
IMPORTING
subrc = ex_tag
msg = ex_msg
TABLES
itab = lt_data.
CALL FUNCTION ‘ZEXCEL_END’
EXPORTING
visible = 0
saves = 1
close = 1
IMPORTING
subrc = ex_tag
msg = ex_msg.

IF EX_TAG IS INITIAL.
MESSAGE I000(26) WITH ‘ DOWNLOAD OK’.
ELSE.
MESSAGE I000(26) WITH ‘ DOWNLOAD ERROR’.
ENDIF.
*&———————————————————————*
*& Form PREPARE_FILE
*&———————————————————————*
* text
*———————————————————————-*
* –> p1 text
* <– p2 text
*———————————————————————-*
FORM prepare_file .
DATA : lfiletable TYPE filetable.
DATA : ls_file TYPE file_table.
DATA : l_rc TYPE i.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = ‘select open file’
default_extension = ‘*.XLS’
default_filename = ‘LJC.XLS’
CHANGING
file_table = lfiletable
rc = l_rc
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.

READ TABLE lfiletable INTO ls_file INDEX 1.
im_ifile = ls_file-filename.
MOVE im_ifile TO ldf_filename .
ENDFORM. ” PREPARE_FILE
*&———————————————————————*
*& Form frm_download_file
*&———————————————————————*
* text
*———————————————————————-*
FORM frm_download_file .

CALL FUNCTION ‘ZTOOL_FILE_DOWNLOAD_SMW0’
EXPORTING
objname = gc_objid
pathname = im_ifile
IMPORTING
filename = im_ifile
EXCEPTIONS
objname_not_exist = 1
inv_winsys = 2
no_batch = 3
selection_cancel = 4
selection_error = 5
download_false = 6
OTHERS = 7.
CASE sy-subrc.
WHEN 0.

WHEN 1.

WHEN 4.
WHEN 6.

WHEN OTHERS.

ENDCASE.

ENDFORM. ” FRM_DOWNLOAD_FILE
*&———————————————————————*
*& Form PREPARE_DATA
*&———————————————————————*
* text
*———————————————————————-*
* –> p1 text
* <– p2 text
*———————————————————————-*
FORM prepare_data .

CLEAR: ls_fieldcat, lt_fieldcat, lt_fieldcat[].
ls_fieldcat-fname = ‘MATNR’.
ls_fieldcat-coltext = ‘物料号’.
APPEND ls_fieldcat TO lt_fieldcat.

ls_fieldcat-fname = ‘GROES’.
ls_fieldcat-coltext = ‘规格’.
APPEND ls_fieldcat TO lt_fieldcat.

CLEAR: lt_data,lt_data[].
SELECT matnr groes INTO TABLE lt_data FROM mara UP TO 10 ROWS.

ENDFORM. ” PREPARE_DATA

本文作者: GavinDong

版权属于: GavinDong博客

文章链接: https://gavindong.com/135.html

如果使用过程中遇到问题,可 **点击此处** 交流沟通。

版权所有,转载时必须以链接形式注明作者和原始出处及本声明。

(0)

发表回复

登录后才能评论