ABAP 导出到EXCEL(模板一)
转自:http://blog.csdn.net/amaryh/article/details/7708154
*&---------------------------------------------------------------------**& Report  ZTEST_EXCEL*& ABAP 导出到EXCEL*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT  ZTEST_EXCEL1.INCLUDE OLE2INCL.DATA: EXCEL_OBJ     TYPE OLE2_OBJECT,      BOOK_OBJ      TYPE OLE2_OBJECT,      SHEET_OBJ     TYPE OLE2_OBJECT,      CELL_OBJ      TYPE OLE2_OBJECT,      ROW_OBJ       TYPE OLE2_OBJECT,      COLUMN_OBJ    TYPE OLE2_OBJECT,      RANGE_OBJ     TYPE OLE2_OBJECT,      BORDERS_OBJ   TYPE OLE2_OBJECT,      INT_OBJ       TYPE OLE2_OBJECT,      FONT_OBJ      TYPE OLE2_OBJECT.DATA: G_TITLE(20),      G_NAME(30),      G_DATE(20).DATA: BEGIN OF ITAB OCCURS 0,        COL1 TYPE I,        COL2 TYPE I,        COL3 TYPE I,END OF ITAB.*DATA: G_LINES TYPE I,*      G_LINES2 TYPE I.START-OF-SELECTION.  G_TITLE = 'TEST'.  G_NAME = SY-UNAME.  G_DATE = SY-DATUM.DO 10 TIMES.    ITAB-COL1 = ITAB-COL1 + 1.    ITAB-COL2 = ITAB-COL1 * ITAB-COL1.    ITAB-COL3 = ITAB-COL1 * ITAB-COL1 * ITAB-COL1.APPEND ITAB.ENDDO.PERFORM CREAT_EXCEL."创建EXCEL表单PERFORM FORMAT_EXCEL."设置EXCEL格式PERFORM PRM_OUTPUT_EXCEL. "用来显示EXCEL表单*&---------------------------------------------------------------------**&      Form  CREAT_EXCEL*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM CREAT_EXCEL.CREATE OBJECT EXCEL_OBJ 'excel.APPLICATION'.IF SY-SUBRC NE 0.MESSAGE 'EXCEL创建错误' TYPE 'S' DISPLAY LIKE 'E'.STOP.ENDIF.CALL METHOD OF EXCEL_OBJ 'WORKBOOKS' = BOOK_OBJ .SET PROPERTY OF EXCEL_OBJ 'VISIBLE' = 1.SET PROPERTY OF EXCEL_OBJ 'SheetsInNewWorkbook' = 1.CALL METHOD OF BOOK_OBJ 'ADD' = SHEET_OBJ.CALL METHOD OF SHEET_OBJ 'ACTIVATE'.FREE OBJECT SHEET_OBJ.  "OKENDFORM.                    "CREAT_EXCEL*&---------------------------------------------------------------------**&      Form  FORMAT_EXCEL*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM FORMAT_EXCEL.PERFORM ROWHEIGHT  USING '1' '40'.PERFORM MERGERANGE USING 'A1:F1'.PERFORM MERGERANGE USING 'D3:F3'.PERFORM COLUMNWIDTH USING 'A' '12'.PERFORM COLUMNWIDTH USING 'B' '11'.PERFORM COLUMNWIDTH USING 'C' '13'.*  PERFORM CELLTYPE USING 'A:B' '@'.*  PERFORM CELLTYPE USING 'C:K' '0.00'.*  PERFORM CELLTYPE USING '1:4' '@'.PERFORM FONT USING 'A1' 1 '22' '隶书'.PERFORM CENTERCELL USING 'A1'.PERFORM CENTERCELL USING 'D3'.PERFORM WRITECELL USING 3 4 'COL'.PERFORM WRITECELL USING 4 4 'COL1'.PERFORM WRITECELL USING 4 5 'COL2'.PERFORM WRITECELL USING 4 6 'COL3'.ENDFORM.                    "FORMAT_EXCEL*&---------------------------------------------------------------------**&      Form  PRM_OUTPUT_EXCEL*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------*FORM PRM_OUTPUT_EXCEL.DATA I_VTEXT TYPE VTXTK.DATA I_LEN TYPE I.DATA: I_JS(4) TYPE N.DATA I_END(11) TYPE N.  I_JS = 4.LOOP AT ITAB.    I_JS = I_JS + 1.PERFORM WRITECELL USING I_JS 4 ITAB-COL1.PERFORM WRITECELL USING I_JS 5 ITAB-COL2.PERFORM WRITECELL USING I_JS 6 ITAB-COL3.ENDLOOP.PERFORM WRITECELL USING 1 1 G_TITLE.PERFORM WRITECELL USING 2 1 G_NAME.PERFORM WRITECELL USING 2 7 G_DATE.FREE OBJECT BORDERS_OBJ.FREE OBJECT CELL_OBJ.*  CONCATENATE 'A3:K' I_JS INTO I_END.*  PERFORM BORDERRANGE USING I_END.*  PERFORM COLUMNWIDTH USING 'A:B' ''.ENDFORM.                    "PRM_OUTPUT_EXCEL*&---------------------------------------------------------------------**&      Form  writecell*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->X          text*      -->Y          text*      -->V          text*----------------------------------------------------------------------*FORM WRITECELL  USING ROW COL VAL.CALL METHOD OF EXCEL_OBJ 'CELLS' = CELL_OBJEXPORTING    #1 = ROW    #2 = COL.SET PROPERTY OF CELL_OBJ 'VALUE' = VAL.FREE OBJECT CELL_OBJ.ENDFORM.                    "writecell*&---------------------------------------------------------------------**&      Form  mergerange*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->RANGE      text*----------------------------------------------------------------------*FORM MERGERANGE USING RANGE.CALL METHOD OF EXCEL_OBJ 'RANGE' = CELL_OBJEXPORTING    #1 = RANGE.CALL METHOD OF CELL_OBJ 'MERGE' .FREE OBJECT CELL_OBJ.ENDFORM.                    "mergerange*&---------------------------------------------------------------------**&      Form  celltype*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->RANGE      text*----------------------------------------------------------------------*FORM CELLTYPE USING RANGE TYPE.CALL METHOD OF EXCEL_OBJ 'RANGE' = CELL_OBJEXPORTING    #1 = RANGE.SET PROPERTY OF CELL_OBJ  'NumberFormatLocal' = TYPE.FREE OBJECT CELL_OBJ.ENDFORM.                    "celltype*&--------------------------------------------------------------------**&      Form  rowheight*&--------------------------------------------------------------------**       text*---------------------------------------------------------------------**      -->HEIGHT     text*---------------------------------------------------------------------*FORM ROWHEIGHT USING ROW HEIGHT .CALL METHOD OF EXCEL_OBJ 'ROWS' = ROW_OBJEXPORTING    #1 = ROW.SET PROPERTY OF ROW_OBJ  'RowHeight' = HEIGHT .FREE OBJECT ROW_OBJ.ENDFORM .                    "rowheight*&--------------------------------------------------------------------**&      Form  ColumnWidth*&--------------------------------------------------------------------**       text*---------------------------------------------------------------------**      -->WIDTH      text*---------------------------------------------------------------------*FORM COLUMNWIDTH USING COLUMN WIDTH .CALL METHOD OF EXCEL_OBJ 'COLUMNS' = COLUMN_OBJEXPORTING    #1 = COLUMN.IF WIDTH = ''.CALL METHOD OF COLUMN_OBJ 'AutoFit'.ELSE.SET PROPERTY OF COLUMN_OBJ  'columnwidth' = WIDTH .ENDIF.FREE OBJECT COLUMN_OBJ.ENDFORM .                    "columnwidth*&--------------------------------------------------------------------**&      Form  borderrange*&--------------------------------------------------------------------**       text*---------------------------------------------------------------------**      -->WE         text*---------------------------------------------------------------------*FORM BORDERRANGE USING RANGE.CALL METHOD OF EXCEL_OBJ 'RANGE' = CELL_OBJEXPORTING    #1 = RANGE.DO 4 TIMES .CALL METHOD OF CELL_OBJ 'BORDERS' = BORDERS_OBJEXPORTING      #1 = SY-INDEX.SET PROPERTY OF BORDERS_OBJ 'LineStyle' = '1'.SET PROPERTY OF BORDERS_OBJ 'WEIGHT' = '2'.SET PROPERTY OF BORDERS_OBJ 'ColorIndex' = '1'.FREE OBJECT BORDERS_OBJ.ENDDO.FREE OBJECT BORDERS_OBJ.FREE OBJECT CELL_OBJ.ENDFORM.                    "borderrange*---------------------------------------------------------------------**       FORM font                                                     **---------------------------------------------------------------------**       ........                                                      **---------------------------------------------------------------------**  -->  bold                                                          **  -->  size                                                          **---------------------------------------------------------------------*FORM FONT USING RANGE BOLD SIZE NAME.CALL METHOD OF EXCEL_OBJ 'RANGE' = CELL_OBJEXPORTING    #1 = RANGE.CALL METHOD OF CELL_OBJ 'FONT' = FONT_OBJ.SET PROPERTY OF FONT_OBJ 'BOLD' = BOLD.SET PROPERTY OF FONT_OBJ 'SIZE' = SIZE.SET PROPERTY OF FONT_OBJ 'NAME' = NAME.FREE OBJECT FONT_OBJ.FREE OBJECT CELL_OBJ.ENDFORM.                    "font*&---------------------------------------------------------------------**&      Form  CENTERCELL*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**      -->RANGE      text*----------------------------------------------------------------------*FORM CENTERCELL USING RANGE.CALL METHOD OF EXCEL_OBJ 'RANGE' = CELL_OBJEXPORTING    #1 = RANGE.SET PROPERTY OF CELL_OBJ 'HorizontalAlignment' = 3.FREE OBJECT CELL_OBJ.ENDFORM.                    "CENTERCELL 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号