Экспорт в Excel из SAP MII


6030
1

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

  1. готовность к печати
  2. возможность пост-обработки (с минимальными трудозатратами для конечного бизнес-пользователя): составление сводных таблиц, импорт в специализированное прикладное ПО.

На текущий момент SAP MII имеет возможность экспорта данных в формате CSV. В качестве примера рассмотрим экспорт результата SQL-запроса по фактическим простоям, для которого необходимо организовать выгрузку в формате Excel. На рис. 1 изображен результат запроса с указанием вывода данных в формате HTML (content-type=text/html).

Рис.1 Результат запроса


Для выгрузки файла в формате CSV необходимо указать параметр content-type=text/csv. Результатом будет файл с именем Illuminator.csv. При открытии файла возникает две проблемы (рис.2):

  1. кодировка символов (проблема с кириллическими символами)
  2. форматирование таблицы (требуется ручное деление по столбцам внутри Excel таблицы).

Рис.2 Результат открытия файла в формате CSV

Для решения проблемы с кодировкой кириллических символов требуется использовать сторонние инструменты (например, Штирлиц) или онлайн-ресурсы (например, «Декодер» Артемия Лебедева) для выполнения перекодировки cp1251 -> utf-8 (рис.3)

Рис.3 CSV-файл после перекодировки символов

Для решения проблемы с форматированием необходимо воспользоваться встроенной в Excel функцией «Разбить по колонкам» с указанием запятой в качестве разделителя колонок (рис.4).

Рис. 4 CSV-файл после разбития по колонкам

После разбития файла по колонкам требуется привести получившийся файл к виду, пригодному для печати. В частности, это касается изменения форматирования для первой строки (заголовка таблицы), переименования колонок (в качестве имени колонок при выгружаемом файле выступает техническое имя колонки в базе данных), установка корректной ширины колонок и прочих задач предпечатной подготовки.
Для решения упомянутых выше задач по подготовке файла к печати конечному пользователю приходится применять сторонние приложения, кроме того ему необходима специальная техническая подготовка и особая сноровка. Если задача экспорта данных является повседневной, то использование экспорта в формате CSV становится неоправданно трудоёмким.
Для устранения описанных выше проблем при экспорте нами разработано решение, использующее уже имеющуюся функциональность SAP MII: JSP (Java Server Pages) и XSLT (XML Stylesheet Language for Transformations). В результате работы системы создается файл формата XML 2003 Spreadsheet, который поддерживается Microsoft Excel начиная с версии XP.


Описание решения


Для начала рассмотрим формат XML Spreadsheet. Документ состоит из нескольких основных частей:

  • ss:Workbook – корневой элемент файла, является обязательным
  • ss:Styles – список стилей, применимых для форматирования ячеек книги
  • ss:Worksheet – один отдельный лист для Excel-книги
  • ss:Table – таблица с данными для листа
  • ss:Column – представляет одну колонку листа
  • ss:Row – один ряд листа
  • ss:Cell – одна ячейка книги
  • ss:Data – данные, которые содержатся в ячейке
  • o:WorkbookProperties – набор атрибутов книги (автор, версия файла и т.п.)

В листинге (файл 1) отражен файл XML 2003 Spreadsheet, очищенный от данных и необязательных частей документа . Первая строка листа предполагается в качестве заголовка получаемого файла, в связи с этим сохраняются два стиля: стиль для заголовка (применяется жирный шрифт) и общий стиль книги (стиль «по умолчанию»).


Подробно о структуре файла XML 2003 Spreadsheet можно ознакомиться на http://msdn.microsoft.com/en-us/library/office/aa140066(v=office.10).aspx

Файл 1
Очищенный файл формата XML 2003 Spreadsheet


Посмотрим на результат запроса (файл 2) к исходным данные в SAP MII в формате XML (сontent-type=text/xml).

Файл 2
Файл формата MII XML DOC.


 Получаемый документ MII XML состоит из следующих частей (элементов):

  • Rowsets – корневой элемент, является обязательным
  • Rowset – набор исходных данных в виде одной таблицы
  • Columns и Column– описывает колонки в рамках текущего Rowset, содержит в частности исходное имя поля и тип выводимых данных (числовое, булево, строковое и т.п.)
  • Row -  содержит ряд таблицы c данными
  • FataError – может присутствовать в документе для указания наличия ошибки при запросе. Содержит текст возникшей ошибки.

Структуры файлов SAP MII и XML Spreadsheet очень похожи: форматы обоих файлов  имеют табличную структуру представления данных. Этот факт существенно упрощает разработку шаблона трансформации. Сначала составим

Ограниченный доступ

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

Комментарии:

Дмитрий Волков (Рейтинг: 42) 16:52, 21 декабря 2013

Добрый день, Марат,
 
К сожалению, JSP-приложение скачать не удаётся - браузер выдает ошибку авторизации.
 
Дмитрий

Любое воспроизведение запрещено.
Копирайт © «Издательство ООО «Эксперт РП»