Sap выгрузка в excel
Данный блог посвящен решениям конкретных задач программирования в среде разработки ABAP/4 Workbench системы SAP.
Основное назначение данного блога: документирование накопленного моего опыта, что бы помнить и не забывать.
среда, 17 июля 2013 г.
Выгрузка в Excel через текстовые файлы.
Данный вид выгрузки не плохо подойдет, если необходимо выгрузить таблицу огромных размеров. Например, выгрузка пятидесяти тысяч записей в excel проходит за полторы минуты. В принципе данная выгрузка достаточно проста в использовании, имеет шаблонный вид, что очень удобно. Я использую ее по умолчанию, для всех своих разработок, главное что бы были полномочия на транзакцию SMW0, и разрешения на сохранение документа на компьютер пользователя. Данный код можно выделить в отдельный ФМ или подпрограмму, для более удобного использования.*&---------------------------------------------------------------------*
*& Report Z_UNLOAD_EXCEL
*& Выгрузка в EXCEL ч / з текстовые файлы
*&---------------------------------------------------------------------*
report z_unload_excel .
include ole2incl .
data : lv_file type rlgrap - filename ,
formname type wwwdatatab - objid value 'ZMS_EXL3' , " имя объекта SMW0
filename type rlgrap - filename ,
filenametxt type rlgrap - filename .
"<<< Таблица для примера
data : gt_sflight like sflight occurs 0 .
select * from sflight into table gt_sflight .
">>> Таблица для примера
" Запрашиваем имя файла
perform get_file_name changing lv_file .
check not lv_file is initial .
" Выгружаем шаблон
perform download_template using formname lv_file .
" Выгружаем таблицу в текстовый файл
perform download_file using formname gt_sflight changing filenametxt .
" Запускаем макрос
perform run_macros using filenametxt lv_file .
*&---------------------------------------------------------------------*
*& Form run_macros
*&---------------------------------------------------------------------*
form run_macros using p_filenametxt type rlgrap - filename
p_filename type rlgrap - filename .
data : application type ole2_object ,
workbooks type ole2_object .
create object application 'EXCEL.APPLICATION' .
if sy - subrc <> 0 .
message e011 ( zst ).
endif .
get property of application 'Workbooks' = workbooks .
* Открываем макрос
call method of
workbooks
'Open'
data : tempdir type rlgrap - filename .
call function 'GUI_GET_DESKTOP_INFO'
exporting
type = 4
changing
return = tempdir .
concatenate tempdir '\' p_formname '-' sy - timlo '.txt' into p_filenametxt .
call function 'WS_DOWNLOAD'
exporting
filename = p_filenametxt
filetype = 'DAT'
tables
data_tab = fp_table
exceptions
others = 9 .
check sy - subrc ne 0 .
set country '' .
* Удаляем фаил-txt с клиента
call function 'GUI_DELETE_FILE'
exporting
file_name = p_filenametxt .
message e129 ( sy ) with p_filenametxt 'WS_DOWNLOAD' .
endform . "f_ws_download
*&---------------------------------------------------------------------*
*& Form download_template
*&---------------------------------------------------------------------*
form download_template using p_formname type wwwdatatab - objid
p_filename type rlgrap - filename .
data : ext ( 255 ),
sy_subrc type sy - subrc ,
w_key type wwwdatatab .
call function 'WWWPARAMS_READ'
exporting
relid = 'MI'
objid = p_formname
name = 'fileextension'
importing
value = ext
exceptions
others = 1 .
if sy - subrc <> 0 .
message e000 ( swww ) with p_formname .
stop .
endif .
w_key - relid = 'MI' .
w_key - objid = p_formname .
call function 'DOWNLOAD_WEB_OBJECT'
exporting
key = w_key
destination = p_filename
importing
rc = sy_subrc .
endform . " DOWNLOAD_TEMPLATE
*&---------------------------------------------------------------------*
*& Form get_file_name
*&---------------------------------------------------------------------*
form get_file_name changing cv_file type rlgrap - filename .
data : lv_fullpath type string ,
lv_path type string ,
lv_file type string ,
lv_return type i .
do .
clear cv_file .
call method cl_gui_frontend_services => file_save_dialog
exporting
default_extension = 'xls'
default_file_name = lv_file
file_filter = cl_gui_frontend_services => filetype_excel
initial_directory = lv_path
changing
filename = lv_file
path = lv_path
fullpath = lv_fullpath
user_action = lv_return
exceptions
others = 4 .
if sy - subrc <> 0 or lv_return <> 0 . exit . endif .
cv_file = lv_fullpath .
if cv_file = lv_fullpath . exit . endif .
message ' Полное имя файла должно быть не более 128 символов !' type 'S' display like 'E' .
enddo .
endform . "get_file_name
Sub StartExecute(ByVal fp_FileTab As String)
Open_File Application.ThisWorkbook, fp_FileTab, 1, "A1"
Application.DisplayAlerts = False
Range("A1").Select
ActiveWorkbook.Save
Application.Visible = True
End Sub
'--------------'
' открытие файла '
'--------------'
Private Sub Open_File(ByVal f_wb As Workbook, _
ByVal f_FileName1 As String, _
ByVal f_Idx As Integer, _
ByVal f_Range As String)
Dim wb As Workbook
Экспортировать данные из 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 для вывода любого отчета с печатью в файл
Можно экспортировать в основном любой список SAP в Excel, причем процесс фактически заключается в его печати в файл, позволяющий выбирать несколько решений, неконвертированную печать, экспорт электронных таблиц MS Excel, форматированный текстовый формат для отображения в блокноте, формат HTML для веб-браузера отобразить и скопировать в буфер обмена для копирования вручную.
Если вы не хотите экспортировать таблицу SAP в Excel, а хотите экспортировать отчет SAP с использованием функции спулинга из системы SAP, выполните следующие три простых шага:
- Найдите отчет для экспорта в SAP и откройте функцию печати, оставьте параметр «только спулинг SAP»,
- Используя транзакцию спула SAP SP01, преобразуйте спул в Excel в SAP, экспортировав в локальный файл,
- Загрузите катушку в Excel в SAP, открыв локальный файл в Excel.
См. Ниже подробные шаги для экспорта отчета SAP в Excel и выполнения основных операций с электронными таблицами, таких как расширенный vlookup в Excel, сравнение строк Excel или подсчет количества вхождений среди прочего.
Начиная с таблицы из любого отчета, который был выполнен в SAP, первым шагом является выбор данных, которые необходимо экспортировать, или взять все это, и выбрать стандартный вариант печати.
Теперь важно, чтобы иметь возможность экспортировать эти данные, даже если нет стандартной опции для экспорта, заключается в выборе правильного принтера, также называемого устройством вывода.
Печатать печать или непосредственно на принтер
Здесь необходимо использовать данную форму, чтобы иметь возможность найти принтер, который на самом деле ничего не печатает, поскольку мы хотим использовать призрачный принтер, просто чтобы файл был доступен в списке спула.
Например, без размещения какой-либо строки поиска может отображаться весь список принтеров, необходимо найти поддельный принтер, который фактически не будет выполнять какую-либо отдельную физическую операцию, а просто сохранит файл, пока мы с ним не закончим.
В нашем примере макетный принтер это принтер с четырьмя X, который является тестовым принтером, не подключенным к какому-либо физическому принтеру, а просто используемым для управления пулами печати.
На главном экране SAP, скорее всего, SAP Easy Access, перейдите в меню System> Own spool request, где мы сможем получить наш файл принтера.
И вот оно! Эта запись фактически является печатью отчета, которую мы запускали раньше. Этот отчет никак не мог быть экспортером, но здесь он находится в готовом к печати файле.
Вывод списка контроллеров очереди запросов tcode SP01.
Как распечатать запрос спула в SAP
Настало время выбрать катушку для печати или экспортировать в MSExcel, что в нашем случае является единственным выбором.
Этот запрос спула может быть графически отображен, что является первым шагом для его экспорта в требуемый файл, щелкнув соответствующий значок в правом верхнем углу.
Всплывающее окно спросит, в каком типе файла должен быть сохранен вывод спула, который по умолчанию может быть неконвертирован, электронная таблица, форматированный текстовый формат, формат HTML или скопировать весь контент в буфер обмена.
После выбора формата другое всплывающее окно запросит назначение файла, которое, конечно же, должно быть доступно в режиме записи клиентом SAP, например, это может быть папка «Документы».
Как экспортировать данные из SAP в Excel
Теперь файл можно открыть в Excel или другой программе отображения электронных таблиц и отобразить таблицу, доступную в SAP.
После того, как файл был экспортирован, не забудьте вернуться к транзакции SP01 управления spool, так как важно очистить список спула, чтобы избежать нехватки памяти сервера.
Выберите бумажный ролик, который был напечатан и больше не нужен, и выберите значок удаления. Всплывающее окно запросит подтверждение перед удалением катушки.
Теперь список запросов спула должен быть чистым, а файл уже экспортирован на компьютер.
Описание проблемы
Как экспортировать данные из SAP в Excel, как распечатать запрос спула в SAP, как распечатать счет в SAP, как распечатать PO в SAP, как распечатать в SAP, как сохранить файл спула в SAP
Рано или поздно каждый консультант сталкивается с задачей быстрой и эффективной обработки большого массива данных из системы. Предметная область тут неважна. Многие компании практически не используют современные аналитические решения на благо повседневной трудовой деятельности. Причин тому много, но сегодня речь о другом. Наиболее типичные ситуации, это сверка данных при миграции данных или выгрузка большого объема данных из системы с целью последующей обработки в 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.
By using CL_XLSX_DOCUMENT (available from 2008), it is easy to load file, workbook, sheets, rows and columns. A good example code can be found within class CL_EHFND_XLSX(available on ABAP AS 752 SP-Level 0004, Software Component S4CORE Release 102, SP 4.).
And the dynamic structure is used in this report. The code style is what I would like to present also.
User Interface
Main Functionality
Download table content into local excel file (xlsx)
Input existing table , e.g. Table Name T000, File Full Path: c:\demo\t000.xlsx
Change the value of non-key column in xlsx file.
Upload local excel file (*.xlsx) into table
Input existing table , e.g. Table Name T000, File Full Path: c:\demo\t000.xlsx
Empty row will be skip, and table entries will be modified (Insert or Update). It is not possible to delete existing table entry.
Exception Handling
You will get exception of structure infliction if xlsx file is not for that table.
Local Class Definition
Thank you for your interest in XLSX2ABAP and ABAP2XLSX. Example code is tested on SAP_BASIS 755, S4CORE 105.
Assigned Tags
Interesting. Does SAP plan to propagate and extend the CL_XLSX_DOCUMENT? Currently it is not much used and known.
FIY: There is quite successful project, which is already named "ABAP2XLSX".
Right click and copy the link to share this commentThanks a lot. CL_EHFND_XLSX is build on top of CL_XLSX_DOCUMENT. This is my understanding.
Right click and copy the link to share this commentWhat means "propagate and extend"? CL_XLSX_DOCUMENT is available since Netweaver 7.02 and many people used it for a long time.
Right click and copy the link to share this commentCL_EHFND_XLSX is not available on ABAP AS 7.52 SP03.
Right click and copy the link to share this commentIt can be found on ABAP AS 752 SP-Level 0004.
Software Component S4CORE Release 102, SP 4.
Right click and copy the link to share this commentI am really confused.
Firstly, as mentioned in the last comment, on what release does CL_EHFND_XLSX become available? Bear in mind that something made available internally within SAP in 2014 may not be available to customers until five or six years later.
Secondly are you saying that the functionality ABAP2XLSX provides is going to be re-invented as standard classes inside standard SAP?
For the last few years once a month on average someone from outside of SAP posts a blog on SCN describing a new way they have come up with to do a limited subset of what ABAP2XLSX can do.
This would be because they have never heard of it, and it is quite possible many within SAP itself have never heard of it either.
Right click and copy the link to share this commentIt can be found on ABAP AS 752 SP-Level 0004.
Software Component S4CORE Release 102, SP 4.
Right click and copy the link to share this commentDo you know if any downporting is planned for CL_EHFND_XLSX (eg via sapnote)?
99% of the developers here don't have access to that release. 🙁
Right click and copy the link to share this commentI'm just as confused as Paul Hardy - every month someone posts a blog on SCN reinventing ABAP2XLSX for some reason. Now that a blog is posted by an SAP employee this sends quite a confusing message.
Availability of classes is not driven by year. It's not like every year each SAP customer gets a box of presents at Christmas with all the new classes and goodies from SAP. Availability is driven by the release and support pack level. We're on ABAP 7.31 and don't have class CL_EHFND_XLSX, for example.
And I also would like to know if this means that SAP will be offering ABAP2XLSX as part of standard?
P.S. I'm getting "you don't have rights" when trying to open the link at the end of the blog. When posting on SCN, please make sure to use only what is open to general population and not just at SAP internally.
Right click and copy the link to share this commentI update the info of ABAP version accordingly. Row limits help link is removed also.
Right click and copy the link to share this commentIt's pretty good !!
I have some question for you to use this method :).
Can I set cell color or cell width when file export(ITAB to xls) ??
( I found XLSX_DOCUMNT's internal content table(MS_SHEET_DATA).
But, i don`t know how to change cell style ).
Right click and copy the link to share this commentis it possible to add the custom properties for excel\word document using
Читайте также: