以下是OLE的例子,1至100共100个数字,到33、66、99时换行,跳3行后再写。
TYPES: BEGIN OF t_log,
txt TYPE string,
END OF t_log.
DATA:
gc_int TYPE i,
gc_txt TYPE string,
gc_ext TYPE char4,
gc_mod TYPE i,
gc_row TYPE i VALUE 1,
gc_col TYPE i VALUE 1.
INCLUDE ole2incl.
* OLE OBJECT
DATA:
myexcel TYPE ole2_object,
mysheet TYPE ole2_object,
mycell TYPE ole2_object,
myworkbook TYPE ole2_object.
PARAMETERS:
* P005
p005 TYPE rlgrap-filename DEFAULT 'C:\'.
START-OF-SELECTION.
*Create excel
CREATE OBJECT MYEXCEL 'EXCEL.APPLICATION'.
*Create workbook
CALL METHOD OF MYEXCEL 'WORKBOOKS' = MYWORKBOOK.
*Create worksheet
SET PROPERTY OF MYEXCEL 'SHEETSINNEWWORKBOOK' = 1.
CALL METHOD OF MYWORKBOOK 'ADD'.
WHILE gc_int < 100.
gc_int = gc_int + 1.
gc_mod = gc_int MOD 33.
IF gc_mod <> 0.
perform fill_cell using gc_row
gc_col
gc_int.
gc_col = gc_col + 1.
ELSE.
perform fill_cell using gc_row
gc_col
gc_int.
gc_row = gc_row + 4.
gc_col = 1.
ENDIF.
ENDWHILE.
END-OF-SELECTION.
gc_txt = p005.
gc_int = STRLEN( gc_txt ).
gc_int = gc_int - 4.
gc_ext = gc_txt+gc_int(4).
IF gc_ext <> '.XLS' AND gc_ext <> '.xls'.
CONCATENATE gc_txt '.xls' INTO gc_txt.
ENDIF.
* Save the file
CALL METHOD OF MYWORKBOOK 'SAVEAS' EXPORTING #1 = GC_TXT
#2 = 1.
CALL METHOD OF MYWORKBOOK 'CLOSE'.
* Output the file
CALL METHOD OF MYEXCEL 'QUIT'.
* Free object
FREE OBJECT MYSHEET.
FREE OBJECT MYWORKBOOK.
FREE OBJECT MYEXCEL.
*---------------------------------------------------------------------*
* FORM FILL_CELL *
*---------------------------------------------------------------------*
* sets cell at coordinates i,j to value val boldtype bold *
*---------------------------------------------------------------------*
FORM fill_cell USING i TYPE i
j TYPE i
val TYPE any.
CALL METHOD OF myexcel 'Cells' = mycell EXPORTING #1 = i #2 = j.
SET PROPERTY OF mycell 'Value' = val .
GET PROPERTY OF myexcel 'ACTIVESHEET' = mysheet.
GET PROPERTY OF myexcel 'ACTIVEWORKBOOK' = myworkbook.
ENDFORM. "FILL_CELL