ABAP2XLSX Чтение шаблона из SMW0. Копирование Листов. Использование сохраненных стилей.

В российских проектах для выгрузки в EXCEL применяется разработка ZWWW в большинстве случаев. Но она имеет несколько проблем как с быстродействием, так и с тем, что используется технология OLE. Основное неудобство на мой взгляд, это не возможность получить документ в фоне, и, например, сразу отправить его как вложение в письме и т.д.
Данную проблему можно решить используя другую разработку под названием ABAP2XLSX. Однако, из-за редкого использования многие не считают, что применяя ее невозможно использовать ранее сохраненные шаблоны. Это не так.
Рассмотрим небольшой пример в котором получим шаблон из репозитория состоящего из одного листа:
1. Скопируем этот лист со всем оформлением в новый.
2. Сохраним документ с двумя листами на локальный компьютер.

Все  это делается уже готовыми методами, кроме создания копии листа. Поэтому для начала сделаем новый класс, унаследованный от исходного zcl_excel

Нам потребуется создать один новый метод. Назовем его COPY_WORKSHEET.

Реализация очень проста:
Создаем страницу;
Kлонируем Страницу, которую подаем на вход метода как образец;
Прописываем новую страницу в документ.

Метод для копирования создан.
Приступим к программе. Первым делом необходимо получить шаблон из SMW0 и на его основе создать объект ранее созданного класса.

Файл в переменной lv_xstring. Его можно получить откуда угодно. Получение из SMW0  - частный случай.
Для создания  объекта нашего класса будем использовать метод LOAD  интерфейса  zif_excel_reader.  Создатели данной разработки предусмотрели возможность того, что её будут дорабатывать, и есть возможность подать свой тип в параметр  iv_zcl_excel_classname .

Также мы можем  брать стиль ячейки из шаблона и применять его для других ячеек. Очень удобно хранить разные варианты сложного форматирования. В дальнейшем, консультант сам может их менять в формуляре без разработчика. Можно создать отдельный лист и хранить на нем все стили. После использования удалять его.
Возьмем стиль Ячейки A1   и  применим его на ячейки B2 B3. 

Сохраним получившийся документ на локальном компьютере.

У меня был  такой исходный шаблон:

Выходной документ

ABAP2XLSX Чтение шаблона из SMW0. Копирование Листов. Использование сохраненных стилей.: 2 комментария

  1. строчку “SYSTEM-CALL OBJMGR CLONE io_worksheet_templ TO lo_worksheet.” стоило бы подробней прокомментировать

Добавить комментарий

Ваш адрес email не будет опубликован.