DATA: GS_EXCEL TYPE OLE2_OBJECT ,
GS_WBOOKLIST TYPE OLE2_OBJECT ,
GS_APPLICATION TYPE OLE2_OBJECT ,
GS_WBOOK TYPE OLE2_OBJECT ,
GS_ACTIVESHEET TYPE OLE2_OBJECT ,
GS_SHEETS TYPE OLE2_OBJECT ,
GS_NEWSHEET TYPE OLE2_OBJECT ,
GS_CELL1 TYPE OLE2_OBJECT ,
GS_CELL2 TYPE OLE2_OBJECT ,
GS_CELLS TYPE OLE2_OBJECT ,
GS_RANGE TYPE OLE2_OBJECT ,
GS_FONT TYPE OLE2_OBJECT ,
GS_INTERIOR TYPE OLE2_OBJECT ,
GS_COLUMNS TYPE OLE2_OBJECT ,
GS_CHARTS TYPE OLE2_OBJECT ,
GS_CHART TYPE OLE2_OBJECT ,
GS_CHARTTITLE TYPE OLE2_OBJECT ,
GS_CHARTTITLECHAR TYPE OLE2_OBJECT ,
GS_CHARTOBJECTS TYPE OLE2_OBJECT .
DATA GV_SHEET_NAME(20) TYPE C .
DATA GV_OUTER_INDEX LIKE SY-INDEX .
DATA GV_INTEX(2) TYPE C .
DATA GV_LINE_CNTR TYPE I . "line counter
DATA GV_LINNO TYPE I . "line number
DATA GV_COLNO TYPE I . "column number
DATA GV_VALUE TYPE I . "data
PARAMETERS: P_SHEETS TYPE I .
START-OF-SELECTION.
DO P_SHEETS TIMES .
GV_INTEX = SY-INDEX .
GV_OUTER_INDEX = SY-INDEX .
IF SY-INDEX = 1 .
CONCATENATE 'Excel Sheet #' GV_INTEX INTO GV_SHEET_NAME .
CREATE OBJECT GS_EXCEL 'EXCEL.APPLICATION' . " 创建 XLS
SET PROPERTY OF GS_EXCEL 'Visible' = 1 . "1前台运行。为0时表示为后台运行。
GET PROPERTY OF GS_EXCEL 'Workbooks' = GS_WBOOKLIST .
GET PROPERTY OF GS_WBOOKLIST 'Application' = GS_APPLICATION .
SET PROPERTY OF GS_APPLICATION 'SheetsInNewWorkbook' = 1 .
CALL METHOD OF GS_WBOOKLIST 'Add' = GS_WBOOK. "创建 workbook.
GET PROPERTY OF GS_APPLICATION 'ActiveSheet' = GS_ACTIVESHEET .
SET PROPERTY OF GS_ACTIVESHEET 'Name' = GV_SHEET_NAME .
ELSE.
GET PROPERTY OF GS_WBOOK 'Sheets' = GS_SHEETS .
CALL METHOD OF
GS_SHEETS
'Add' = GS_NEWSHEET.
SET PROPERTY OF GS_NEWSHEET 'Name' = GV_SHEET_NAME .
ENDIF.
GV_LINE_CNTR = 1 . "line counter
*--Title
*--Selecting cell area to be merged.
" 选中第一行第一列 到 第一行第4列
CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
#1 = 1
#2 = 1.
CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL2
EXPORTING
#1 = 1
#2 = 4.
CALL METHOD OF
GS_EXCEL
'Range' = GS_CELLS
EXPORTING
#1 = GS_CELL1
#2 = GS_CELL2.
CALL METHOD OF GS_CELLS 'Select' . "选中
CALL METHOD OF GS_CELLS 'Merge' . "合并
*--Setting title data
CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1 "选中行列
EXPORTING
#1 = GV_LINE_CNTR
#2 = 1.
SET PROPERTY OF GS_CELL1 'Value' = '设置抬头' . "设置值
*--Formatting the title
GET PROPERTY OF GS_CELL1 'Font' = GS_FONT .
SET PROPERTY OF GS_FONT 'Underline' = 2 .
SET PROPERTY OF GS_FONT 'Bold' = 1 .
SET PROPERTY OF GS_CELL1 'HorizontalAlignment' = -4108 .
GET PROPERTY OF GS_CELL1 'Interior' = GS_INTERIOR .
SET PROPERTY OF GS_INTERIOR 'ColorIndex' = 15 .
SET PROPERTY OF GS_INTERIOR 'Pattern' = -4124 .
SET PROPERTY OF GS_INTERIOR 'PatternColorIndex' = -4105 .
GV_LINE_CNTR = GV_LINE_CNTR + 1 .
*--Writing some additional data for the title
CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1 "第2行第1列
EXPORTING
#1 = GV_LINE_CNTR
#2 = 1.
SET PROPERTY OF GS_CELL1 'Value' = 'Sheet No' . "设置值
CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1 "第2行第5列
EXPORTING
#1 = GV_LINE_CNTR
#2 = 5.
SET PROPERTY OF GS_CELL1 'Value' = ':' . "设置值
CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1 "第2行第6列
EXPORTING
#1 = GV_LINE_CNTR
#2 = 6.
SET PROPERTY OF GS_CELL1 'Value' = GV_INTEX . "设置值
*--Formatting the area of additional data 1
CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
#1 = 1
#2 = 1.
CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL2
EXPORTING
#1 = GV_LINE_CNTR
#2 = 5.
CALL METHOD OF "指定操作的单元格范围
GS_EXCEL
'Range' = GS_CELLS
EXPORTING
#1 = GS_CELL1
#2 = GS_CELL2.
CALL METHOD OF GS_CELLS 'Select' . "选中
GET PROPERTY OF GS_CELLS 'Font' = GS_FONT . "设置字体
SET PROPERTY OF GS_FONT 'Bold' = 1 . "加粗
*--Formatting the area of additional data 2
CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
#1 = 1
#2 = 5.
CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL2
EXPORTING
#1 = GV_LINE_CNTR
#2 = 5.
CALL METHOD OF
GS_EXCEL
'Range' = GS_CELLS
EXPORTING
#1 = GS_CELL1
#2 = GS_CELL2.
CALL METHOD OF
GS_CELLS
'Select'.
GET PROPERTY OF GS_CELLS 'Columns' = GS_COLUMNS .
CALL METHOD OF
GS_COLUMNS
'AutoFit'.
*--Bordering title data area
CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL1
EXPORTING
#1 = 1
#2 = 1.
CALL METHOD OF
GS_EXCEL
'Cells' = GS_CELL2
EXPORTING
#1 = GV_LINE_CNTR
#2 = 6.
CALL METHOD OF
GS_EXCEL
'Range' = GS_CELLS
EXPORTING
#1 = GS_CELL1
#2 = GS_CELL2.
CALL METHOD OF
GS_CELLS
'Select'.
CALL METHOD OF GS_CELLS 'BorderAround' " 边框
EXPORTING
#1 = 1 "continuous line
#2 = 4. "thick