Экспорт в Excel из SAP MII
Использование XSL-трансформации и JSP-приложения для выполнения экспорта данных в формате Excel
Среди клиентов, имеющих развернутый SAP MII, одним из наиболее частых запросов является: возможность экспорта отображаемых в SAP MII данных в формате Microsoft Excel. Ключевыми требованиями, предъявляемыми к получаемому при этом файлу являются:
- готовность к печати
- возможность пост-обработки (с минимальными трудозатратами для конечного бизнес-пользователя): составление сводных таблиц, импорт в специализированное прикладное ПО.
На текущий момент SAP MII имеет возможность экспорта данных в формате CSV. В качестве примера рассмотрим экспорт результата SQL-запроса по фактическим простоям, для которого необходимо организовать выгрузку в формате Excel. На рис. 1 изображен результат запроса с указанием вывода данных в формате HTML (content-type=text/html).
Рис.1 Результат запроса
Для выгрузки файла в формате CSV необходимо указать параметр content-type=text/csv. Результатом будет файл с именем Illuminator.csv. При открытии файла возникает две проблемы (рис.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 очень
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти
Обсуждения 1
Комментарий от
Дмитрий Волков
| 21 декабря 2013, 16:52
К сожалению, JSP-приложение скачать не удаётся - браузер выдает ошибку авторизации.
Дмитрий