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: 

how to output list into an excel file?

Former Member
0 Kudos

can anyone let me know how to download list data into excel file? is there a relevent function module?

9 REPLIES 9

Former Member
0 Kudos

In the output screen goto


LIST-->SAVE/SEND-->FILE-->Spreadsheet...

can download to Excel....

Edited by: Sukriti Saha on Oct 22, 2008 10:27 AM

Former Member
0 Kudos

Hi,

Use WS_DOWNLOAD...

Regards

mudit

Former Member
0 Kudos

Hi,

There is one more good example here to Download a report to excel with format (border, color cell, etc) .

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

Regards

Mudit

Former Member
0 Kudos

Hi,

Refer to following link,

[;

Hope this will help you.

Regards

Natasha Garg

Former Member
0 Kudos

Hi tabrez sheik ,

If want to download the excel sheet of ALV report then.

GOTO menu bar of displayed report->list-export->local file->spread sheet.

Or else you are working with any other revert back with some more inputs.

Cheers!!

Balu

satsrockford
Active Participant
0 Kudos

hi

chk this code

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.

Check this link also..

hope it helps you..

regards

Satish

0 Kudos

Hi,

Path to save in excel sheet is

System->List->Save->Local File->Spreadsheet

Former Member
0 Kudos

Hi Tabrez,

There are two ways.

1. Use the FM GUI_DOWNLOAD, in that pass your internal table and mention the file path and Pass 'X' to WRITE_FIELD_SEPARATOR.

2. after your list is generated, goto

LIST->SAVE/SEND-->FILE select radio button Spread Sheet and give the download path.

i hope it may help you,

Regards

Kumar M

Former Member
0 Kudos

Try this Function module GUI_DOWNLOAD