SAP  ABAP

Download a report to excel with format (border, color cell, etc) 

The below program may help you to change the font ..etc in download a SAP report to excel with format (border, color cells etc). 

 

CODE :

REPORT ZSIRI NO STANDARD PAGE HEADING. 

* this report demonstrates how to send some ABAP data to an 

* EXCEL sheet using OLE automation. 

INCLUDE OLE2INCL. 

* handles for OLE objects 

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 

TABLES: SPFLI. 

DATA  H TYPE I. 

* table of flights 

DATA: IT_SPFLI LIKE SPFLI OCCURS 10 WITH HEADER LINE. 

 

 

 

 

*&---------------------------------------------------------------------* 

*&   Event START-OF-SELECTION 

*&---------------------------------------------------------------------* 

START-OF-SELECTION. 

* read flights 

  SELECT * FROM SPFLI INTO TABLE IT_SPFLI UP TO 10 ROWS. 

* display header 

  ULINE (61). 

  WRITE: /     SY-VLINE NO-GAP, 

          (3)  'Flg'(001) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP, 

          (4)  'Nr'(002) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP, 

          (20) 'Von'(003) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP, 

          (20) 'Nach'(004) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP, 

          (8)  'Zeit'(005) COLOR COL_HEADING NO-GAP, SY-VLINE NO-GAP. 

  ULINE /(61). 

* display flights 

  LOOP AT IT_SPFLI. 

  WRITE: / SY-VLINE NO-GAP, 

        IT_SPFLI-CARRID COLOR COL_KEY NO-GAP, SY-VLINE NO-GAP, 

        IT_SPFLI-CONNID COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP, 

        IT_SPFLI-CITYFROM COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP, 

        IT_SPFLI-CITYTO COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP, 

        IT_SPFLI-DEPTIME COLOR COL_NORMAL NO-GAP, SY-VLINE NO-GAP. 

  ENDLOOP. 

  ULINE /(61). 

* tell user what is going on 

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' 

     EXPORTING 

*           PERCENTAGE = 0 

           TEXT       = TEXT-007 

       EXCEPTIONS 

            OTHERS     = 1. 

* start Excel 

  CREATE OBJECT H_EXCEL 'EXCEL.APPLICATION'. 

*  PERFORM ERR_HDL. 

 

  SET PROPERTY OF H_EXCEL  'Visible' = 1. 

*  CALL METHOD OF H_EXCEL 'FILESAVEAS' EXPORTING #1 = 'c:\kis_excel.xls' 

 

*  PERFORM ERR_HDL. 

* tell user what is going on 

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' 

     EXPORTING 

*           PERCENTAGE = 0 

           TEXT       = TEXT-008 

       EXCEPTIONS 

            OTHERS     = 1. 

* 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. 

* tell user what is going on 

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' 

     EXPORTING 

*           PERCENTAGE = 0 

           TEXT       = TEXT-009 

       EXCEPTIONS 

            OTHERS     = 1. 

* output column headings to active Excel sheet 

  PERFORM FILL_CELL USING 1 1 1 'Flug'(001). 

  PERFORM FILL_CELL USING 1 2 0 'Nr'(002). 

  PERFORM FILL_CELL USING 1 3 1 'Von'(003). 

  PERFORM FILL_CELL USING 1 4 1 'Nach'(004). 

  PERFORM FILL_CELL USING 1 5 1 'Zeit'(005). 

  LOOP AT IT_SPFLI. 

* copy flights to active EXCEL sheet 

    H = SY-TABIX + 1. 

    PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID. 

    PERFORM FILL_CELL USING H 2 0 IT_SPFLI-CONNID. 

    PERFORM FILL_CELL USING H 3 0 IT_SPFLI-CITYFROM. 

    PERFORM FILL_CELL USING H 4 0 IT_SPFLI-CITYTO. 

    PERFORM FILL_CELL USING H 5 0 IT_SPFLI-DEPTIME. 

  ENDLOOP. 

 

* changes by Kishore  - start 

*  CALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL. 

  CALL METHOD OF H_EXCEL 'Worksheets' = H_MAPL." EXPORTING #1 = 2. 

 

  PERFORM ERR_HDL. 

* add a new workbook 

  CALL METHOD OF H_MAPL 'Add' = H_MAP  EXPORTING #1 = 2. 

  PERFORM ERR_HDL. 

* tell user what is going on 

  SET PROPERTY OF H_MAP 'NAME' = 'COPY'. 

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' 

     EXPORTING 

*           PERCENTAGE = 0 

           TEXT       = TEXT-009 

       EXCEPTIONS 

            OTHERS     = 1. 

* output column headings to active Excel sheet 

  PERFORM FILL_CELL USING 1 1 1 'Flug'(001). 

  PERFORM FILL_CELL USING 1 2 0 'Nr'(002). 

  PERFORM FILL_CELL USING 1 3 1 'Von'(003). 

  PERFORM FILL_CELL USING 1 4 1 'Nach'(004). 

  PERFORM FILL_CELL USING 1 5 1 'Zeit'(005). 

  LOOP AT IT_SPFLI. 

* copy flights to active EXCEL sheet 

    H = SY-TABIX + 1. 

    PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID. 

    PERFORM FILL_CELL USING H 2 0 IT_SPFLI-CONNID. 

    PERFORM FILL_CELL USING H 3 0 IT_SPFLI-CITYFROM. 

    PERFORM FILL_CELL USING H 4 0 IT_SPFLI-CITYTO. 

    PERFORM FILL_CELL USING H 5 0 IT_SPFLI-DEPTIME. 

  ENDLOOP. 

* changes by Kishore  - end 

* disconnect from Excel 

*      CALL METHOD OF H_EXCEL 'FILESAVEAS' EXPORTING  #1 = 'C:\SKV.XLS'. 

 

  FREE OBJECT H_EXCEL. 

  PERFORM ERR_HDL. 

*---------------------------------------------------------------------* 

*       FORM FILL_CELL                                                * 

*---------------------------------------------------------------------* 

*       sets cell at coordinates i,j to value val boldtype bold       * 

*---------------------------------------------------------------------* 

FORM FILL_CELL USING I J BOLD VAL. 

  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. 

  SET PROPERTY OF H_F 'Bold' = BOLD . 

  PERFORM ERR_HDL. 

ENDFORM. 

*&---------------------------------------------------------------------* 

*&      Form  ERR_HDL 

*&---------------------------------------------------------------------* 

*       outputs OLE error if any                                       * 

*----------------------------------------------------------------------* 

*  -->  p1        text 

*  <--  p2        text 

*----------------------------------------------------------------------* 

FORM ERR_HDL. 

IF SY-SUBRC <> 0. 

  WRITE: / 'Fehler bei OLE-Automation:'(010), SY-SUBRC. 

  STOP. 

ENDIF. 

ENDFORM.                    " ERR_HDL 

 

 

Please note that this example maybe slow at filling the excel table 

(perhaps four fields per second on a 900 MHz machine - almost 30 seconds 

for a short example). 

 

To get the data on properties and methods - there is a bit of smoke and mirrors 

going on here; they are EXCEL properties and methods, not sap ones - so you need 

to look at excel help to determine how a particular function is structured. then 

build the block in sap, as shown in the example.

 

If you only want to transfer the data to Excel like when you transfer the data from 

ALV to Excel simply use the Function Modules: 

 

XXL_SIMPLE_API 

 

If you want more modifications when you transfer it to Excel use: 

 

XXL_FULL_API 

SAP FBD1 Recurring
Recurring Procedure for A/P & G/L, Recurring Cases , Recurring Transaction Codes 


SAP F.05 Revaluation
Procedure, Reversal, SAPF100 problem, Run twice, B/S Prep. Val, Configuration. 

SAP Clear Open Items SAP Procedure for F-03, FB1S, F-32 , Clear Debit Credit with zero balance open items. 

SAP BDC
SAP Procedure for Batch Data Communication, SM35, Batch Input Sessions, Record BDC, Write Data Transfer Program

SAP FB60
SAP Procedure for FB60, One time Vendor, Park FV60 Procedure, Account assignment template