Выгрузка в excel sapui5

Обновлено: 06.07.2024

Экспортировать данные из SAP в Excel довольно просто. Ниже описано, как экспортировать таблицу SAP в Excel‌ или экспортировать отчет SAP в Excel‌ с помощью другой процедуры. После выполнения экспорта в SAP Excel вы сможете поэкспериментировать с извлечением данных из SAP с помощью расширенного vlookup в Excel, сравнения строк в Excel, подсчета количества вхождений и других стандартных функций электронных таблиц.

Оказавшись в транзакции отображения таблицы в системе SAP, найдите значок стрелки в верхней части таблицы и щелкните по нему.

Там должна быть опция под названием Spreadsheet.

Выберите эту опцию, сохраните файл локально и откройте его в Excel - электронная таблица на самом деле будет файлом Excel, несмотря на то, что она не вызывается напрямую в SAP.

Экспорт таблицы в SAP в Excel

Начиная с экрана отображения таблицы, такого как отображение записей транзакции SE16N, с таблицей MARC, выбранной для отображения, данными завода для материала, найдите значок со стрелкой вверху таблицы.

  • Электронная таблица будет экспортировать данные SAP в Excel,
  • обработка текста экспортирует данные SAP в Word,
  • локальный файл экспортирует данные в текстовый файл, который можно открыть с помощью Notepad ++ или другого текстового редактора,
  • отправка откроет внутренний документ создания SAP и отправит транзакцию,
  • сохранение в SAP сохранит данные в SAP,
  • ABC анализ покажет некоторые графики,
  • HTML скачать предложит данные для загрузки в HTML-файл для отображения в браузере или опубликовать в Интернете.

Чтобы экспортировать данные SAP в Excel, выберите параметр «Электронная таблица».

Параметры экспорта из SAP в электронную таблицу

После выбора экспорта электронной таблицы будет предложено несколько вариантов, позволяющих экспортировать файл в различные форматы из Excel MHTML, что может быть полезно для файлов, слишком больших для Excel, формата OpenOffice или других форматов: внутренний формат XML SAP, Формат Excel MHTML, формат Excel Office‌ 2003 XML, формат OpenOffice OpenDocument 2.0, Excel в существующем формате XXL, формат Excel MHTML на 2000/1997 годы, формат Excel Office‌ Open XML (XLSX).

Последний, офисный формат XML Open XML XLSX, является стандартным форматом для последней программы Microsoft Excel 2016 и Excel Office‌ 356.

Выберите формат Excel Office‌ Open XML, чтобы выполнить экспорт данных SAP в MSExcel.

Экспорт данных SAP в файл Excel

Следующим шагом будет сохранение файла Excel, содержащего экспортированные данные SAP, на компьютере. Откроется приглашение, расположенное по умолчанию в папке экспорта SAP по умолчанию, которая обычно представляет собой папку графического интерфейса пользователя SAP, расположенную в папке файлов программного обеспечения локального компьютера.

Скорее всего, файл уже будет существовать, особенно при экспорте большого количества данных. Если необходимо отобразить данные только в Excel, чтобы выполнить несколько операций копирования и вставки в другую электронную таблицу Excel или в другую программу, достаточно заменить существующий файл.

Экспорт данных SAP открыт в Excel

После того, как файл будет сохранен на компьютере, Excel автоматически откроет экспорт данных SAP, который только что был создан.

Ожидайте некоторое время, чтобы открыть программу, в зависимости от длины файла.

Как правило, почти невозможно открыть файл, содержащий более 50000 записей.

В этом случае необходимо использовать критерии фильтрации в SAP, чтобы экспортировать меньше данных, а затем копировать и вставлять их вручную один за другим из разных экспортов Excel в один файл Excel.

И вот, через некоторое время программа Excel отобразит экспортированный файл данных SAP в электронной таблице.

Теперь можно воспроизводить данные, поступающие прямо из SAP S/4 HANA в Excel Office‌ 365 или другой версии Office.

Как загрузить огромные данные из таблицы SAP?

Для загрузки огромных данных из таблицы SAP лучше всего использовать загрузку фонового файла, вместо того чтобы напрямую открывать экспорт данных SAP в электронную таблицу Excel - точно так же, как при экспорте отчета SAP в Excel.

Выберите формат экспорта, который занимает меньше места, например не преобразованный, поскольку, например, использование экспорта HTML значительно увеличит пространство файла, добавив дополнительные символы HTML.

Как скачать огромные данные из таблицы SAP? Выберите текст с опцией экспорта вкладок, так как это самый легкий экспорт

Необращенный экспорт данных SAP - лучший способ загрузить огромные данные из таблицы SAP, так как файловое пространство на диске будет сокращено. Просто откройте его в Excel как текстовый файл со столбцами, разделенными символом «|».

Если данные для загрузки из SAP по-прежнему слишком велики, попробуйте загрузить их несколькими небольшими порциями, используя транзакцию SAP для просмотра данных SE16N, например, с фильтрами, и выполните несколько экспортов данных.

SAP GUI по умолчанию выбран формат экспорта SAP Excel, как его изменить?

Если вы выполнили процесс экспорта SAP Excel с помощью электронной таблицы Excel и использовали опцию «всегда использовать выбранный формат», опция выбора экспорта Excel всегда будет использоваться в системе SAP для вашего пользователя.

Чтобы изменить выбранный формат экспорта SAP Excel по умолчанию, просто откройте отчет, например представление таблицы в SE16N, и щелкните правой кнопкой мыши в любом месте таблицы.

В открывшемся контекстном меню выберите опцию «Электронная таблица . », и всплывающее окно, позволяющее выбрать формат экспорта SAP Excel из списка доступных форматов, вернется в ваш графический пользовательский интерфейс SAP вместе с возможностью отменить выбор. Опция «всегда использовать выбранный формат».

Извлечение SAP в Excel будет выполнено в соответствии с вновь выбранным форматом экспорта SAP Excel и будет установлено по умолчанию или нет, в зависимости от того, выбрали ли вы вариант экспорта SAP Excel «всегда использовать выбранный формат».

Как скачать ABAP Excel?

Можно запрограммировать загрузку ABAP Excel для экспорта данных в нужный формат файла, создав внутреннюю таблицу, которая затем будет загружена пользователем SAP.

Однако создание загрузки ABAP Excel - это техническая операция, которую должен выполнить разработчик с правом доступа к системе. Лучшее решение для этого - следовать пути обучения SAP ABAP Programmer и создавать программу самостоятельно или попросить компетентного консультанта сделать это от вашего имени.

Отсутствует опция экспорта SAP в электронную таблицу, что делать?

Если у вас отсутствует опция экспорта SAP в электронную таблицу, скорее всего, она была заменена другим именем после обновления. Вы по-прежнему можете извлекать данные из SAP в Excel, выбрав текст с опцией экспорта вкладок.

Экспорт в электронную таблицу отключен в SAP: он был заменен текстом с экспортом вкладок

Всякий раз, когда опция SAP-таблицы SAP недоступна, просто используйте другой вариант, такой как текст с экспортом вкладок, который имеет тот же результат, что и экспорт SAP-таблицы SAP.

Как сбросить настройки экспорта в Excel в SAP?

Если параметр извлечения данных из SAP неправильно настроен для загрузки Excel в SAP, например, в транзакции ME2N, лучший способ сбросить настройки экспорта в Excel в SAP - выбрать вручную параметр Дополнительно: Список: Экспорт: Электронная таблица или использовать клавиатуру сочетание CTRL + SHIFT + F7 при выполнении экспорта новой таблицы и выбор вручную нужного формата.Невозможно сбросить настройки сохранения для экспорта в формат электронных таблиц Excel

Как скопировать поля таблицы SAP в Excel?

Чтобы скопировать определенные поля таблицы SAP в Excel, начните с открытия таблицы в SAP. Затем используйте комбинацию клавиш CTRL + Y, чтобы открыть курсор выбора в интерфейсе SAP.

Теперь вы сможете выбрать определенный набор полей таблицы в SAP, щелкнув один угол целевого выделения и перетащив курсор мыши в противоположный угол выделения целевых ячеек, удерживая нажатой комбинацию клавиш CTRL + Y на вашем клавиатура.

После выбора ячеек отпустите клавиши и мышь и скопируйте данные с помощью комбинации клавиш CTRL + C. Теперь вы можете вставить скопированные поля таблицы SAP в Excel или любую другую программу обработки данных.

SAP Fiori: экспорт в Excel

Не всегда можно экспортировать таблицы Fiori для Excel в качестве электронной таблицы. Для некоторых таблиц даже не возможно выбрать данные вручную, и скопируйте вставку в электронную таблицу!

Однако всякий раз, когда доступно вариант экспортировки в Excel в SAP FFiori, сдержанный экспорт в значок электронной таблицы будет отображаться прямо над таблицей данных, на правой стороне.

Просто нажмите на этот значок, и содержимое таблицы напрямую будет переведено в файл Excel, который будет загружен вашим браузером.

Поговорим о выгрузке данных из SAP ERP или S/4 HANA с использованием механизма SAP RFC.

Такая выгрузка может служить для наполнения аналитического хранилища данных или для интеграции с другой системой.

Интерфейс SAP RFC (remote function call) позволяет вызывать различные функции SAP из стороннего приложения.

Преимущества этого интерфейса:

прямое и быстрое подключение с SAP.

возможность менять параметры запроса, запрашивая данные частями.

отсутствие промежуточных звеньев в обмене данными и, как следствие, высокая надежность.

Установка

Для работы через RFC вам потребуется установить следующее:

Установить переменную окружения, указав каталог с библиотекой SAP NW RFC: SAPNWRFC_HOME=C:\NWRFC\nwrfcsdk\

Поиск уже имеющихся в системе функций

В системе SAP можно поискать уже готовые функциональные модули.

Сделать это можно следующим образом:

Запустить транзакцию SE16 (просмотр таблиц).

Указать имя таблицы TFDIR.

Задать фильтры для поиска:

FUNCNAME=*MATERIAL* (задать маску поиска)

FMODE=R (возможность вызова функции через механизм RFC)

Чтение таблиц через RFC_READ_TABLE

RFC_READ_TABLE позволяет выгружать данные из таблицы SAP, ограничивая выборку фильтрами.

Несмотря на то, что SAP позиционирует эту функцию как тестовую и не предназначенную для использования в продуктивной среде, она вполне работоспособна.

Следует сказать, что RFC_READ_TABLE часто неудобна, т.к. она позволяет читать только одну таблицу (не поддерживает JOIN).

В этой статье я не буду подробно описывать работу с этой функцией, т.к. в интернете существует множество примеров ее использования. Вместо этого приведу пример вызова функции стандартной функции BAPI_MATERIAL_GETLIST, выдающий список материалов по заданным критериям поиска.

Просмотр функции через SE37

Параметры вызова функции присутствуют на следующих вкладках:

Importing - входные параметры простого типа (не табличные)

Exporting - выходные параметры простого типа

Tables - как входные, так и выходные параметры в виде таблиц

Рассмотрим использование SE37 на примере BAPI_MATERIAL_GETLIST.

Для того, чтобы посмотреть состав полей таблиц нужно дважды кликнуть на поле с типом данных.

SE37 - вкладка Tables Просмотр полей таблицы

Эта функция выдает не слишком много полезных данных: Номер материала и описание.

Другие таблицы нужны для передачи на вход параметров выборки.

Например поиск по коду материала (MATNRSELECTION):

Таблица входных значений

Подключаемся к SAP

Подключение к SAP с использованием библиотеки pyrfc делается не сложно. (Настройки подключения можно посмотреть в SAP GUI.)

import pandas as pd

conn = pyrfc.Connection(user='', passwd='',

mshost='111.111.11.11', msserv='3600', sysid='010',

group='NN', saprouter='', lang='EN',client='')

Вызываем необходимую функцию

Рассмотрим вызов функции на примере BAPI_MATERIAL_GETLIST.

Сначала зададим входные параметры.

В данном случае для каждого параметра в таблице будет по одной строке.

Строка таблицы задается как python dictionary, а вся таблица задается как list, состоящий из строк.

В нашем примере укажем фильтр на код материала: '' (т.е. все значения), а также укажем значение для Plant.

Для выборки используем SIGN="I" (Includes),

Варианты для OPTION:

BT Between (требует задать значение для для LOW и HIGH)

GE Greater Equal

CP Contains Pattern

Далее вызываем функцию с этими параметрами.

MATNRSELECTION = matnrselection, PLANTSELECTION = plantselection)

Преобразуем результат в DataFrame

DataFrame можно получить в одну строку:

Где MATNRLIST, это имя результирующей таблицы, указанное в разделе Tables.

Итак, с помощью буквально нескольких строк кода, мы получили данные из SAP в DataFrame и можем дальше работать с этими данным используя все возможности языка Python.

Некоторое время назад я создал программу для загрузки данных шаблона EXCEL в SAP и загрузки данных внутренней таблицы в EXCEL. Из-за сетевых причин, когда объем данных относительно велик, при использовании OLE для записи данных одна за другой скорость будет ниже, поэтому сначала скопируйте данные внутренней таблицы в буфер обмена, а затем вставьте их непосредственно в EXCEL, скорость будет выше. , Позвольте мне рассказать о методе ниже:

1. Сначала создайте шаблон данных EXCEL и загрузите его на сервер с SMW0.

Стиль шаблона EXCEL выглядит следующим образом:





2. Определение данных:

DATA : BEGIN OF header,
doc_date LIKE bapi_incinv_create_header - doc_date , «Ваучер Дата
pstng_date LIKE bapi_incinv_create_header - pstng_date , "Дата публикации
gross_amount LIKE invfo - wrbtr , «bapi_incinv_create_header-gross_amount», общая сумма счета в валюте ваучера
item_amount LIKE invfo - wmwst , «bapi_incinv_create_gl_account-item_amount», сумма налога
gl_account LIKE bapi_incinv_create_gl_account - gl_account , «Налоговый учет
payee_payer LIKE bapi_incinv_create_header - payee_payer , "Счет-вечеринка
item_text LIKE bapi_incinv_create_header - item_text , "Текст позиции
header_txt LIKE bapi_incinv_create_header - header_txt , «Текст заголовка
ref_doc_no LIKE bapi_incinv_create_header - ref_doc_no , "номер квитанции
pmnttrms LIKE bapi_incinv_create_header - pmnttrms , "условия оплаты
currency LIKE bapi_incinv_create_header - currency , "Код валюты
del_costs_taxc LIKE bapi_incinv_create_header - del_costs_taxc , "Налоговый кодекс
db_cr_ind LIKE bapi_incinv_create_gl_account - db_cr_ind , "Налоговый кредит логотип
blance TYPE rm08m - differenz , "Баланс
name12 TYPE zname12 , Описание поставщика
END OF header.

DATA : BEGIN OF item OCCURS 0 ,
ebeln LIKE ekpo - ebeln ,
ebelp LIKE ekpo - ebelp ,
matnr LIKE ekpo - matnr ,
maktx LIKE makt - maktx ,
meins LIKE ekpo - meins ,
menge LIKE ekbe - menge ,
wrbtr LIKE ekbe - wrbtr , "Количество
mwskz LIKE ekpo - mwskz , "Налоговый кодекс
selct ( 1 ) TYPE c ,
END OF item .

TYPE-POOLS : ole2 .
DATA : gv_excel_obj TYPE ole2_object ,
gv_workbook_obj TYPE ole2_object ,
gv_sheet_obj TYPE ole2_object .

DATA : gv_fname LIKE rlgrap - filename ,
gv_filename TYPE string ,
gv_icount TYPE i ,
gv_irow TYPE i .

DATA : gv_separator TYPE c .
FIELD-SYMBOLS : <fs_item> LIKE LINE OF item ,
<fs_fld> TYPE ANY .
DATA : gt_excel ( 4096 ) OCCURS 0 WITH HEADER LINE .

TYPE-POOLS truxs .
DATA xltab TYPE truxs_t_text_data .
DATA : BEGIN OF gt_upload OCCURS 0 ,
cola ( 20 ) ,
colb ( 40 ) ,
colc ( 20 ) ,
cold ( 40 ) ,
cole ( 20 ) ,
colf ( 20 ) ,
colg ( 20 ) ,
colh ( 10 ) .
DATA : END OF gt_upload .

DATA : gv_file LIKE rlgrap - filename .

3. Подпрограмма DOWNLOAD_EXCEL

**** Получить файл шаблона и путь
PERFORM temp_excel_get CHANGING gv_fname .

**** Генерация файлов с шаблонами
PERFORM open_excel_file USING gv_excel_obj
gv_workbook_obj
gv_sheet_obj
gv_fname
'0' .
**** Заполнить шаблон
PERFORM write_header .
PERFORM write_item USING gv_excel_obj
gv_sheet_obj .
PERFORM save_close_excel USING gv_excel_obj
gv_workbook_obj
gv_sheet_obj .
MESSAGE ‘ Сохранено! TYPE 'I' .

DATA : l_objdata LIKE wwwdatatab ,
l_destination LIKE rlgrap - filename ,
l_rc LIKE sy - subrc ,
l_errtxt TYPE string .

* Если он существует, вызовите функцию DOWNLOAD_WEB_OBJECT, чтобы загрузить шаблон в путь
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = l_objdata
destination = l_destination
IMPORTING
rc = l_rc .
IF l_rc NE 0 .
CONCATENATE 'Файл шаблона:' l_destination 'Ошибка загрузки!' INTO l_errtxt .
MESSAGE l_errtxt TYPE 'I' .
EXIT .
ENDIF .

DATA : lv_index TYPE i .
DATA : lv_str ( 512 ) .
gv_separator = cl_abap_char_utilities => horizontal_tab .

CLEAR gt_excel .
REFRESH gt_excel .

LOOP AT item ASSIGNING <fs_item> .
lv_index = 0 .
DO 8 TIMES .
lv_index = lv_index + 1 .
ASSIGN COMPONENT lv_index OF STRUCTURE <fs_item> TO <fs_fld> .
IF sy - subrc <> 0 .
EXIT .
ENDIF .
CLEAR lv_str .
WRITE <fs_fld> TO lv_str LEFT-JUSTIFIED .
CONDENSE lv_str .
IF lv_index = 1 .
gt_excel = lv_str .
ELSE .
CONCATENATE gt_excel lv_str INTO gt_excel SEPARATED BY gv_separator .
ENDIF .
ENDDO .
APPEND gt_excel .
CLEAR gt_excel .
ENDLOOP .

* Введите данные в буфер обмена одновременно и скопируйте в EXCEL
*export data to clipboard
DATA : lv_ret TYPE i .
CALL METHOD cl_gui_frontend_services => clipboard_export
IMPORTING
data = gt_excel[]
CHANGING
rc = lv_ret .

* Paste data from clipboard
CALL METHOD OF ls_cell 'Select' .
CALL METHOD OF p_sheet 'Paste' .

*&---------------------------------------------------------------------*
*& Form SAVE_CLOSE_EXCEL
*&---------------------------------------------------------------------*
FORM save_close_excel USING p_excel
p_workbook
p_sheet .
SET PROPERTY OF p_excel 'DisplayAlerts' = 0 .
CALL METHOD OF p_excel 'Save' .
CALL METHOD OF p_workbook 'CLOSE' .
CALL METHOD OF p_excel 'QUIT' .
ENDFORM . " SAVE_CLOSE_EXCEL

4. Подпрограмма UPDATE_EXCEL
PERFORM get_pc_fieldname .
PERFORM update_excel .
PERFORM excel_check .
*&---------------------------------------------------------------------*
*& Form GET_PC_FIELDNAME
*&---------------------------------------------------------------------*
FORM get_pc_fieldname .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
* mask = ',*.XLS ,*.XLS.'
mode = '0'
title = 'Get the file name'
IMPORTING
filename = gv_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5 .
ENDFORM . " GET_PC_FIELDNAME

*&---------------------------------------------------------------------*
*& Form UPDATE_EXCEL
*&---------------------------------------------------------------------*
FORM update_excel .
REFRESH gt_upload .
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* i_line_header = 'X'
i_tab_raw_data = xltab
i_filename = gv_file
TABLES
i_tab_converted_data = gt_upload
EXCEPTIONS
conversion_failed = 1
OTHERS = 2 .
IF gt_upload[] IS INITIAL .
MESSAGE «Нет данных, загруженных в таблицу EXCEL» TYPE 'I' .
EXIT .
ENDIF .
ENDFORM . " UPDATE_EXCEL

Рано или поздно каждый консультант сталкивается с задачей быстрой и эффективной обработки большого массива данных из системы. Предметная область тут неважна. Многие компании практически не используют современные аналитические решения на благо повседневной трудовой деятельности. Причин тому много, но сегодня речь о другом. Наиболее типичные ситуации, это сверка данных при миграции данных или выгрузка большого объема данных из системы с целью последующей обработки в MS Excel. В 99% случаев будут именно такие задачи.

Вроде бы что сложного в выгрузке данных из отчета в системе? Совершенно ничего, когда мы говорим о паре десятков или сотен строк. Если речь идет о десятках тысяч строк или сотен тысяч строк, то мировоззрение начинает меняться. Попробуйте в ваших системах запустить оперативный запрос с даты старта SAP по паре инфотипов. А потом все это выгрузите и нарисуйте несколько формул рядом.

Исходя из моего опыта, могу дать некоторые базовые советы.


Совет 1. Выгрузка в MS Excel может быть осуществлена множеством способов. Даже нажимая одну кнопочку выгрузки разные системы обрабатывают событие по-разному. В ALV отчетах есть две возможность выгрузить данные в файл.

Левая кнопочка зависимости от версии системы либо откроет MS Excel Inplace (то есть внутри системы откроется XLS файл). Очень неудобно, мелко, но достаточно для просмотра пары записей. Файл можно сохранить. В другом случае система спросит, в каком формате желаете выгрузить данные.


Если вы нажимаете вторую кнопочку в панели инструментов, то открывается вот такое окно:


Совет 4. Если вам нужно что-то удалить на больших данных, отфильтровать и удалить, то всегда сначала сортируйте данные, а потом включайте фильтр или производите удаление. На сортированных данных фильтрация и удаления происходят раза в два быстрее.

Совет 6. Ключевые вещи, которые должен знать каждый консультант: Pivot table, INDEX, MATCH, VLOOKUP, SUMIF, IFNA, IF, VALUE, REPLACE, Named Ranges, Data Validation, Data Analyses.

Читайте также: