05-18-2006 6:01 AM
Hi all,
How can we read and write to excel sheets from ABAP?
What are the function modules to do that??
Thanks in advance.
05-18-2006 6:06 AM
Hi anandaraja,
1. To upload data from excel file into internal table.
2. There are TWO options.
a) either save the excel to TAB Delimited file,
and use GUI_UPLOAD to upload the data in internal table.
b) use FM for excel purpose.
3. a) is easy and recommended
4. b) there is a FM for it,
but we have to apply some more logic
bcos the FM uploads data of excel
in the intenal table,
CELL BY CELL
5. afTER THAT , we have to convert this cell by cell data,
into our format of internal table.
6. use this code (just copy paste in new program)
(it is tried wit T001 structure data)
(it will AUTOMATICALLY based upon the
fields of internal table,
convert data from cell by cell,
to that of internal table fields)
REPORT abc.
*----
DATA : ex LIKE TABLE OF alsmex_tabline WITH HEADER LINE.
DATA : t001 LIKE TABLE OF t001 WITH HEADER LINE.
DATA : cmp LIKE TABLE OF rstrucinfo WITH HEADER LINE.
DATA : col TYPE i.
DATA : col1 TYPE i.
FIELD-SYMBOLS : <fs> .
DATA : fldname(50) TYPE c.
*----
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = 'd:\def.xls'
i_begin_col = 1
i_begin_row = 1
i_end_col = 100
i_end_row = 100
TABLES
intern = ex
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
BREAK-POINT.
*----
CALL FUNCTION 'GET_COMPONENT_LIST'
EXPORTING
program = sy-repid
fieldname = 'T001'
TABLES
components = cmp.
*----
LOOP AT ex.
AT NEW row.
IF sy-tabix <> 1.
APPEND t001.
CLEAR t001.
ENDIF.
ENDAT.
col = ex-col.
col1 = col + 1.
READ TABLE cmp INDEX col.
CONCATENATE 'T001-' cmp-compname INTO fldname.
ASSIGN (fldname) TO <fs>.
<fs> = ex-value.
ENDLOOP.
BREAK-POINT.
regards,
amit m.