Статьи по меткам ‘ooxml’

Вы ещё любите OOXML? Тогда мы идём к вам!

Июль 15th, 2010

И снова Epic Fail от Microsoft.

Суть проблемы в том, что Microsoft сама не соблюдает опубликованные ею же стандарты. По работе с заказчиком пришлось дополнять функционал софта до экспорта отчётов в документ XLSX. Написана библиотека, работа проверена, но вот незадача: у заказчика документы не читаются этим сраным Офисом. При этом, OpenOffice влёт читает эти документы, что как бы намекает нам.

В общем, поковырявшись с форматами, человек, занимавшийся разработкой библиотеки создания OOXML-документов, сделал следующий вердикт:

Документы от заказчика и генерируемые нашей библиотекой, в общем, эквивалентны, но:

1) При определении корневого тэга рабочей книги мы объявляли атрибут dateCompatibility="0", что по спецификации обозначает работу с полноценными датами. Это не нравилось парсеру настолько, что документ считался битым.

2) при определении листа книги, у нас сначала шли данные, потом определения колонок (ширина). Ну, может быть, с точки зрения эффективности чтения документа это нехорошо, но, в целом, какая разница, если документ в формате XML? По крайней мере, непонятно, почему данные не отображались: ну нет определений ширины колонки, фиг с ним. Так нет же, страница считалась битой.

3) В определениях стилей был важен порядок следования тэгов! Ну это уж совсем плохо.
То есть, у нас была последовательность <bgColor/><fgColor/>, а парсеру Excel требовалось <fgColor/><bgColor/> Пока не поменял местами, стили не применялись, и данные не отображались.
4) Из той же области: был также важен порядок определения (шрифты, заливка, бордюр). Любой другой порядок приводил к известному сообщению, но данные уже отображались.
5) Не применялся стиль к строке. В реализации MS стиль нужно определять для каждой ячейки индивидуально.
6) И еще была какая-то странность: нужно было создать еще один пустой стиль (до этого итак в каждом документе создавался один пустой стиль, без которого не работал OpenOffice) в начале таблицы, чтобы остальными можно было пользоваться. Такое впечатление, что в Excel нарушена индексация при указании ссылок на таблицу стилей.

Риторический вопрос: вы ещё хотите жевать это говно?

Скажи «НЕТ» стандарту Microsoft!

Август 29th, 2007