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: 

Function module to upload the data from Internal table to excel file

Former Member
0 Kudos

Hi

Please Give me the Function module to Upload the data from Internal table To Excel sheet(Output File)

Thanks

Ajay

1 ACCEPTED SOLUTION

Former Member
0 Kudos

DATA: xcel TYPE TABLE OF alsmex_tabline WITH HEADER LINE.

REFRESH: xcel, ltab.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

filename = pa_file

i_begin_col = 1

i_begin_row = 2

i_end_col = 200

i_end_row = 5000

TABLES

intern = xcel

EXCEPTIONS

inconsistent_parameters = 1

upload_ole = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • Fill the internal table with the values

LOOP AT xcel.

ltab-field1 = xcel-value.

CASE xcel-col.

WHEN '0001'.

ltab-field2 = xcel-value.

WHEN '0002'.

ltab-field3 = xcel-value.

ENDCASE.

reward if useful

6 REPLIES 6

Former Member
0 Kudos

Hi Ajay,

I guess you mean "download" data from SAP to presentation server.

Have you tried GUI_DOWNLOAD

Cheers,

Aditya

Former Member
0 Kudos

CONCATENATE p_dfile

'/'

c_tofile

sy-datum+6(2)

sy-datum+4(2)

sy-datum+2(2)

sy-uzeit+0(2)

sy-uzeit+4(2)

'.XLS'

INTO l_file.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

filename = l_file

  • FILETYPE = 'ASC'

  • APPEND = ' '

write_field_separator = 'X'

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = it_final

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.

MESSAGE i000(zmamic) WITH 'Error downloading file'.

ELSE.

MESSAGE s000(zmamic) WITH 'File downloaded'.

ENDIF.

Former Member
0 Kudos

Hi,

The following code will help u to splve the problem.

have a look,

TABLES: VBAK,VBAP.

DATA: BEGIN OF I_VBAK OCCURS 0,

VBELN LIKE VBAK-VBELN,

ERDAT LIKE VBAK-ERDAT,

ERNAM LIKE VBAK-ERNAM,

AUDAT LIKE VBAK-AUDAT,

VBTYP LIKE VBAK-VBTYP,

END OF I_VBAK.

DATA: BEGIN OF I_VBAP OCCURS 0,

VBELN LIKE VBAP-VBELN,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

CHARG LIKE VBAP-CHARG,

MATKL LIKE VBAP-MATKL,

END OF I_VBAP.

DATA: BEGIN OF IT_VBAK OCCURS 0,

VBELN LIKE VBAK-VBELN,

ERDAT LIKE VBAK-ERDAT,

ERNAM LIKE VBAK-ERNAM,

AUDAT LIKE VBAK-AUDAT,

VBTYP LIKE VBAK-VBTYP,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

CHARG LIKE VBAP-CHARG,

MATKL LIKE VBAP-MATKL,

END OF IT_VBAK.

SELECT VBELN ERDAT ERNAM AUDAT VBTYP FROM VBAK INTO TABLE I_VBAK.

SELECT VBELN POSNR MATNR CHARG MATKL FROM VBAP INTO TABLE I_VBAP.

SORT: I_VBAK BY VBELN,I_VBAP BY VBELN.

LOOP AT I_VBAK.

READ TABLE I_VBAP WITH KEY VBELN = I_VBAK-VBELN BINARY SEARCH.

IF SY-SUBRC = 0.

MOVE I_VBAK-VBELN TO IT_VBAK-VBELN.

MOVE I_VBAK-ERDAT TO IT_VBAK-ERDAT.

MOVE I_VBAK-ERNAM TO IT_VBAK-ERNAM.

MOVE I_VBAK-AUDAT TO IT_VBAK-AUDAT.

MOVE I_VBAK-VBTYP TO IT_VBAK-VBTYP.

MOVE I_VBAP-POSNR TO IT_VBAK-POSNR.

MOVE I_VBAP-MATNR TO IT_VBAK-MATNR.

MOVE I_VBAP-CHARG TO IT_VBAK-CHARG.

MOVE I_VBAP-MATKL TO IT_VBAK-MATKL.

APPEND IT_VBAK.

ENDIF.

ENDLOOP.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

BIN_FILESIZE =

FILENAME = 'D:\C5.DOC'

FILETYPE = 'ASC' "Separate Columns by Tabs in Case of ASCII Download

APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

HEADER = '00'

TRUNC_TRAILING_BLANKS = ' '

WRITE_LF = 'X'

COL_SELECT = ' '

COL_SELECT_MASK = ' '

DAT_MODE = ' '

CONFIRM_OVERWRITE = 'X' "Overwrite The File Only After

Confirmation

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 = ' '

WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE

IMPORTING

FILELENGTH =

TABLES

DATA_TAB = IT_VBAK

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.

ENDIF.

Former Member
0 Kudos

hi,

try this program and in program change my path to ur path.

tables:makt.

data:begin of i_header occurs 0,

field(30) type c,

end of i_header,

begin of itab occurs 0,

matnr type makt-matnr,

spras type makt-spras,

maktx type makt-maktx,

end of itab.

select matnr spras maktx from makt into corresponding fields of table itab.

REFRESH i_header.

i_header-field = 'Material number'.

append i_header.

i_header-field = 'Language'.

append i_header.

i_header-field = 'Description'.

append i_header.

clear i_header.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

FILENAME = 'D:\prsr\3.txt'

FILETYPE = 'DAT'

TABLES

data_tab = itab

FIELDNAMES = i_header

EXCEPTIONS

OTHERS = 0

.

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 its useful

Former Member
0 Kudos

DATA: xcel TYPE TABLE OF alsmex_tabline WITH HEADER LINE.

REFRESH: xcel, ltab.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

filename = pa_file

i_begin_col = 1

i_begin_row = 2

i_end_col = 200

i_end_row = 5000

TABLES

intern = xcel

EXCEPTIONS

inconsistent_parameters = 1

upload_ole = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • Fill the internal table with the values

LOOP AT xcel.

ltab-field1 = xcel-value.

CASE xcel-col.

WHEN '0001'.

ltab-field2 = xcel-value.

WHEN '0002'.

ltab-field3 = xcel-value.

ENDCASE.

reward if useful

Former Member
0 Kudos

use this FM

WS_EXCEL

Reward points if useful