SAP/ABAP
[OLE] Excel 양식 sample
DrkLion
2009. 9. 22. 11:44
REPORT ztest.
* excel sheet download
TYPE-POOLS: OLE2.
TABLES: sscrfields.
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_F TYPE OLE2_OBJECT. " font
SELECTION-SCREEN FUNCTION KEY 1.
INITIALIZATION.
sscrfields-functxt_01 = '@48@ 샘플파일다운로드'.
AT SELECTION-SCREEN.
IF SSCRFIELDS-UCOMM = 'FC01'.
PERFORM FILE_DOWNLOAD_RTN.
ENDIF.
*&---------------------------------------------------------------------*
*& Form FILE_DOWNLOAD_RTN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM file_download_rtn .
* start Excel
CREATE OBJECT h_excel 'EXCEL.APPLICATION'.
PERFORM err_hdl.
SET PROPERTY OF h_excel 'Visible' = 1.
PERFORM err_hdl.
* get list of workbooks, initially empty
CALL METHOD OF h_excel 'Workbooks' = h_mapl.
PERFORM err_hdl.
* add a new workbook
CALL METHOD OF h_mapl 'Add' = h_map.
PERFORM err_hdl.
* output column headings to active Excel sheet
PERFORM fill_cell USING 1 1 1 '자산번호'.
PERFORM fill_cell USING 1 2 1 '감가Key'.
PERFORM fill_cell USING 1 3 1 '내용연수'.
FREE OBJECT h_excel.
PERFORM err_hdl.
STOP.
ENDFORM. " FILE_DOWNLOAD_RTN
*&---------------------------------------------------------------------*
*& Form ERR_HDL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM err_hdl .
IF sy-subrc <> 0.
MESSAGE s003 DISPLAY LIKE 'W' WITH 'OLE 자동화 에러 :' sy-subrc.
STOP.
ENDIF.
ENDFORM. " ERR_HDL
*&---------------------------------------------------------------------*
*& Form FILL_CELL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_1 text
* -->P_1 text
* -->P_1 text
* -->P_0196 text
*----------------------------------------------------------------------*
FORM fill_cell USING i j bold p_val.
CALL METHOD OF h_excel 'Cells' = h_zl
EXPORTING
#1 = i
#2 = j.
PERFORM err_hdl.
SET PROPERTY OF h_zl 'Value' = p_val .
PERFORM err_hdl.
GET PROPERTY OF h_zl 'Font' = h_f.
PERFORM err_hdl.
SET PROPERTY OF h_f 'Bold' = bold .
PERFORM err_hdl.
ENDFORM. " FILL_CELL