以上是一个ALV_LIST,如果要下载以上形式到EXCEL.
如果用GUI_DOWNLOAD,按常规方法一表头it_colname,一内表
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = l_filename1
filetype = 'DAT'
codepage = '8400'
TABLES
data_tab =
fieldnames = it_colname[]
解决方法:把表字段头和数据一起压入一个表gt_out中,其格式如下
DATA: BEGIN OF gt_out OCCURS 0,
str TYPE string,
END OF gt_out.
然后把表头APPEND进去,但因为是一行中有很多列,所以要加一个分隔符cl_abap_char_utilities=>horizontal_tab
实际上就是一个'#'号,用于在调用函数GUI_DOWNLOAD时分列,碰到一个就做为下一列
最后就是把
加一个cl_abap_char_utilities=>horizontal_tab 来分隔。
|
FORM process_outdata . refresh gt_OUT. CLEAR GT_OUT. DATA:wa_out LIKE gt_out. DATA:l_str TYPE string. DATA:l_times TYPE i. LOOP AT fieldcat. CONCATENATE wa_out-str fieldcat-seltext_l cl_abap_char_utilities=>horizontal_tab INTO wa_out-str.
IF sy-tabix LE 5. CONCATENATE gt_out-str cl_abap_char_utilities=>horizontal_tab INTO gt_out-str. CONTINUE. ENDIF.
IF sy-tabix EQ 6. CONCATENATE gt_out-str 'Usage' cl_abap_char_utilities=>horizontal_tab INTO gt_out-str. CONTINUE. ENDIF.
CASE fieldcat-fieldname(1). WHEN 'D'.
CONCATENATE gt_out-str 'Demand' cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.
WHEN 'P'."pl
CONCATENATE gt_out-str 'Stock' cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.
WHEN 'I'."inspe
CONCATENATE gt_out-str 'Stock' cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.
WHEN 'S'. IF fieldcat-fieldname(2) = 'SP'."speme
CONCATENATE gt_out-str 'Stock' cl_abap_char_utilities=>horizontal_tab INTO gt_out-str. ELSE. "S
CONCATENATE gt_out-str 'Shortage' cl_abap_char_utilities=>horizontal_tab INTO gt_out-str. ENDIF.
WHEN 'E'.
CONCATENATE gt_out-str 'Eta' cl_abap_char_utilities=>horizontal_tab INTO gt_out-str.
ENDCASE. ENDLOOP.
APPEND gt_out. APPEND wa_out TO gt_out. CLEAR wa_out. l_times = LINES( it_structure ).
LOOP AT DO l_times TIMES. ASSIGN COMPONENT sy-index OF STRUCTURE l_str = CONCATENATE wa_out-str l_str cl_abap_char_utilities=>horizontal_tab INTO wa_out-str. ENDDO. APPEND wa_out TO gt_out. CLEAR wa_out. ENDLOOP. ENDFORM. " process_outdata |
最后调用GUI_DOWNLOAD.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = l_filename1
filetype = 'DAT'
codepage = '8400'
TABLES
data_tab = GT_OUT[]
输出EXCEL结果
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17070242/viewspace-722182/ ,如需转载,请注明出处,否则将追究法律责任。