Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Download data into excel

Former Member
0 Kudos

Hi Forum,

I've a report which downloads three internal tables data into 3 different excel sheets. My new requirement is to download the three internal tables data into single excel sheet in separate tabs. Kindly help me out..

Regards

Mahathi

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Check out this link..

it may help you..

9 REPLIES 9

Former Member
0 Kudos

Check out this link..

it may help you..

Former Member
0 Kudos

I had same requirement several days ago, just search the key words, you will get the answer.

0 Kudos

Agreed with Rick.

Former Member
0 Kudos

check fhis function module

EXCEL_OLE_STANDARD_DAT

CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'

EXPORTING

file_name = filename

  • CREATE_PIVOT = 0

  • DATA_SHEET_NAME = ' '

  • PIVOT_SHEET_NAME = ' '

  • PASSWORD = ' '

  • PASSWORD_OPTION = 0

TABLES

  • PIVOT_FIELD_TAB = PIVOT_FIELD_TAB

data_tab = it_final1[]

fieldnames = heading

EXCEPTIONS

file_not_exist = 1

filename_expected = 2

communication_error = 3

ole_object_method_error = 4

ole_object_property_error = 5

invalid_pivot_fields = 6

download_problem = 7.

in DATA_SHEET_NAME you can pass sheet no dynamically.

try it it will work.

Former Member
0 Kudos

check fhis function module

EXCEL_OLE_STANDARD_DAT

CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'

EXPORTING

file_name = filename

  • CREATE_PIVOT = 0

  • DATA_SHEET_NAME = ' '

  • PIVOT_SHEET_NAME = ' '

  • PASSWORD = ' '

  • PASSWORD_OPTION = 0

TABLES

  • PIVOT_FIELD_TAB = PIVOT_FIELD_TAB

data_tab = it_final1[]

fieldnames = heading

EXCEPTIONS

file_not_exist = 1

filename_expected = 2

communication_error = 3

ole_object_method_error = 4

ole_object_property_error = 5

invalid_pivot_fields = 6

download_problem = 7.

in DATA_SHEET_NAME you can pass sheet no dynamically.

try it it will work.

Former Member
0 Kudos

hiii

there r many fm for that

i think GUI_DOWNLOAD is work fine

Former Member
0 Kudos

hi ,

here i am sending reference Code for you.

With help of this you can download data into any number of sheets according to ur Requirment..

REPORT ZOLE_TUTOR_EXAMPLE_MS_EXCEL .

INCLUDE OLE2INCL .

DATA: GS_EXCEL TYPE OLE2_OBJECT ,

GS_WBOOKLIST TYPE OLE2_OBJECT ,

GS_APPLICATION TYPE OLE2_OBJECT ,

GS_WBOOK TYPE OLE2_OBJECT ,

GS_ACTIVESHEET TYPE OLE2_OBJECT ,

GS_SHEETS TYPE OLE2_OBJECT ,

GS_NEWSHEET TYPE OLE2_OBJECT ,

GS_CELL1 TYPE OLE2_OBJECT ,

GS_CELL2 TYPE OLE2_OBJECT ,

GS_CELLS TYPE OLE2_OBJECT ,

GS_RANGE TYPE OLE2_OBJECT ,

GS_FONT TYPE OLE2_OBJECT ,

GS_INTERIOR TYPE OLE2_OBJECT ,

GS_COLUMNS TYPE OLE2_OBJECT ,

GS_CHARTS TYPE OLE2_OBJECT ,

GS_CHART TYPE OLE2_OBJECT ,

GS_CHARTTITLE TYPE OLE2_OBJECT ,

GS_CHARTTITLECHAR TYPE OLE2_OBJECT ,

GS_CHARTOBJECTS TYPE OLE2_OBJECT .

DATA : CNTL TYPE I VALUE 0.

DATA GV_SHEET_NAME(20) TYPE C .

DATA GV_OUTER_INDEX LIKE SY-INDEX .

DATA GV_INTEX(2) TYPE C .

DATA GV_LINE_CNTR TYPE I . "line counter

DATA GV_LINNO TYPE I . "line number

DATA GV_COLNO TYPE I . "column number

DATA GV_VALUE TYPE I . "data

DATA : IT_SCARR TYPE STANDARD TABLE OF SCARR.

PARAMETERS: P_SHEETS TYPE I .

*Code Part C.1 Data declarations

*Step 2 -> Initiate the do-loop and OLE automation base objects.

START-OF-SELECTION .

SELECT * FROM SCARR INTO TABLE IT_SCARR.

DO P_SHEETS TIMES .

CNTL = CNTL + 1.

*--Forming sheet name

GV_INTEX = SY-INDEX .

GV_OUTER_INDEX = SY-INDEX .

CONCATENATE 'Excel Sheet #' GV_INTEX INTO GV_SHEET_NAME .

*--For the first loop, Excel is initiated and one new sheet is added

IF SY-INDEX = 1 .

CREATE OBJECT GS_EXCEL 'EXCEL.APPLICATION' .

SET PROPERTY OF GS_EXCEL 'Visible' = 1 .

GET PROPERTY OF GS_EXCEL 'Workbooks' = GS_WBOOKLIST .

GET PROPERTY OF GS_WBOOKLIST 'Application' = GS_APPLICATION .

SET PROPERTY OF GS_APPLICATION 'SheetsInNewWorkbook' = 1 .

CALL METHOD OF GS_WBOOKLIST 'Add' = GS_WBOOK .

GET PROPERTY OF GS_APPLICATION 'ActiveSheet' = GS_ACTIVESHEET .

SET PROPERTY OF GS_ACTIVESHEET 'Name' = GV_SHEET_NAME .

*--For the rest of loops, other sheets are added

ELSE .

GET PROPERTY OF GS_WBOOK 'Sheets' = GS_SHEETS .

CALL METHOD OF GS_SHEETS 'Add' = GS_NEWSHEET .

SET PROPERTY OF GS_NEWSHEET 'Name' = GV_SHEET_NAME .

ENDIF .

GV_LINE_CNTR = 1 . "line counter

*Code Part C.2 Looping and initializing, adding new worksheets

*Step3 -> Write the title and format it.

*--Title

*--Selecting cell area to be merged.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = 1

#2 = 1.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = 1

#2 = 4.

CALL METHOD OF GS_EXCEL 'Range' = GS_CELLS

EXPORTING

#1 = GS_CELL1

#2 = GS_CELL2.

CALL METHOD OF GS_CELLS 'Select' .

*--Merging

CALL METHOD OF GS_CELLS 'Merge' .

*--Setting title data

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINE_CNTR

#2 = 1.

SET PROPERTY OF GS_CELL1 'Value' = 'TITLE' .

*--Formatting the title

GET PROPERTY OF GS_CELL1 'Font' = GS_FONT .

SET PROPERTY OF GS_FONT 'Underline' = 2 .

SET PROPERTY OF GS_FONT 'Bold' = 1 .

SET PROPERTY OF GS_CELL1 'HorizontalAlignment' = -4108 .

GET PROPERTY OF GS_CELL1 'Interior' = GS_INTERIOR .

SET PROPERTY OF GS_INTERIOR 'ColorIndex' = 15 .

SET PROPERTY OF GS_INTERIOR 'Pattern' = -4124 .

SET PROPERTY OF GS_INTERIOR 'PatternColorIndex' = -4105 .

*Code Part C.3 Writing and formatting the title

*Step 4 -> Write some additional data for the title area and format them.

GV_LINE_CNTR = GV_LINE_CNTR + 1 .

*--Writing some additional data for the title

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINE_CNTR

#2 = 1.

SET PROPERTY OF GS_CELL1 'Value' = 'hello' .

ENDDO.

regards,

Vipul Darji

Former Member
0 Kudos

hi,,

Here i am adding one another program which fills 3 internal table into one excel file into 3 diff sheet..

Check it out.. it may help you...

***************************************************************************

***************************************************************************

REPORT ZOLE_TUTOR_EXAMPLE_MS_EXCEL NO STANDARD PAGE HEADING.

***************************************************************************

***************************************************************************

*****************************

INITIALIZATION.

*****************************

TABLES : SCARR , SPFLI , SFLIGHT.

INCLUDE OLE2INCL .

DATA: GS_EXCEL TYPE OLE2_OBJECT ,

GS_WBOOKLIST TYPE OLE2_OBJECT ,

GS_APPLICATION TYPE OLE2_OBJECT ,

GS_WBOOK TYPE OLE2_OBJECT ,

GS_ACTIVESHEET TYPE OLE2_OBJECT ,

GS_SHEETS TYPE OLE2_OBJECT ,

GS_NEWSHEET TYPE OLE2_OBJECT ,

GS_CELL1 TYPE OLE2_OBJECT ,

GS_CELL2 TYPE OLE2_OBJECT ,

GS_CELL3 TYPE OLE2_OBJECT ,

GS_CELL4 TYPE OLE2_OBJECT ,

GS_CELL5 TYPE OLE2_OBJECT ,

GS_CELL6 TYPE OLE2_OBJECT ,

GS_CELLS TYPE OLE2_OBJECT ,

GS_RANGE TYPE OLE2_OBJECT ,

GS_FONT TYPE OLE2_OBJECT ,

GS_INTERIOR TYPE OLE2_OBJECT ,

GS_COLUMNS TYPE OLE2_OBJECT ,

GS_CHARTS TYPE OLE2_OBJECT ,

GS_CHART TYPE OLE2_OBJECT ,

GS_CHARTTITLE TYPE OLE2_OBJECT ,

GS_CHARTTITLECHAR TYPE OLE2_OBJECT ,

GS_CHARTOBJECTS TYPE OLE2_OBJECT .

DATA : CNTL TYPE I VALUE 0.

DATA GV_SHEET_NAME(20) TYPE C .

DATA GV_OUTER_INDEX LIKE SY-INDEX .

DATA GV_INTEX(2) TYPE C .

DATA GV_LINE_CNTR TYPE I . "line counter

DATA GV_LINNO TYPE I . "line number

DATA GV_COLNO TYPE I . "column number

DATA GV_VALUE TYPE I . "data

DATA R_NUM TYPE I VALUE 0. " row number

DATA : IT_SCARR TYPE STANDARD TABLE OF SCARR,

WA_SCARR TYPE SCARR,

IT_SPFLI TYPE STANDARD TABLE OF SPFLI,

WA_SPFLI TYPE SPFLI,

IT_SFLIGHT TYPE STANDARD TABLE OF SFLIGHT,

WA_SFLIGHT TYPE SFLIGHT.

*****************************

START-OF-SELECTION .

*****************************

SELECT * FROM SCARR INTO TABLE IT_SCARR.

SELECT * FROM SPFLI INTO TABLE IT_SPFLI.

SELECT * FROM SFLIGHT INTO TABLE IT_SFLIGHT WHERE CARRID = 'AA'.

DO 3 TIMES .

CNTL = CNTL + 1.

*--Forming sheet name

GV_INTEX = SY-INDEX .

GV_OUTER_INDEX = SY-INDEX .

CONCATENATE 'Excel Sheet #' GV_INTEX INTO GV_SHEET_NAME .

*--For the first loop, Excel is initiated and one new sheet is added

IF SY-INDEX = 1 .

CREATE OBJECT GS_EXCEL 'EXCEL.APPLICATION' .

SET PROPERTY OF GS_EXCEL 'Visible' = 1 .

GET PROPERTY OF GS_EXCEL 'Workbooks' = GS_WBOOKLIST .

GET PROPERTY OF GS_WBOOKLIST 'Application' = GS_APPLICATION .

SET PROPERTY OF GS_APPLICATION 'SheetsInNewWorkbook' = 1 .

CALL METHOD OF GS_WBOOKLIST 'Add' = GS_WBOOK .

GET PROPERTY OF GS_APPLICATION 'ActiveSheet' = GS_ACTIVESHEET .

SET PROPERTY OF GS_ACTIVESHEET 'Name' = GV_SHEET_NAME .

*--For the rest of loops, other sheets are added

ELSE .

GET PROPERTY OF GS_WBOOK 'Sheets' = GS_SHEETS .

CALL METHOD OF GS_SHEETS 'Add' = GS_NEWSHEET .

SET PROPERTY OF GS_NEWSHEET 'Name' = GV_SHEET_NAME .

ENDIF .

GV_LINE_CNTR = 1 . "line counter

*Code Part C.2 Looping and initializing, adding new worksheets

*Step3 -> Write the title and format it.

*--Title

*--Selecting cell area to be merged.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = 1

#2 = 1.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = 1

#2 = 4.

CALL METHOD OF GS_EXCEL 'Range' = GS_CELLS

EXPORTING

#1 = GS_CELL1

#2 = GS_CELL2.

CALL METHOD OF GS_CELLS 'Select' .

*--Merging

CALL METHOD OF GS_CELLS 'Merge' .

*--Setting title data

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = GV_LINE_CNTR

#2 = 1.

SET PROPERTY OF GS_CELL1 'Value' = 'TITLE' .

*--Formatting the title

GET PROPERTY OF GS_CELL1 'Font' = GS_FONT .

SET PROPERTY OF GS_FONT 'Underline' = 2 .

SET PROPERTY OF GS_FONT 'Bold' = 1 .

SET PROPERTY OF GS_CELL1 'HorizontalAlignment' = -4108 .

GET PROPERTY OF GS_CELL1 'Interior' = GS_INTERIOR .

SET PROPERTY OF GS_INTERIOR 'ColorIndex' = 15 .

SET PROPERTY OF GS_INTERIOR 'Pattern' = -4124 .

SET PROPERTY OF GS_INTERIOR 'PatternColorIndex' = -4105 .

*Code Part C.3 Writing and formatting the title

*Step 4 -> Write some additional data for the title area and format them.

GV_LINE_CNTR = GV_LINE_CNTR + 1 .

*--Writing some additional data for the title

CASE CNTL.

WHEN 1.

PERFORM SHEET_NUMBER_1.

WHEN 2.

PERFORM SHEET_NUMBER_2.

WHEN 3.

PERFORM SHEET_NUMBER_3.

ENDCASE.

ENDDO.

*****************************

END-OF-SELECTION.

*****************************

&----


*& Form SHEET_NUMBER_1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SHEET_NUMBER_1 .

R_NUM = 3.

LOOP AT IT_SCARR INTO WA_SCARR.

R_NUM = R_NUM + 1.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = R_NUM

#2 = 1.

SET PROPERTY OF GS_CELL1 'Value' = WA_SCARR-CARRID .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = R_NUM

#2 = 2.

SET PROPERTY OF GS_CELL2 'Value' = WA_SCARR-CARRNAME .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL3

EXPORTING

#1 = R_NUM

#2 = 3.

SET PROPERTY OF GS_CELL3 'Value' = WA_SCARR-CURRCODE.

ENDLOOP.

ENDFORM. " SHEET_NUMBER_1

&----


*& Form SHEET_NUMBER_2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SHEET_NUMBER_2 .

R_NUM = 3.

LOOP AT IT_SPFLI INTO WA_SPFLI.

R_NUM = R_NUM + 1.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = R_NUM

#2 = 1.

SET PROPERTY OF GS_CELL1 'Value' = WA_SPFLI-CARRID .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = R_NUM

#2 = 2.

SET PROPERTY OF GS_CELL2 'Value' = WA_SPFLI-CONNID .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL3

EXPORTING

#1 = R_NUM

#2 = 3.

SET PROPERTY OF GS_CELL3 'Value' = WA_SPFLI-COUNTRYFR.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL4

EXPORTING

#1 = R_NUM

#2 = 4.

SET PROPERTY OF GS_CELL4 'Value' = WA_SPFLI-CITYFROM.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL5

EXPORTING

#1 = R_NUM

#2 = 5.

SET PROPERTY OF GS_CELL5 'Value' = WA_SPFLI-COUNTRYTO.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL6

EXPORTING

#1 = R_NUM

#2 = 6.

SET PROPERTY OF GS_CELL6 'Value' = WA_SPFLI-CITYTO.

ENDLOOP.

ENDFORM. " SHEET_NUMBER_1

&----


*& Form SHEET_NUMBER_3

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SHEET_NUMBER_3 .

R_NUM = 3.

LOOP AT IT_SFLIGHT INTO WA_SFLIGHT.

R_NUM = R_NUM + 1.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL1

EXPORTING

#1 = R_NUM

#2 = 1.

SET PROPERTY OF GS_CELL1 'Value' = WA_SFLIGHT-CARRID .

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL2

EXPORTING

#1 = R_NUM

#2 = 2.

SET PROPERTY OF GS_CELL2 'Value' = WA_SFLIGHT-CONNID.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL3

EXPORTING

#1 = R_NUM

#2 = 3.

SET PROPERTY OF GS_CELL3 'Value' = WA_SFLIGHT-FLDATE.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL4

EXPORTING

#1 = R_NUM

#2 = 4.

SET PROPERTY OF GS_CELL4 'Value' = WA_SFLIGHT-PRICE.

CALL METHOD OF GS_EXCEL 'Cells' = GS_CELL5

EXPORTING

#1 = R_NUM

#2 = 5.

SET PROPERTY OF GS_CELL5 'Value' = WA_SFLIGHT-CURRENCY.

ENDLOOP.

ENDFORM. " SHEET_NUMBER_1

regards,

Vipul darji

0 Kudos

Next optopn copy excel past PowerPoint 


DATA gs_chartAdoZet TYPE OLE2_OBJECT.


GET PROPERTY OF gs_activesheet 'ChartObjects' = gs_chartobjects.

       CALL METHOD OF gs_chartobjects 'Item' = gs_chartAdoZet   " That method return object to chart

             EXPORTING

                   #1 = 'Chart 1'.   " Index = Number (1)/String ('Chart 1') <- find out in excel Name Box Number 1, ... n

       CALL METHOD OF gs_chartAdoZet 'Activate' .

       CALL METHOD OF gs_chartAdoZet 'Select' .

       CALL METHOD OF gs_chartAdoZet 'Cut'               " 'Copy'/'Cut'.



*--create the ppt application

CREATE OBJECT ppt 'POWERPOINT.APPLICATION' .

IF sy-subrc NE 0 .

   MESSAGE s000(su) WITH 'Error while creating OLE object!'.

   LEAVE PROGRAM .

ENDIF .

*--setting object's visibility property

SET PROPERTY OF ppt 'visible' = '1' .

*--open the specified file from presentation server

GET PROPERTY OF ppt 'presentations' = presentations.

*CALL METHOD OF presentations 'Open' EXPORTING #1 = p_story.

CALL METHOD OF presentations 'Add' = actpres.

** add a slide

GET PROPERTY OF actpres 'Slides' = slides.

CALL METHOD OF slides 'Add'

EXPORTING

   #1 = slidecount

   #2 = 12" 12

*--Getting active window handle

GET PROPERTY OF ppt 'ActiveWindow' = actwin .

*--Getting active presentation handle

GET PROPERTY OF ppt 'ActivePresentation' = actpres .

*GET PROPERTY OF actwin 'Selection' = selection.

get property of actwin 'View' = view.

CALL METHOD OF view 'Paste'.


How does it to use ??? I was attaching according those link

Generaly

Object model (Excel VBA reference)

Chart

Chart Members (Excel)

Typs of charts ( bottom at the end of www page) http://wiki.scn.sap.com/wiki/display/ABAP/ABAP-OLE+Code+Display+More+then+One+Chart+in+Excel

Message was edited by: Adrian Zetak Past to fooooor exaple PowerPoint *--create the ppt application CREATE OBJECT ppt 'POWERPOINT.APPLICATION' . IF sy-subrc NE 0 .   MESSAGE s000(su) WITH 'Error while creating OLE object!'.   LEAVE PROGRAM . ENDIF . *--setting object's visibility property SET PROPERTY OF ppt 'visible' = '1' . *--open the specified file from presentation server GET PROPERTY OF ppt 'presentations' = presentations. *CALL METHOD OF presentations 'Open' EXPORTING #1 = p_story. CALL METHOD OF presentations 'Add' = actpres. ** add a slide GET PROPERTY OF actpres 'Slides' = slides. CALL METHOD OF slides 'Add' EXPORTING   #1 = slidecount   #2 = 12.  " 12 *--Getting active window handle GET PROPERTY OF ppt 'ActiveWindow' = actwin . *--Getting active presentation handle GET PROPERTY OF ppt 'ActivePresentation' = actpres . *GET PROPERTY OF actwin 'Selection' = selection. get property of actwin 'View' = view. CALL METHOD OF view 'Paste'.