10-15-2008 11:37 AM
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
10-15-2008 11:52 AM
10-15-2008 11:52 AM
10-15-2008 12:14 PM
I had same requirement several days ago, just search the key words, you will get the answer.
10-15-2008 12:35 PM
10-15-2008 12:21 PM
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.
10-15-2008 12:21 PM
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.
10-15-2008 12:27 PM
10-15-2008 1:04 PM
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
10-16-2008 6:40 AM
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
09-11-2015 1:46 PM
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
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'.