Code:
REPORT ZTEST_READ_EXCEL LINE-SIZE 1023.
* Пример считывания данных из Excel .
* Excel-файл в данном примере должен состоять из двух колонок
TYPE-POOLS: OLE2.
DATA: BEGIN OF DATA_TAB OCCURS 0,
POLE1(10),
POLE2(2000),
END OF DATA_TAB.
PARAMETERS: FILENAME TYPE LOCALFILE DEFAULT 'C:\TEST.XLS' OBLIGATORY,
BEGCOL TYPE I DEFAULT 1 OBLIGATORY, "Начальная колонка
BEGROW TYPE I DEFAULT 1 OBLIGATORY, "Начальная строка
KOLSTROK TYPE I DEFAULT 10 OBLIGATORY. "Количество строк
DATA: H_EXCEL TYPE OLE2_OBJECT,
H_MAPL TYPE OLE2_OBJECT,
H_SHEET TYPE OLE2_OBJECT,
H_ZL TYPE OLE2_OBJECT,
X TYPE I,
Y TYPE I.
START-OF-SELECTION.
CLEAR: DATA_TAB.
REFRESH: DATA_TAB.
CREATE OBJECT H_EXCEL 'EXCEL.APPLICATION'.
SET PROPERTY OF H_EXCEL 'Visible' = 0.
CALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL.
CALL METHOD OF H_MAPL 'Open'
EXPORTING
#1 = FILENAME.
CALL METHOD OF H_EXCEL 'Worksheets' = H_SHEET
EXPORTING
#1 = 'Лист1'.
CALL METHOD OF H_SHEET 'Activate'.
X = BEGROW.
Y = BEGCOL.
DO KOLSTROK TIMES.
CALL METHOD OF H_EXCEL 'Cells' = H_ZL
EXPORTING
#1 = X
#2 = Y.
GET PROPERTY OF H_ZL 'Value' = DATA_TAB-POLE1.
ADD 1 TO Y.
CALL METHOD OF H_EXCEL 'Cells' = H_ZL
EXPORTING
#1 = X
#2 = Y.
GET PROPERTY OF H_ZL 'Value' = DATA_TAB-POLE2.
SUBTRACT 1 FROM Y.
APPEND DATA_TAB.
CLEAR: DATA_TAB.
ADD 1 TO X.
ENDDO.
FREE OBJECT H_EXCEL.
FREE OBJECT H_SHEET.
FREE OBJECT H_MAPL.
FREE OBJECT H_SHEET.
LOOP AT DATA_TAB.
WRITE:/ DATA_TAB-POLE1, DATA_TAB-POLE2.
ENDLOOP.