ABAP OLE XLS

REPORT YGL_MYOLE.
INCLUDE OLE2INCL.
* OLE OBJECT
DATA:
    MYEXCEL           TYPE OLE2_OBJECT,
    MYSHEET           TYPE OLE2_OBJECT,
    MYCELL             TYPE OLE2_OBJECT,
    MYWORKBOOK  TYPE OLE2_OBJECT.
.................................
*创建excel进程
CREATE OBJECT MYEXCEL 'EXCEL.APPLICATION'.
* 创建工作表
CALL METHOD OF MYEXCEL 'WORKBOOKS' = MYWORKBOOK.
* 创建sheet并添加到工作表
SET PROPERTY OF MYEXCEL 'SHEETSINNEWWORKBOOK' = 1.
CALL METHOD OF MYWORKBOOK 'ADD'.
* 选中excel中的cell,第一行的第二列。
CALL METHOD OF MYEXCEL 'CELLS' = MYCELL EXPORTING #1 = 1 #2 = 2.
* 设置被选中的cell的值
SET PROTERTY OF MYCELL 'VALUE' = 'HELLO WORD'. "你要输出的内容
GET PROPERTY OF MYEXCEL 'ACTIVESHEET' = MYSHEET.
GET PROPERTY OF MYEXCEL 'ACTIVEWORKBOOK' = MYWORKBOOK.
* 保存文件
CALL METHOD OF MYWORKBOOK 'SAVEAS' EXPORTING #1 = 'C:\TMP\AA.XLS' #2 = 1.
CALL METHOD OF MYWORKBOOK 'CLOSE'.
* 推出excel
CALL METHOD OF MYEXCEL 'QUIT'.
* 释放对象
FREE OBJECT MYSHEET.
FREE OBJECT MYWORKBOOK.
FREE OBJECT MYEXCEL.


------------------------------------------

REPORT Excel.
TABLES:
  sflight.

* header data................................
DATA :
  header1 LIKE gxxlt_p-text VALUE 'Raj',
  header2 LIKE gxxlt_p-text VALUE 'Excel sheet'.

* Internal table for holding the SFLIGHT data
DATA BEGIN OF t_sflight OCCURS 0.
        INCLUDE STRUCTURE sflight.
DATA END   OF t_sflight.

* Internal table for holding the horizontal key.
DATA BEGIN OF  t_hkey OCCURS 0.
        INCLUDE STRUCTURE gxxlt_h.
DATA END   OF t_hkey .

* Internal table for holding the vertical key.
DATA BEGIN OF t_vkey OCCURS 0.
        INCLUDE STRUCTURE gxxlt_v.
DATA END   OF t_vkey .

* Internal table for holding the online text....
DATA BEGIN OF t_online OCCURS 0.
        INCLUDE STRUCTURE gxxlt_o.
DATA END   OF t_online.

* Internal table to hold print text.............
DATA BEGIN OF t_print OCCURS 0.
        INCLUDE STRUCTURE gxxlt_p.
DATA END   OF t_print.

* Internal table to hold SEMA data..............
DATA BEGIN OF t_sema OCCURS 0.
        INCLUDE STRUCTURE gxxlt_s.
DATA END   OF t_sema.

* Retreiving data from sflight.
SELECT * FROM sflight
         INTO TABLE t_sflight.
do 10 times.
enddo.
* Text which will be displayed online is declared here....
t_online-line_no    = '1'.
t_online-info_name  = 'Created by'.
t_online-info_value = 'Raj'.
APPEND t_online.

* Text which will be printed out..........................
t_print-hf     = 'H'.
t_print-lcr    = 'L'.
t_print-line_no = '1'.
t_print-text   = 'This is the header'.
APPEND t_print.

t_print-hf     = 'F'.
t_print-lcr    = 'C'.
t_print-line_no = '1'.
t_print-text   = 'This is the footer'.
APPEND t_print.

* Defining the vertical key columns.......
t_vkey-col_no   = '1'.
t_vkey-col_name = 'MANDT'.
APPEND t_vkey.

t_vkey-col_no   = '2'.
t_vkey-col_name = 'CARRID'.
APPEND t_vkey.

t_vkey-col_no   = '3'.
t_vkey-col_name = 'CONNID'.
APPEND t_vkey.

t_vkey-col_no   = '4'.
t_vkey-col_name = 'FLDATE'.
APPEND t_vkey.

* Header text for the data columns................

t_hkey-row_no = '1'.
t_hkey-col_no = 1.
t_hkey-col_name = 'PRICE'.
APPEND t_hkey.

t_hkey-col_no = 2.
t_hkey-col_name = 'CURRENCY'.
APPEND t_hkey.

t_hkey-col_no = 3.
t_hkey-col_name = 'PLANETYPE'.
APPEND t_hkey.

t_hkey-col_no = 4.
t_hkey-col_name = 'SEATSMAX'.
APPEND t_hkey.

t_hkey-col_no = 5.
t_hkey-col_name = 'SEATSOCC'.
APPEND t_hkey.

t_hkey-col_no = 6.
t_hkey-col_name = 'PAYMENTSUM'.
APPEND t_hkey.

* populating the SEMA data..........................
t_sema-col_no  = 1.
t_sema-col_typ = 'STR'.
t_sema-col_ops = 'DFT'.
APPEND t_sema.

t_sema-col_no = 2.
APPEND t_sema.

t_sema-col_no = 3.
APPEND t_sema.

t_sema-col_no = 4.
APPEND t_sema.

t_sema-col_no = 5.
APPEND t_sema.

t_sema-col_no = 6.
APPEND t_sema.

t_sema-col_no = 7.
APPEND t_sema.

t_sema-col_no = 8.
APPEND t_sema.

t_sema-col_no = 9.
APPEND t_sema.

t_sema-col_no = 10.
t_sema-col_typ = 'NUM'.
t_sema-col_ops = 'ADD'.
APPEND t_sema.

CALL FUNCTION 'XXL_FULL_API'
  EXPORTING
*   DATA_ENDING_AT          = 54
*   DATA_STARTING_AT        = 5
   filename                = 'TESTFILE'
   header_1                = header1
   header_2                = header2
   no_dialog               = 'X'
   no_start                = ' '
    n_att_cols              = 6
    n_hrz_keys              = 1
    n_vrt_keys              = 4
   sema_type               = 'X'
*   SO_TITLE                = ' '
  TABLES
    data                    = t_sflight
    hkey                    = t_hkey
    online_text             = t_online
    print_text              = t_print
    sema                    = t_sema
    vkey                    = t_vkey
 EXCEPTIONS
   cancelled_by_user       = 1
   data_too_big            = 2
   dim_mismatch_data       = 3
   dim_mismatch_sema       = 4
   dim_mismatch_vkey       = 5
   error_in_hkey           = 6
   error_in_sema           = 7
   file_open_error         = 8
   file_write_error        = 9
   inv_data_range          = 10
   inv_winsys              = 11
   inv_xxl                 = 12
   OTHERS                  = 13
          .
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF. 


posted on 2008-04-17 07:33  NextStep-V  阅读(457)  评论(0)    收藏  举报

导航