天天看点

ABAP 简单的OLE操作

没外网,对于一个做IT的来说,真是相当于脱了水的鱼啊

type-pools ole2 .
data:  count type i,
       count_real type i,
       application type ole2_object,
       workbook type ole2_object,
       excel     type ole2_object,
       sheet type ole2_object,
       cells type ole2_object.
constants: row_max type i value 256.
data index type i.
 
 
data:
      h_cell        type ole2_object,        " cell
      h_f           type ole2_object,        " font
      h_int         type ole2_object,
      h_width       type ole2_object,
      h_columns     type ole2_object,
      h_rows        type ole2_object,
      h_font        type ole2_object,
      h_entirecol   type ole2_object.
.
 
create object excel 'EXCEL.APPLICATION'.
 
if sy-subrc ne 0.
  write: / 'No EXCEL creation possible'.
  stop.
endif.
 
set property of excel 'DisplayAlerts' = 0.
 
call method of excel 'WORKBOOKS' = workbook .
 
set property of excel 'VISIBLE' = 1.
 
 
set property of excel 'SheetsInNewWorkbook' = 1.
call method of workbook 'ADD'.
 
call method of excel 'WORKSHEETS' = sheet
  exporting
  #1 = 1.
 
set property of sheet 'NAME' = 'Color Palette'.
call method of sheet 'ACTIVATE'.
 
data: col type i value 1,
row type i value 2,
col1 type i value 2,
col_real type i value 1.
 
row = 1.
col = 2.
call method of excel 'Cells' = h_cell
  exporting
  #1 = row
  #2 = col.
set property of h_cell 'Value' = 'No.'.
 
col = col + 1.
call method of excel 'Cells' = h_cell
  exporting
  #1 = row
  #2 = col.
set property of h_cell 'Value' = 'Background'.
 
col = col + 1.
call method of excel 'Cells' = h_cell
  exporting
  #1 = row
  #2 = col.
set property of h_cell 'Value' = 'Foreground with white background'.
 
col = col + 1.
call method of excel 'Cells' = h_cell
  exporting
  #1 = row
  #2 = col.
set property of h_cell 'Value' = 'Foreground with black background'.
 
call method of excel 'Rows' = h_rows
  exporting
    #1 = '2:2'.
set property of h_rows 'WrapText' = 1.
 
col = 8.
call method of excel 'Cells' = h_cell
  exporting
  #1 = row
  #2 = col.
set property of h_cell 'Value' = 'No.'.
 
col = col + 1.
call method of excel 'Cells' = h_cell
  exporting
  #1 = row
  #2 = col.
set property of h_cell 'Value' = 'Background'.
 
col = col + 1.
call method of excel 'Cells' = h_cell
  exporting
  #1 = row
  #2 = col.
set property of h_cell 'Value' = 'Foreground with white background'.
set property of h_cell 'Bold' = 1.
 
col = col + 1.
call method of excel 'Cells' = h_cell
  exporting
  #1 = row
  #2 = col.
set property of h_cell 'Value' = 'Foreground with black background'.
 
call method of excel 'Rows' = h_rows
  exporting
    #1 = '1:1'.
set property of h_rows 'WrapText' = 1.
get property of h_rows 'Font' = h_font.
set property of h_font 'Bold' = 1.
 
 
count = 1.
count_real = count.
row = 2.
col = 2.
do 56 times.
  perform write_num_and_color.
enddo.
 
 
call method of excel 'Columns' = h_columns
  exporting
    #1 = 'B:K'.
get property of h_columns 'EntireColumn' = h_entirecol.
set property of h_entirecol 'Autofit' = 1.
 
 
 
*&---------------------------------------------------------------------*
*&      Form  write_num_and_color
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
form write_num_and_color.
 
" write the color number
  index = row_max * ( row - 1 ) + col.
  call method of sheet 'Cells' = cells
    exporting
    #1 = index.
  set property of cells 'Value' = count_real.
 
" write the color as the background
  col = col + 1.
  call method of excel 'Cells' = h_cell
    exporting
    #1 = row
    #2 = col.
  get property of h_cell 'Interior'   = h_int.
  set property of h_int  'ColorIndex' = count_real.
 
" write the color as the foreground with a white background
  col = col + 1.
  call method of excel 'Cells' = h_cell
  exporting
    #1 = row
    #2 = col.
  set property of h_cell 'Value' = 'Sample Text'.
  get property of h_cell 'Font'    = h_f.
  set property of h_f 'ColorIndex' = count_real.
 
" write the color as the foreground with a black background
  col = col + 1.
  call method of excel 'Cells' = h_cell
  exporting
    #1 = row
    #2 = col.
  get property of h_cell 'Interior'   = h_int.
  set property of h_int  'ColorIndex' = 1.
  set property of h_cell 'Value' = 'Sample Text'.
  get property of h_cell 'Font'    = h_f.
  set property of h_f 'ColorIndex' = count_real.
 
  row = row + 1.
  col = col - 3.
  count = count + 1.
  if count = 29.
    count = 1.
    row = 2.
    col = col + 6.
  endif.
  count_real = count_real + 1.
 
endform.                    "write_num_and_color           

复制