6、用ole的方式打开excel,然后将内容填充到单元格中,此时文件还没有存在本地,
注:这个一般是用download 模板的时候会用到,因为USER需要马上编辑。
DATA: h_excel TYPE ole2_object, " Excel object
h_mapl TYPE ole2_object, " list of workbooks
h_map TYPE ole2_object, " workbook
h_zl TYPE ole2_object, " cell
h_zl1 TYPE ole2_object, " cell
h_zl2 TYPE ole2_object, " cell
h_ran TYPE ole2_object, " Range
h_f TYPE ole2_object, " font
h_i TYPE ole2_object, " interior
h_s TYPE ole2_object. " style
DATA: h_ta1 TYPE ole2_object, " cell
h_ta2 TYPE ole2_object, " cell
h_ta3 TYPE ole2_object, " cell
h_ta4 TYPE ole2_object, " cell
h_ta5 TYPE ole2_object, " cell
h_ta6 TYPE ole2_object. " cell
CONSTANTS: align_center TYPE i VALUE -4108,
align_left TYPE i VALUE -4131,
align_right TYPE i VALUE -4152,
align_top TYPE i VALUE -4160.
CREATE OBJECT h_excel 'EXCEL.APPLICATION'.
SET PROPERTY OF h_excel 'Visible' = 1.
CALL METHOD OF h_excel 'Workbooks' = h_mapl.
CALL METHOD OF h_mapl 'Add' = h_map.
PERFORM fill_cell USING 1 1 1 'CENTER' 'Fieldname1' 43 1 15 1 1.
PERFORM fill_cell USING 1 2 1 'CENTER' 'Fieldname2' 3 1 15 2 2.
PERFORM fill_cell USING 1 3 1 'CENTER' 'Fieldname3' 4 1 15 3 3.
*&---------------------------------------------------------------------*
*& Form FILL_CELL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
FORM fill_cell USING i j bold align val p_color p_wrap width size color.
DATA : v_align(6) TYPE c.
CALL METHOD OF
h_excel
'Cells' = h_zl
EXPORTING
#1 = i
#2 = j.
PERFORM err_hdl.
SET PROPERTY OF h_zl 'Value' = val .
PERFORM err_hdl.
GET PROPERTY OF h_zl 'Font' = h_f.
PERFORM err_hdl.
GET PROPERTY OF h_zl 'Interior' = h_i.
PERFORM err_hdl.
SET PROPERTY OF h_zl 'ColumnWidth' = width .
PERFORM err_hdl.
IF bold = 1.
SET PROPERTY OF h_f 'Bold' = 1.
PERFORM err_hdl.
ENDIF.
IF p_color <> space. "背景填充
SET PROPERTY OF h_i 'ColorIndex' = p_color .
PERFORM err_hdl.
ENDIF.
IF p_wrap = 1. "自动换行
SET PROPERTY OF h_zl 'WrapText' = 1.
PERFORM err_hdl.
ENDIF.
if size = 1.
SET PROPERTY OF h_zl1 'SIZE' = size .
endif.
if color <> space.
SET PROPERTY OF h_zl1 'Color' = color .
endif.
IF j = 3.
SET PROPERTY OF h_zl 'NumberFormat' = '@' .
PERFORM err_hdl.
ENDIF.
MOVE align TO v_align.
TRANSLATE v_align TO UPPER CASE.
CASE v_align.
WHEN 'CENTER'.
SET PROPERTY OF h_zl 'HorizontalAlignment' = align_center.
PERFORM err_hdl.
WHEN 'LEFT'.
SET PROPERTY OF h_zl 'HorizontalAlignment' = align_left.
PERFORM err_hdl.
WHEN 'RIGHT'.
SET PROPERTY OF h_zl 'HorizontalAlignment' = align_right.
PERFORM err_hdl.
ENDCASE.
ENDFORM. " FILL_CELL
*&---------------------------------------------------------------------*
*& Form ERR_HDL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM err_hdl .
IF sy-subrc <> 0.
WRITE: / 'Fehler bei OLE-Automation:'(010), sy-subrc.
* clear fcode.
LEAVE SCREEN.
ENDIF.
ENDFORM.
*********************方法六 add **********************