REPORT ZTRAIN04.
TABLES mara.
TYPE-POOLS: slis .
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA fieldcatalog like gt_fieldcat.
DATA gs_layout TYPE slis_layout_alv.
DATA g_repid LIKE sy-repid.
DATA it_tab LIKE TABLE OF makt WITH HEADER LINE .
DATA wa_tab LIKE makt .
SELECT-OPTIONS v_matnr FOR mara-matnr.
PARAMETERS s_r1 RADIOBUTTON GROUP gr1 DEFAULT 'X'.
PARAMETERS s_r2 RADIOBUTTON GROUP gr1 .
SELECT * FROM makt INTO CORRESPONDING FIELDS OF TABLE it_tab
WHERE matnr in v_matnr .
PERFORM EXCELDISPLAY.
*----------------------------------------------------------------------*
TYPE-POOLS: OLE2. " 类型池
DATA: w_excel TYPE ole2_object, " Excel object,ole_record.
w_sheet TYPE ole2_object, " Excel object,worksheets
w_mapl TYPE ole2_object, " list of workbooks
w_map TYPE ole2_object, " workbook
w_rangeobj TYPE ole2_object. " Range object
FORM EXCELDISPLAY ."TABLES x_mara LIKE it_tab.
" EXCEL 输出
LOOP AT it_tab.
x_row = x_row + 1.
CONCATENATE 'A' x_row INTO v_range.
PERFORM fill_range USING v_range it_tab-MATNR.
* CONCATENATE 'B' x_row INTO v_range.
* PERFORM fill_range USING v_range it_tab-MATKL.
* CONCATENATE 'C' x_row INTO v_range.
* PERFORM fill_range USING v_range it_tab-WERKS.
CONCATENATE 'D' x_row INTO v_range.
PERFORM fill_range USING v_range it_tab-MAKTX.
* CONCATENATE 'E' x_row INTO v_range.
* PERFORM fill_range USING v_range it_tab-GEWEI.
CLEAR it_tab.
ENDLOOP.
SET PROPERTY OF w_excel 'VISIBLE' = 1 no flush.
FREE w_mapl.
FREE OBJECT w_excel.
ENDFORM. "frmXL
SDisplay
*&---------------------------------------------------------------------*
*& Form fill_range
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(F_RANGE) text
* -->VALUE(F_VALUE) text
*----------------------------------------------------------------------*
FORM fill_range USING value(f_range) value(f_value).
CALL METHOD OF w_sheet 'Range' = w_rangeobj
EXPORTING
#1 = f_range.
SET PROPERTY OF w_rangeobj 'Value' = f_value.
ENDFORM. "fill_range