Разобрался вроде...
Для начинающих чайников скину код чтения Excel файла в SAP R/3. адруг кому пригодится
Цитата:
*&---------------------------------------------------------------------*
*& Report ZSG_TEST_EXCEL
*&
*&---------------------------------------------------------------------*
report zsg_test_excel.
include ole2incl.
data: excel type ole2_object, " Подключенное Ecxel приложение
workbooks type ole2_object, " Книги подключенного Ecxel приложения
workbook type ole2_object, " Рабочая книга подключенного Ecxel приложения
worksheet type ole2_object, " Лист рабочей книги подключенного Ecxel приложения
cell type ole2_object, " Ячейка рабочего листа
all_cells type ole2_object, " Все ячейки рабочего листа
specialcell type ole2_object, " Ячейка со специяльными данными ячеек
value_cell type string, " Значение ячейки рабочего листа
max_row type i," Максимально заполненная строка рабочего листа
max_column type i." Максимально заполненная колонка рабочего листа
parameters: p_file type localfile obligatory.
initialization.
at selection-screen on value-request for p_file.
perform when_click_p_file.
start-of-selection.
* Подключусь к Excel приложению
create object excel 'Excel.Application'.
* Подключусь к книге Excel приложения
call method of excel 'Workbooks' = workbooks.
call method of workbooks 'Open' = workbook
exporting
#1 = p_file.
** Открою Excel для пользователя (сделаю видимым)
* set property of excel 'Visible' = 1.
* Получу нужный лист Excel (нумерация листов начинается с 1)
call method of excel 'WorkSheets' = worksheet
exporting
#1 = 1.
* - НАЧАЛО - Получу максимально заполненную строку и максимально заполненную колонку текущего листа Excel
call method of worksheet 'Cells' = all_cells
exporting
#1 = 1 " Row
#2 = 1. " Col
call method of all_cells 'SpecialCells' = specialcell
exporting
#1 = 11.
get property of specialcell 'ROW' = max_row.
get property of specialcell 'COLUMN' = max_column.
* - КОНЕЦ - Получу максимально заполненную строку и максимально заполненную колонку текущего листа Excel
data: index_row type i,
index_column type i.
do max_row times. " обойду все строки
index_row = sy-index.
write / index_row.
do max_column times. " обойду все колонки строки
index_column = sy-index.
call method of worksheet 'Cells' = cell
exporting
#1 = index_row
#2 = index_column.
get property of cell 'Value' = value_cell.
write: (10) value_cell.
enddo.
enddo.
* Отключусь от Excel приложения
call method of excel 'Quit'.
free object: excel,
workbooks,
workbook,
all_cells.
*&---------------------------------------------------------------------*
*& Form WHEN_CLICK_P_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form when_click_p_file .
data:
l_desktop type string,
l_i_files type filetable, " таблица имен файлов
l_wa_files type file_table, " таблица имени файла
l_rcode type int4,
user_return type i.
* Найду папку рабочего стола
call method cl_gui_frontend_services=>get_desktop_directory
changing
desktop_directory = l_desktop
exceptions
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
others = 4.
if sy-subrc <> 0.
message e001(00) with 'Рабочий стол не найден'.
endif.
* Начну диалог с пользователем по выбору файла
call method cl_gui_frontend_services=>file_open_dialog
exporting
window_title = 'Выберите Excel файл'
default_extension = '.xls'
file_filter = '(*.xls)|*.xls|'
initial_directory = l_desktop
changing
file_table = l_i_files
rc = l_rcode
user_action = user_return
exceptions
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
others = 5.
if user_return = cl_gui_frontend_services=>action_cancel .
message i001(00) with 'Выбор файла отменен пользователем'.
exit.
endif.
if user_return = cl_gui_frontend_services=>action_ok .
if user_return = 0 .
read table l_i_files index 1 into l_wa_files.
if sy-subrc = 0.
p_file = l_wa_files-filename.
else.
message e001(00) with 'Ошибка открытия файла'.
endif.
endif.
endif.
endform. " WHEN_CLICK_P_FILE