Есть несколько способов вывода данных в Excel: прямой экспорт данных из ALV, генерация XML-файла с использованием трансформации, XLSX Workbench и XTT. Сегодня будем использовать ZABAP2XLSX.
Для удобного формирования файлов создадим шаблон, в котором укажем используемые переменные, заключенные в квадратные скобки [].
Используя программу ZEXCEL_TEMPLATE_GET_TYPES сформируем тип структуры, которая описывает изменяемые данные шаблона.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
DATA(lo_data) = NEW zcl_excel_template_data( ). lo_data->add( iv_sheet = 'Sheet1' iv_data = ms_avr ). DATA(lo_reader) = CAST zif_excel_reader( NEW zcl_excel_reader_2007( ) ). DATA(lo_excel) = NEW zcl_excel( ). DATA: lt_mime TYPE TABLE OF w3mime. DATA(ls_key) = VALUE wwwdatatab( relid = 'MI' objid = lc_template_name ). CALL FUNCTION 'WWWDATA_IMPORT' EXPORTING key = ls_key TABLES mime = lt_mime EXCEPTIONS OTHERS = 1. IF sy-subrc <> 0. RETURN. ENDIF. TRY. DATA(lv_xstring) = cl_bcs_convert=>xtab_to_xstring( lt_mime ). CATCH cx_bcs. RETURN. ENDTRY. lo_excel = lo_reader->load( i_excel2007 = lv_xstring ). " merge data with template lo_excel->fill_template( lo_data ). ev_content = CAST zif_excel_writer( NEW zcl_excel_writer_2007( ) )->write_file( lo_excel ). |