Научная статья на тему 'Применение XSLT-трансформации для получения персонализированных Excel документов'

Применение XSLT-трансформации для получения персонализированных Excel документов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
250
66
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бердников С. Ю.

В этой статье приводятся два способа генерации на стороне сервера документов формата XML в документы формата XLS и XLSX при помощи XSLT-трансформации и таких технологий как XSL, XPATH, языка программирования PHP. Документы формата XLS и XLSX отличаются за счет измененной структуры документов Excel, начиная с версии Microsoft Office 2007. В начале статьи приводятся история и краткое описание примененных технологий, далее разъясняются различия структуры документов Excel 1997-2003 и Excel 2007-2010, а потом приводятся две схемы, с описанием шагов серверной генерации этих документов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Применение XSLT-трансформации для получения персонализированных Excel документов»

ПРИМЕНЕНИЕ XSLT-ТРАНСФОРМАЦИИ ДЛЯ ПОЛУЧЕНИЯ ПЕРСОНАЛИЗИРОВАННЫХ EXCEL ДОКУМЕНТОВ

© Бердников С.Ю.*

Уфимский государственный авиационный технический университет, г. Уфа

В этой статье приводятся два способа генерации на стороне сервера документов формата XML в документы формата XLS и XLSX при помощи XSLT-трансформации и таких технологий как XSL, XPATH, языка программирования PHP. Документы формата XLS и XLSX отличаются за счет измененной структуры документов Excel, начиная с версии Microsoft Office 2007. В начале статьи приводятся история и краткое описание примененных технологий, далее разъясняются различия структуры документов Excel 1997-2003 и Excel 2007-2010, а потом приводятся две схемы, с описанием шагов серверной генерации этих документов.

В настоящее время язык разметки XML широко используется для обмена данными, создания, хранения и обмена документами, а также для веб-контента. XML (extensible Markup Language - расширяемый язык разметки) был утвержден в 1998 г., начало ему дал SGML (Standard Generalized Markup Language - стандартный обобщённый язык разметки). Хотя SGML и объединяет в себе много возможностей, он сложен и разработка с его помощью обходится дорого, что повлекло за собой создание довольно простого и понятного языка разметки HTML, в 1992 г. Он помог бурному развитию интернета в то время, но из-за роста количества документов и постоянно увеличивающимся требованиям к ним, простота стала его главным недостатком. В результате на свет появился язык XML, сочетающий в себе простоту HTML, логику разметки SGML и удовлетворяющий требованиям Интернета. На основе XML также были описаны такие технологии, как XSL, XPath и другие. XSL (eXtensible Stylesheet Language - расширяемый язык стилей) - семейство рекомендаций консорциума W3C, описывающее языки преобразования и визуализации XML-документов. XPath (XML Path Language - XML язык пути) -язык запросов к элементам XML-документа. XSLT (eXtensible Stylesheet Language Transformations) - язык преобразования XML-документов [1]. Спецификация XSLT входит всостав XSL и является рекомендацией W3C.

Все мы когда-либо сталкивались или даже постоянно работаем с табличным процессором Excel от компании Microsoft. С версии Excel 2003 в нем появилась полноценная поддержка XML-формата, документ ExcelML или

* Магистрант кафедры Автоматизированных систем управления. Научный руководитель: Миронов В.В., профессор кафедры Автоматизированные системы управления, доктор технических наук, профессор.

160 ИНТЕЛЛЕКТУАЛЬНЫЙ ПОТЕНЦИАЛ XXI ВЕКА: СТУПЕНИ ПОЗНАНИЯ

SpreadsheetML (Spreadsheet Markup Language - язык разметки электронной таблицы). Построенные при помощи этого языка документы являются, и XML-документами, и полноценными Excel документами. Excel может открывать, изменять и сохранять такие документы, а также сохранять стандартные XLS документы в этом формате. В новых же версиях Excel 2007-2010 стандартные документы имеют формат XLSX. С виду это закрытый формат как и XLS, но на самом деле это документ Open Office XML, который представляет собой контейнер, содержащий несколько компонентов [2]. Этот контейнер является сжатой ZIP-папкой, а его компонентами - хранящиеся в ней файлы. Также предусмотрен формат XLSMc поддержкой макросов.

Реализация моей работы заключается в создании программы серверной генерации персонализированного документа Excel из XML данных, используя XSL-инъекции. Сама программа состоит из двух частей, скриптов написанных на языке программирования PHP и XSL шаблона. Скрипты, преобразующие при помощи функции XSLTProcessor() XSL шаблон и XML данные в документ Excel, также работают с файлами сжатой ZIP-папки и переименовывают ее в формат XLSX [3]. XSL шаблон определяет разметку будущего документа Excel и заполняет его данными из XML-документа, при помощи XSLT-трансформации. Серверная генерация документов Excel 2003 представлена на следующем рисунке:

1. Пользователь посылает запрос на сервер для генерации Excel документа;

2. сервер обрабатывает запрос и создает XSL шаблон;

3. достав XML-документ с персональными данными, сервер применяет к нему XSL шаблон;

4. путем XSLT-трансформации XML документ преобразуется в XLS документ;

5. персонализированныйXLS-документ отправляется пользователю.

Трансформация

Рис.1. Серверная генерация документа XLS

Технические науки

161

Для версии Excel 2007-2010 рис. 2:

ЕЕ:

XML

Трансформация

Рис. 2. Серверная генерация документов XLSX

1. Пользователь посылает запрос на сервер для генерации Excel документа;

2. сервер обрабатывает запрос и создает XSL шаблон;

3. достав XML-документ с персональными данными, сервер применяет к нему XSL шаблон;

4. путем XSLr-трансформации XML документ преобразуется в новый XML-документ;

5. заранее подготавливается контейнер Open XML в заданной форме, без данных;

6. новый XML-документ помещается в контейнер;

7. контейнер запаковывается и становится Z/P-папкой, которая переименовывается вXLSXилиXLSMb зависимости от наличия макросов.

8. персонализированный Excel документ отправляется пользователю.

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

Список литературы:

1. Стивен Холзнер «XSLT. Библиотека программиста». - издат.: Питер, 2002. - 544 с.

2. Уокенбах Джон Microsoft Excel 2010. Библия пользователя. - издат.: Диалектика, 2011. - 912 с.

3. Валиков Алексей Технология XSLT. - издат.: BHV-СПб, 2001. - 544 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.