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 TO EXCEL

SantoshKallem
Active Contributor
0 Kudos

HI,

I want to download the contents of the list into excel sheet.

iam using this function module

CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'

EXPORTING

file_name = 'C:/SANTOSH'

TABLES

data_tab = tab_gl1[] "list contents

fieldnames = tab_header[]. " list heading

but it is giving dump.

It is control break report.

In main heading i have company code and fiscal year.

for list heading i have 10 fields.

please help me.

points assured for helpful

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

try this.using gui_download..

with WRITE_FIELD_SEPARATOR = 'X'

option...you will get desired output..

REPORT YH642_EXCEL.

TABLES SPFLI.

DATA:

T_SPFLI LIKE STANDARD TABLE OF SPFLI.

SELECT * FROM SPFLI INTO TABLE T_SPFLI.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

FILENAME = 'C:\MOHAN\FILE.XLS'

FILETYPE = 'ASC'

  • APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = T_SPFLI

  • FIELDNAMES =

EXCEPTIONS

FILE_WRITE_ERROR = 1

NO_BATCH = 2

GUI_REFUSE_FILETRANSFER = 3

INVALID_TYPE = 4

NO_AUTHORITY = 5

UNKNOWN_ERROR = 6

HEADER_NOT_ALLOWED = 7

SEPARATOR_NOT_ALLOWED = 8

FILESIZE_NOT_ALLOWED = 9

HEADER_TOO_LONG = 10

DP_ERROR_CREATE = 11

DP_ERROR_SEND = 12

DP_ERROR_WRITE = 13

UNKNOWN_DP_ERROR = 14

ACCESS_DENIED = 15

DP_OUT_OF_MEMORY = 16

DISK_FULL = 17

DP_TIMEOUT = 18

FILE_NOT_FOUND = 19

DATAPROVIDER_EXCEPTION = 20

CONTROL_FLUSH_ERROR = 21

OTHERS = 22

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ram.

7 REPLIES 7

Former Member
0 Kudos

Hi,

Check the following code and change your report

check for the declarations of the internal tables:

REPORT ZRBC025 MESSAGE-ID ZAFR LINE-SIZE 200.

PARAMETERS: G_FILNAV LIKE DRAW-FILEP.

  • DEFAULT '/usr/sap/UDV/data/WDACRPR.FTP.P004.D031013'.

PARAMETERS:

P_RAD1 RADIOBUTTON GROUP G1 DEFAULT 'X',

P_RAD2 RADIOBUTTON GROUP G1,

P_FILEN LIKE RLGRAP-FILENAME

DEFAULT 'C:\temp\testfil' VISIBLE LENGTH 60.

DATA: BEGIN OF DLPIVOT OCCURS 20.

INCLUDE STRUCTURE EXCELPIVOT.

DATA: END OF DLPIVOT.

DATA: BEGIN OF DOWNLOAD_FIELDNAMES OCCURS 20,

FIELD(60),

END OF DOWNLOAD_FIELDNAMES.

TYPES: BEGIN OF GT_UNIX_DATA,

  • Info hentet fra S-recorden overst

SRECNO(31), "S6015

MODTAGER(32), "33804

FAKTLISTNO(10), "6070001415

FAKTURANO(10), "6000082431

  • Info hentet i felterne

  • DINFO VBDKR-KUNRG DINFO VBDKR-VBELN ( hvis faktura )

  • DINFO VBRK-KUNRG DINFO VBRK-VBELN ( hvis faktura-liste )

KUNRG_FL LIKE VBRK-KUNRG, "Faktliste

VBELN_FL LIKE VBRK-VBELN, "Faktliste

KUNRG_FA LIKE VBDKR-KUNRG, "Faktura

VBELN_FA LIKE VBDKR-VBELN, "Faktura

DUBLET(1),

END OF GT_UNIX_DATA.

DATA: GI_UNIX_DATA TYPE STANDARD TABLE OF GT_UNIX_DATA WITH HEADER LINE.

DATA: BEGIN OF RECORD,

TEXT(1000),

NUMBER TYPE I,

END OF RECORD.

  • Husk TEXT MODE da det ellers giver underlige returkoder

OPEN DATASET G_FILNAV FOR INPUT IN TEXT MODE ENCODING DEFAULT.

IF NOT SY-SUBRC IS INITIAL.

WRITE: / 'Unix-filen kunne ikke abnes'.

WRITE: / 'OPEN DATASET returkode = ', SY-SUBRC.

ELSE.

DO.

READ DATASET G_FILNAV INTO RECORD.

IF SY-SUBRC NE 0.

EXIT.

ELSE.

IF RECORD(1) = 'S'.

MOVE RECORD+1(31) TO GI_UNIX_DATA-SRECNO.

MOVE RECORD+33(32) TO GI_UNIX_DATA-MODTAGER.

MOVE RECORD+65(10) TO GI_UNIX_DATA-FAKTLISTNO.

MOVE RECORD+97(10) TO GI_UNIX_DATA-FAKTURANO.

ENDIF.

IF RECORD(5) = 'DINFO'.

CASE RECORD+41(20).

WHEN 'VBRK-VBELN '.

MOVE RECORD+175(10) TO GI_UNIX_DATA-VBELN_FL.

WHEN 'VBRK-KUNRG '.

MOVE RECORD+175(10) TO GI_UNIX_DATA-KUNRG_FL.

APPEND GI_UNIX_DATA.

CLEAR GI_UNIX_DATA.

WHEN 'VBDKR-VBELN '.

MOVE RECORD+175(10) TO GI_UNIX_DATA-VBELN_FA.

WHEN 'VBDKR-KUNRG '.

MOVE RECORD+175(10) TO GI_UNIX_DATA-KUNRG_FA.

APPEND GI_UNIX_DATA.

CLEAR GI_UNIX_DATA.

ENDCASE.

ENDIF.

ENDIF.

ENDDO.

CLOSE DATASET G_FILNAV.

ENDIF.

SORT GI_UNIX_DATA BY SRECNO

MODTAGER

FAKTLISTNO

FAKTURANO.

DATA: GL_SRECNO LIKE GI_UNIX_DATA-SRECNO.

DATA: GL_MODTAGER LIKE GI_UNIX_DATA-MODTAGER.

DATA: G_INDEX LIKE SY-TABIX.

LOOP AT GI_UNIX_DATA.

G_INDEX = SY-TABIX.

IF NOT GI_UNIX_DATA-SRECNO IS INITIAL.

IF GI_UNIX_DATA-SRECNO = GL_SRECNO.

IF GI_UNIX_DATA-MODTAGER = GL_MODTAGER.

MOVE 'X' TO GI_UNIX_DATA-DUBLET.

MODIFY GI_UNIX_DATA INDEX G_INDEX TRANSPORTING DUBLET.

ENDIF.

ENDIF.

ENDIF.

GL_SRECNO = GI_UNIX_DATA-SRECNO.

GL_MODTAGER = GI_UNIX_DATA-MODTAGER.

ENDLOOP.

IF P_RAD1 = 'X'.

PERFORM VIS_PRINT.

ELSE.

PERFORM DOWNLOAD_TIL_EXCEL.

ENDIF.

&----


*& Form DOWNLOAD_TIL_EXCEL

&----


FORM DOWNLOAD_TIL_EXCEL.

MOVE 'S-RECORD' TO DOWNLOAD_FIELDNAMES-FIELD.

APPEND DOWNLOAD_FIELDNAMES.

MOVE 'Modtager' TO DOWNLOAD_FIELDNAMES-FIELD.

APPEND DOWNLOAD_FIELDNAMES.

MOVE 'Faktliste Nr' TO DOWNLOAD_FIELDNAMES-FIELD.

APPEND DOWNLOAD_FIELDNAMES.

MOVE 'Faktura nr' TO DOWNLOAD_FIELDNAMES-FIELD.

APPEND DOWNLOAD_FIELDNAMES.

MOVE 'KUNRG (faktListe)' TO DOWNLOAD_FIELDNAMES-FIELD.

APPEND DOWNLOAD_FIELDNAMES.

MOVE 'VBELN (faktliste)' TO DOWNLOAD_FIELDNAMES-FIELD.

APPEND DOWNLOAD_FIELDNAMES.

MOVE 'KUNRG (faktura)' TO DOWNLOAD_FIELDNAMES-FIELD.

APPEND DOWNLOAD_FIELDNAMES.

MOVE 'VBELN (faktura)' TO DOWNLOAD_FIELDNAMES-FIELD.

APPEND DOWNLOAD_FIELDNAMES.

MOVE 'Dublet indikator' TO DOWNLOAD_FIELDNAMES-FIELD.

APPEND DOWNLOAD_FIELDNAMES.

CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'

EXPORTING

FILE_NAME = P_FILEN

DATA_SHEET_NAME = 'Ark1' "text-002

PIVOT_SHEET_NAME = 'PIVOT' "text-003

TABLES

PIVOT_FIELD_TAB = DLPIVOT

DATA_TAB = GI_UNIX_DATA

FIELDNAMES = DOWNLOAD_FIELDNAMES

EXCEPTIONS

FILE_NOT_EXIST = 1

FILENAME_EXPECTED = 2

COMMUNICATION_ERROR = 3

OLE_OBJECT_METHOD_ERROR = 4

OLE_OBJECT_PROPERTY_ERROR = 5

INVALID_FILENAME = 6

INVALID_PIVOT_FIELDS = 7

DOWNLOAD_PROBLEM = 8

OTHERS = 9.

CASE SY-SUBRC.

WHEN 0.

WHEN 8.

MESSAGE I173(PN) RAISING DOWNLOAD_PROBLEM.

WHEN OTHERS.

MESSAGE I170(PN) WITH TEXT-404.

ENDCASE.

ENDFORM. " DOWNLOAD_TIL_EXCEL

&----


*& Form VIS_PRINT

&----


FORM VIS_PRINT.

LOOP AT GI_UNIX_DATA.

WRITE: / GI_UNIX_DATA-SRECNO,

GI_UNIX_DATA-MODTAGER,

GI_UNIX_DATA-FAKTLISTNO,

GI_UNIX_DATA-FAKTURANO,

GI_UNIX_DATA-KUNRG_FL,

GI_UNIX_DATA-VBELN_FL,

GI_UNIX_DATA-KUNRG_FA,

GI_UNIX_DATA-VBELN_FA,

GI_UNIX_DATA-DUBLET.

ENDLOOP.

ENDFORM. " VIS_PRINT

Regards,

Anji

Former Member
0 Kudos

What is ur OS ???

Check u gave the file name as <b>'C:/santosh'</b>

but it has to be <b>'C:\santosh.xls'.</b>

<b>check this code !! its working fine with me...</b>

data t_spfli type standard table of spfli with header line.

select *

from spfli client specified

into table t_spfli

where mandt eq '800'.

call function 'EXCEL_OLE_STANDARD_DAT'

exporting

file_name = 'D:\sai.xls'

TABLES

DATA_TAB = t_spfli

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

reward if it helps u...

sai ramesh

Former Member
0 Kudos

Hi,

here a short exampls that works.

TABLES: BKPF.

*

DATA: BEGIN OF ITAB OCCURS 0,

BUKRS LIKE BKPF-BUKRS,

GJAHR LIKE BKPF-GJAHR,

END OF ITAB.

*

DATA: BEGIN OF ITAB_FIELD OCCURS 0,

TXT(10),

TXT1(10),

END OF ITAB_FIELD.

*

SELECT BUKRS GJAHR FROM BKPF INTO TABLE ITAB UP TO 100 ROWS.

*

ITAB_FIELD-TXT = 'Bukrs'. APPEND ITAB_FIELD.

ITAB_FIELD-TXT = 'Gjahr'. APPEND ITAB_FIELD.

*

CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'

EXPORTING

FILE_NAME = 'C:\TEST'

TABLES

DATA_TAB = ITAB

FIELDNAMES = ITAB_FIELD

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

OTHERS = 8.

*

IF SY-SUBRC <> 0.

WRITE: / SY-SUBRC.

ENDIF.

*

Regards, Dieter

SantoshKallem
Active Contributor
0 Kudos

THANX FOR U R INSTANT REPLIES.

THIS IS MY CODE CAN U TELL ME WHAT IS THE ERROR.

IAM USING ECC 6.0

&----


  • Program ZSAN_ACCDOC

  • Author Santosh

  • Date OF creation : 08th march 2007

  • Date Of Modification

  • Changes

  • Change Request No CL3K900149

  • Package ZSANTOSH

&----


REPORT zsan_accdoc NO STANDARD PAGE HEADING LINE-SIZE 143.

----


  • TABLE DECLARATION

----


TABLES: bseg.

----


  • INTERNAL TABLE DECLARATION

----


DATA: BEGIN OF tab_gl OCCURS 0,

bukrs LIKE bseg-bukrs, "Company code

gjahr LIKE bseg-gjahr, "Fiscal Year

belnr LIKE bseg-belnr, "Accounting Document Number

buzei LIKE bseg-buzei, "Number of Line Item Within Accounting Document

koart LIKE bseg-koart, "Account Type

shkzg LIKE bseg-shkzg, "Debit/Credit Indicator

gsber LIKE bseg-gsber, "Business Area

dmbtr LIKE bseg-dmbtr, "Amount in Local Currency

kostl LIKE bseg-kostl, "Cost Center

saknr LIKE bseg-saknr, "G/L Account Number

hkont LIKE bseg-hkont, "General Ledger Account

zlsch LIKE bseg-zlsch, "Payment Method

END OF tab_gl.

----


  • START OF SELECTION options

----


SELECT-OPTIONS: acc FOR bseg-belnr.

----


  • START OF SELECTION

----


START-OF-SELECTION.

SELECT bukrs

gjahr

belnr

buzei

koart

shkzg

gsber

dmbtr

kostl

saknr

hkont

zlsch

FROM bseg INTO TABLE tab_gl

WHERE belnr IN acc.

----


  • END OF SELECTION

----


LOOP AT tab_gl.

IF tab_gl-zlsch = ''.

tab_gl-zlsch = '*****'.

MODIFY tab_gl.

ENDIF.

IF tab_gl-kostl = ''.

tab_gl-kostl = '*******'.

MODIFY tab_gl.

ENDIF.

IF tab_gl-gsber = ''.

tab_gl-gsber = '*******'.

MODIFY tab_gl.

ENDIF.

IF tab_gl-saknr = ''.

tab_gl-saknr = '*******'.

MODIFY tab_gl.

ENDIF.

ENDLOOP.

sort tab_gl by belnr bukrs gjahr .

LOOP AT tab_gl.

write: sy-uline.

at new gjahr.

perform header.

endat.

FORMAT COLOR OFF.

WRITE:/ sy-vline, tab_gl-belnr COLOR 1, sy-vline,

(10) tab_gl-buzei, sy-vline,

(10) tab_gl-koart, sy-vline,

(10) tab_gl-shkzg, sy-vline,

(11) tab_gl-gsber, sy-vline,

(16) tab_gl-dmbtr, sy-vline,

(12) tab_gl-kostl, sy-vline,

(11) tab_gl-saknr, sy-vline,

(11) tab_gl-hkont, sy-vline,

(11) tab_gl-zlsch, sy-vline.

ENDLOOP.

  • ---------------------------------------------------------------------

  • FOR DOWNLOADING TO EXCEL

----


SET PF-STATUS 'ZEXCEL'.

AT USER-COMMAND.

CASE sy-ucomm.

WHEN 'DOWN'.

CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'

EXPORTING

file_name = 'C:/SANTOSH'

TABLES

data_tab = tab_gl[].

ENDCASE.

----


  • TOP OF PAGE

----


TOP-OF-PAGE.

form header.

FORMAT COLOR 6 INVERSE ON.

skip 2.

FORMAT COLOR 6 INVERSE OFF.

FORMAT COLOR 4 INVERSE ON.

WRITE:/ 'COMPANY CODE:', tab_gl-bukrs,

88 'FISCAL YEAR:', tab_gl-gjahr.

FORMAT COLOR 4 INVERSE OFF.

ULINE.

WRITE: sy-vline, 'DOC NUM ', sy-vline,

'LINE ITEMS', sy-vline,

'ACC TYPE ', sy-vline,

'DT/CR INDI', sy-vline,

'BUSS AREA ', sy-vline,

'AMOUNT LOCAL CUR', sy-vline,

'COST CENTER ', sy-vline,

'G/L ACC NO ', sy-vline,

'G/L Account', sy-vline,

'PAY METHOD ', sy-vline.

ULINE.

endform.

EVEN I TRIED WITH SMALL PROGRAM , IT IS WORKING FINE.

THIS IS IT.

&----


*& Report ZKNA1SAN

*&

&----


*&

*&

&----


REPORT ZKNA1SAN.

DATA: BEGIN OF TAB_KNA1 OCCURS 0,

KUNNR LIKE KNA1-KUNNR,

NAME1 LIKE KNA1-NAME1,

END OF TAB_KNA1.

DATA: BEGIN OF TAB_HEADER OCCURS 0,

HEAD(20) TYPE C,

END OF TAB_HEADER.

TAB_HEADER-HEAD = 'CUST NUM'.

append tab_header.

TAB_HEADER-HEAD = 'NAME'.

APPEND TAB_HEADER.

START-OF-SELECTION.

SELECT KUNNR NAME1 FROM KNA1 INTO TABLE TAB_KNA1.

end-of-selection.

loop at tab_kna1.

write:/ tab_kna1-kunnr,

tab_kna1-name1.

endloop.

TOP-OF-PAGE.

loop at tab_header.

WRITE: tab_header.

endloop.

set pf-status 'ZEXCEL'.

AT USER-COMMAND.

CASE SY-UCOMM.

WHEN 'DOWN'.

CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'

EXPORTING

file_name = 'C:\SAN.XLS'

  • CREATE_PIVOT = 0

  • DATA_SHEET_NAME = ' '

  • PIVOT_SHEET_NAME = ' '

  • PASSWORD = ' '

  • PASSWORD_OPTION = 0

TABLES

  • PIVOT_FIELD_TAB =

DATA_TAB = TAB_KNA1[]

FIELDNAMES = TAB_HEADER[]

  • 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

  • OTHERS = 8

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDCASE.

WHERE IAM WRONG

Former Member
0 Kudos

Hi,

try this.using gui_download..

with WRITE_FIELD_SEPARATOR = 'X'

option...you will get desired output..

REPORT YH642_EXCEL.

TABLES SPFLI.

DATA:

T_SPFLI LIKE STANDARD TABLE OF SPFLI.

SELECT * FROM SPFLI INTO TABLE T_SPFLI.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

FILENAME = 'C:\MOHAN\FILE.XLS'

FILETYPE = 'ASC'

  • APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = T_SPFLI

  • FIELDNAMES =

EXCEPTIONS

FILE_WRITE_ERROR = 1

NO_BATCH = 2

GUI_REFUSE_FILETRANSFER = 3

INVALID_TYPE = 4

NO_AUTHORITY = 5

UNKNOWN_ERROR = 6

HEADER_NOT_ALLOWED = 7

SEPARATOR_NOT_ALLOWED = 8

FILESIZE_NOT_ALLOWED = 9

HEADER_TOO_LONG = 10

DP_ERROR_CREATE = 11

DP_ERROR_SEND = 12

DP_ERROR_WRITE = 13

UNKNOWN_DP_ERROR = 14

ACCESS_DENIED = 15

DP_OUT_OF_MEMORY = 16

DISK_FULL = 17

DP_TIMEOUT = 18

FILE_NOT_FOUND = 19

DATAPROVIDER_EXCEPTION = 20

CONTROL_FLUSH_ERROR = 21

OTHERS = 22

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ram.

Former Member
0 Kudos

Hi.

change file_name = 'C:/SANTOSH'

to file_name = 'C:\SANTOSH'

SantoshKallem
Active Contributor
0 Kudos

Now i used gui_download function module 2 times.

first time for heading and second time for contents with append = 'X'.

getting data with heading and contents.

but actual out put is like this

comany code : 1000__________________fiscal year :2006

______________________________________________

doc num_____gl account______payment medthod

42342________3423443___________C

312321________432432___________C

______________________________________________

comany code : 2000__________________fiscal year :2006

_______________________________________________

doc num_____gl account______payment medthod

_____________________________________________

4232________3443443___________C

312________43222______________C

_________________________________________________

it is control break report.

is there any possibilites to get this format as it is in the excel sheet