内表数据转Excel(通用方法)
FUNCTION ZTRANTOXSTRING.
*“----------------------------------------------------------------------
"“本地接口:
*” EXPORTING
*” REFERENCE(EV_XSTRING) TYPE XSTRING
*" REFERENCE(EV_SIZE) TYPE I
*" TABLES
*" IT_FCAT TYPE LVC_T_FCAT
*" IT_OUT
*" ET_BIN_TAB
*"----------------------------------------------------------------------
FIELD-SYMBOLS :
TYPE ANY TABLE .DATA: BIN_TAB TYPE TABLE OF SOLIX .
*DATA: bin_tab TYPE STANDARD TABLE OF tabl1024.
DATA : LV_VALUEP TYPE P DECIMALS 2,
L_VALUE TYPE STRING,
L_FULLPATH TYPE STRING,
LENGTH TYPE I,
LV_ZTYPE TYPE I,
LV_STR TYPE STRING.
**** SET HEADER
LOOP AT IT_FCAT INTO DATA(LS_FIELDCAT).
CONCATENATE LV_STR LS_FIELDCAT-SCRTEXT_L CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB INTO LV_STR .
ENDLOOP.
CONCATENATE LV_STR CL_ABAP_CHAR_UTILITIES=>CR_LF INTO LV_STR .
**** SET DATA
LOOP AT IT_OUT ASSIGNING FIELD-SYMBOL() .
LOOP AT IT_FCAT INTO LS_FIELDCAT .
ASSIGN COMPONENT LS_FIELDCAT-FIELDNAME OF STRUCTURE TO FIELD-SYMBOL() .
IF SY-SUBRC = 0 .
L_VALUE = .
IF LS_FIELDCAT-INTTYPE = ‘P’ AND < 0 .
LV_VALUEP = .
LV_VALUEP = - LV_VALUEP .
L_VALUE = ‘-’ && LV_VALUEP .
ENDIF .
CONCATENATE LV_STR L_VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB INTO LV_STR .
ENDIF .
ENDLOOP.
CONCATENATE LV_STR CL_ABAP_CHAR_UTILITIES=>CR_LF INTO LV_STR .
ENDLOOP .
CALL FUNCTION ‘SCMS_STRING_TO_XSTRING’
EXPORTING
TEXT = LV_STR
-
MIMETYPE = 'APPLICATION/PDF;charset=utf-16le ' ENCODING = '8400'IMPORTING
BUFFER = EV_XSTRING
EXCEPTIONS
FAILED = 1
OTHERS = 2.
IF SY-SUBRC <> 0. -
Implement suitable error handling here
ENDIF.CALL FUNCTION ‘SCMS_XSTRING_TO_BINARY’
EXPORTING
BUFFER = EV_XSTRING
IMPORTING
OUTPUT_LENGTH = LENGTH
TABLES
BINARY_TAB = BIN_TAB.ET_BIN_TAB[] = BIN_TAB[] .
IF LV_ZTYPE = ‘1’ .
L_FULLPATH = ‘D:\test01’ && SY-DATUM && SY-UZEIT && ‘.xls’ .
CALL FUNCTION ‘GUI_DOWNLOAD’
EXPORTING
FILENAME = L_FULLPATH "lv_fullpath
FILETYPE = ‘BIN’ -
write_field_separator = 'X' TABLESDATA_TAB = BIN_TAB -
fieldnames = gt_hd .ENDIF.
ENDFUNCTION.
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
