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

Former Member
0 Kudos

hi,

how to download data from excel to sap.

plz give one example .

5 REPLIES 5

former_member181962
Active Contributor
0 Kudos

MOving the data from EXcel to SAP is not called Download.

It is called Upload.

use the function module

GUI_UPLOAD

REgards,

Ravi Kanth Talagana

Former Member
0 Kudos

Hi Pawan,

use FM 'ALSM_EXCEL_TO_INTERNAL_TABLE'.

Refer Below Example:

*&———————————————————————*
*& Report  UPLOAD_EXCEL                                                *
*&                                                                     *
*&———————————————————————*
*&                                                                     *
*& Upload and excel file into an internal table using the following    *
*& function module: ALSM_EXCEL_TO_INTERNAL_TABLE                       *
*&———————————————————————*
REPORT  UPLOAD_EXCEL no standard page heading.

*Data Declaration
*—————-
data: itab like alsmex_tabline occurs 0 with header line.
* Has the following format:
*             Row number   | Colum Number   |   Value
*             —————————————
*      i.e.     1                 1             Name1
*               2                 1             Joe

TYPES: Begin of t_record,
name1 like itab-value,
name2 like itab-value,
age   like itab-value,
End of t_record.
DATA: it_record type standard table of t_record initial size 0,
wa_record type t_record.
DATA: gd_currentrow type i.

*Selection Screen Declaration
*—————————-
PARAMETER p_infile like rlgrap-filename.

************************************************************************
*START OF SELECTION
call function ‘ALSM_EXCEL_TO_INTERNAL_TABLE’
exporting
filename                = p_infile
i_begin_col             = ‘1′
i_begin_row             = ‘2′  “Do not require headings
i_end_col               = ‘14′
i_end_row               = ‘31′
tables
intern                  = itab
exceptions
inconsistent_parameters = 1
upload_ole              = 2
others                  = 3.
if sy-subrc <> 0.
message e010(zz) with text-001. “Problem uploading Excel Spreadsheet
endif.

* Sort table by rows and colums
sort itab by row col.

* Get first row retrieved
read table itab index 1.

* Set first row retrieved to current row
gd_currentrow = itab-row.

loop at itab.
*   Reset values for next row
if itab-row ne gd_currentrow.
append wa_record to it_record.
clear wa_record.
gd_currentrow = itab-row.
endif.

case itab-col.
when ‘0001′.                              “First name
wa_record-name1 = itab-value.
when ‘0002′.                              “Surname
wa_record-name2 = itab-value.
when ‘0003′.                              “Age
wa_record-age   = itab-value.
endcase.
endloop.
append wa_record to it_record.
*!! Excel data is now contained within the internal table IT_RECORD

* Display report data for illustration purposes
loop at it_record into wa_record.
write:/     sy-vline,
(10) wa_record-name1, sy-vline,
(10) wa_record-name2, sy-vline,
(10) wa_record-age, sy-vline.
endloop.

Refer Below Links for more Info:

http://www.sap-img.com/abap/upload-direct-excel.htm

Regards,

Sunil

Former Member
0 Kudos

Hi,

Please try these Function Modules

'ALSM_EXCEL_TO_INTERNAL_TABLE'

'TEXT_CONVERT_XLS_TO_SAP'

Please check this link for code

[ALSM_EXCEL_TO_INTERNAL_TABLE|http://www.sap-img.com/abap/upload-direct-excel.htm]

[TEXT_CONVERT_XLS_TO_SAP|http://www.sapdevelopment.co.uk/file/file_upexcel.htm]

Please try this program

PARAMETERS: filename LIKE rlgrap-filename MEMORY ID M01, 
            begcol TYPE i DEFAULT 1 NO-DISPLAY, 
            begrow TYPE i DEFAULT 1 NO-DISPLAY, 
            endcol TYPE i DEFAULT 100 NO-DISPLAY, 
            endrow TYPE i DEFAULT 32000 NO-DISPLAY. 
* Tick don't append header 
PARAMETERS: kzheader AS CHECKBOX. 

DATA: BEGIN OF intern OCCURS 0. 
        INCLUDE STRUCTURE  alsmex_tabline. 
DATA: END OF intern. 

DATA: BEGIN OF intern1 OCCURS 0. 
        INCLUDE STRUCTURE  alsmex_tabline. 
DATA: END OF intern1. 

DATA: BEGIN OF t_col OCCURS 0, 
       col LIKE alsmex_tabline-col, 
       size TYPE i. 
DATA: END OF t_col. 

DATA: zwlen TYPE i, 
      zwlines TYPE i. 

DATA: BEGIN OF fieldnames OCCURS 3, 
        title(60), 
        table(6), 
        field(10), 
        kz(1), 
      END OF fieldnames. 
* No of columns 
DATA: BEGIN OF data_tab OCCURS 0, 
       value_0001(50), 
       value_0002(50), 
       value_0003(50), 
       value_0004(50), 
       value_0005(50), 
       value_0006(50), 
       value_0007(50), 
       value_0008(50), 
       value_0009(50), 
       value_0010(50), 
       value_0011(50), 
       value_0012(50), 
       value_0013(50), 
       value_0014(50), 
       value_0015(50), 
       value_0016(50), 
       value_0017(50), 
       value_0018(50), 
       value_0019(50), 
       value_0020(50), 
       value_0021(50), 
       value_0022(50), 
       value_0023(50), 
       value_0024(50), 
       value_0025(50), 
       value_0026(50), 
       value_0027(50), 
       value_0028(50), 
       value_0029(50), 
       value_0030(50), 
       value_0031(50), 
       value_0032(50), 
       value_0033(50), 
       value_0034(50), 
       value_0035(50), 
       value_0036(50), 
       value_0037(50), 
       value_0038(50), 
       value_0039(50), 
       value_0040(50), 
       value_0041(50), 
       value_0042(50), 
       value_0043(50), 
       value_0044(50), 
       value_0045(50), 
       value_0046(50), 
       value_0047(50), 
       value_0048(50), 
       value_0049(50), 
       value_0050(50), 
       value_0051(50), 
       value_0052(50), 
       value_0053(50), 
       value_0054(50), 
       value_0055(50), 
       value_0056(50), 
       value_0057(50), 
       value_0058(50), 
       value_0059(50), 
       value_0060(50), 
       value_0061(50), 
       value_0062(50), 
       value_0063(50), 
       value_0064(50), 
       value_0065(50), 
       value_0066(50), 
       value_0067(50), 
       value_0068(50), 
       value_0069(50), 
       value_0070(50), 
       value_0071(50), 
       value_0072(50), 
       value_0073(50), 
       value_0074(50), 
       value_0075(50), 
       value_0076(50), 
       value_0077(50), 
       value_0078(50), 
       value_0079(50), 
       value_0080(50), 
       value_0081(50), 
       value_0082(50), 
       value_0083(50), 
       value_0084(50), 
       value_0085(50), 
       value_0086(50), 
       value_0087(50), 
       value_0088(50), 
       value_0089(50), 
       value_0090(50), 
       value_0091(50), 
       value_0092(50), 
       value_0093(50), 
       value_0094(50), 
       value_0095(50), 
       value_0096(50), 
       value_0097(50), 
       value_0098(50), 
       value_0099(50), 
       value_0100(50). 
DATA: END OF data_tab. 
DATA: tind(4) TYPE n. 
DATA: zwfeld(19). 
FIELD-SYMBOLS: <fs1>. 

AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename. 
  CALL FUNCTION 'KD_GET_FILENAME_ON_F4' 
       EXPORTING 
            mask      = '*.xls' 
            static    = 'X' 
       CHANGING 
            file_name = filename. 
  

START-OF-SELECTION. 

  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' 
       EXPORTING 
            filename                = filename 
            i_begin_col             = begcol 
            i_begin_row             = begrow 
            i_end_col               = endcol 
            i_end_row               = endrow 
       TABLES 
            intern                  = intern 
       EXCEPTIONS 
            inconsistent_parameters = 1 
            upload_ole              = 2 
            OTHERS                  = 3. 

  IF sy-subrc <> 0. 
    WRITE:/ 'Upload Error ', SY-SUBRC. 
  ENDIF. 

END-OF-SELECTION. 

  LOOP AT intern. 
    intern1 = intern. 
    CLEAR intern1-row. 
    APPEND intern1. 
  ENDLOOP. 

  SORT intern1 BY col. 
  LOOP AT intern1. 
    AT NEW col. 
      t_col-col = intern1-col. 
      APPEND t_col. 
    ENDAT. 
    zwlen = strlen( intern1-value ). 
    READ TABLE t_col WITH KEY col = intern1-col. 
    IF sy-subrc EQ 0. 
      IF zwlen > t_col-size. 
        t_col-size = zwlen. 
*                          Internal Table, Current Row Index 
        MODIFY t_col INDEX sy-tabix. 
      ENDIF. 
    ENDIF. 
  ENDLOOP. 

  DESCRIBE TABLE t_col LINES zwlines. 

  SORT intern BY row col. 
  IF kzheader = 'X'. 
    LOOP AT intern. 
      fieldnames-title = intern-value. 
      APPEND fieldnames. 
      AT END OF row. 
        EXIT. 
      ENDAT. 
    ENDLOOP. 
  ELSE. 
    DO zwlines TIMES. 
      WRITE sy-index TO fieldnames-title. 
      APPEND fieldnames. 
    ENDDO. 
  ENDIF. 

  SORT intern BY row col. 
  LOOP AT intern. 
    IF kzheader = 'X' 
    AND intern-row = 1. 
      CONTINUE. 
    ENDIF. 
    tind = intern-col. 
    CONCATENATE 'DATA_TAB-VALUE_' tind INTO zwfeld. 
    ASSIGN (zwfeld) TO <fs1>. 
    <fs1> = intern-value. 
    AT END OF row. 
      APPEND data_tab. 
      CLEAR data_tab. 
    ENDAT. 
  ENDLOOP. 

  CALL FUNCTION 'DISPLAY_BASIC_LIST' 
       EXPORTING 
            file_name     = filename 
       TABLES 
            data_tab      = data_tab 
            fieldname_tab = fieldnames. 

*-- End of Program

regards,

raam

Former Member
0 Kudos

Hi,

You can upload the data from Excel to SAP use the FM

'ALSM_EXCEL_TO_INTERNAL_TABLE'.

and pass the required paramentes as:

EXPORTING

filename =

i_begin_col =

i_begin_row =

i_end_col =

i_end_row =

tables

intern =

then the data will be uploaded into the database.

Regards,

Reena.

Former Member
0 Kudos

hi check this..

REPORT ZTESTPROG002.

tables: mara.

PARAMETERS: p_file LIKE rlgrap-filename default 'C:\Documents and Settings\venkatapp\Desktop\venkat.xls'.

data:begin of it_mara occurs 0,

matnr like mara-matnr,

meins like mara-meins,

mtart like mara-mtart,

mbrsh like mara-mbrsh,

end of it_mara.

SELECT matnr

meins

mtart

mbrsh

FROM mara

INTO corresponding fields of TABLE it_mara.

CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'

EXPORTING

i_filename = p_file

TABLES

i_tab_sap_data = it_mara.

regards,

venkat