Таблицы. На протяжении веков они используются для представления однотипных данных в целях ведения учета, подсчета сумм, и анализа данных. Долгое время таблицы были неизменным инструментом в бухгалтерском учете и статистики. И, лишь в конце 20 века, они обрели совсем другое качество. Электронные таблицы стали симбиозом технологий прошлого и настоящего. Удобная организация данных и способы вычисления совместились с вычислительными способностями компьютеров. Что позволило быстро производить вычисления и анализ огромных объемов данных. А также решило проблему хранения и передачи данных.
Электронные таблицы строит рассматривать не как сущность, а как прикладную программу, также называемую табличный процессор. Такая программа позволяет вести учет данных в таблицах, производить различные их вычисления и преобразования. Табличные процессоры используются повсеместно, также, как и таблицы когда-то. Главное преимущество таких программ в том, что они не требую специфических знаний в учете, достаточно немного изучить программу, чтобы использовать ее базовый функционал, которого достаточно большинству пользователей. Пожалуй, нет ни одного пользователя ПК, который бы не слышал слово Excel. Именно благодаря этому, мы все открываем табличный редактор, когда нужно «подбить» смету на ремонт в квартире, или просто написать список гостей на вашу свадьбу.
В настоящий момент существует достаточно много однотипных табличных процессоров. Но, пожалуй, самые известные из них – Microsoft Excel и OpenOffice Calc. Цель этой статьи рассмотреть форматы файлов этих табличных процессоров и понять, какой из них стоит использовать в той или иной ситуации.
Формат XLS
Исторически сложилось, что мировой гигант софтверного рынка Microsoft монополизировал нишу табличных процессоров. Это продолжалось с начала девяностых и по 2006, до появления значимого конкурента OpenOffice.org.
Вплоть до 2007года Microsoft Excel использовал свой проприетарный формат формат данных с расширением XLS.
Помимо таблиц с данными и формул, файл xls может хранить в себе векторные и растровые рисунки, диаграммы и макросы(скрипты).
Файл xls на самом деле представляет собой двоичный формат BIFF. До появления xlsx в 2007, это был основной формат хранения документов Excel. И, естественно это был закрытый формат. Поэтому, Excel достаточно долго не имел конкурентов.
Если копнуть чуть глубже, то основой формата BIFF послужил разработанный в 1985 году формат Interchange File Format(IFF). Файл этого формата представляет собой контейнер, который содержит документ, метаданные, мультимедиа данные, графику.
Формат ODS
Как уже говорилось, Microsoft Excel долго был монополистом в сфере обработки электронных таблиц и во многом благодаря закрытому формату данных. Но, в начале двухтысячных группа компаний решила создать свой собственный стандарт для электронных документов, который бы позволил полностью отказаться от Microsoft Office. В 2006 году формат ODF получил стандарт ISO/IEC 26300. Этот формат представляет собой целое семейство форматов для разных продуктов:
Odt – для текстового процессора, ods – для табличного процессора, odp – для электронных презентаций и другие.
В контексте этой статьи нас интересует формат ODS, но он построен по общей концепции одинаково с остальными из группы форматов ODF. Суть формата в том, что используется контейнер – ZIP архив, который содержит внутри XML – сам документ, файлы с мета-данными, графические и мультимедиа файлы. Таким образом, мы имеем вроде бы один файл, но со всем необходимым «контентом» документа внутри. Вы с легкостью можете открыть файл ods в архиваторе, если измените расширение на zip. И внутри увидите все файлы, описанные выше.
Главное преимущество этого формата заключалось в том, что он стал открытым и имел официальный стандарт. Использование XML для формирования основного документа сделало создание и понимание этого формата просты им понятным. Благодаря этому, поддержка этого формата быстро появилась в большинстве табличных процессоров. И хотя, первый стандарт имел некоторые нарекания и скепсис со стороны пользователей, ODF достаточно быстро завоевал популярность не только среди любителей опенсорса, но и среди многих коммерческих и некоммерческих организаций, которые захотели отказаться от дорогого решения Microsoft.
Формат XLSX
Однако, такое положение дел не устраивало Microsoft, и на волне общего бума развития опенсорс приложений, компания выпускает свой открытый формат – xlsx. И хотя название отличается от предыдущего формата лишь одной буквой, по сути это совсем другой формат. По своей структуре он похож на ODS. Это тоже ZIP-контейнер с XML файлом внутри. Также, помимо XML, внутри файлы с графикой, мультимедиа, скриптами.
Этот формат появился на год позже ODF, в 2007год. И, начиная с версии Excel 2007, он стал официальным форматом по умолчанию. Поддержка старого xls, конечно сохранилась, ведь за многие годы его существования накопилось огромное количество документов, преобразовать которые в новый формат не так-то просто. По инерции пользователи продолжали работать со старым форматом ввиду наличия старых версий MS Office на предприятиях достаточно долго. Многим пользователям MS Office было непонятно для чего появился новый формат. А появился он по двум причинам: это и политика компании, которая начала вливаться на рынок программного обеспечения с открытым исходным кодом, и стремление сохранить клиентов, которые заинтересовались бесплатными продуктами OpenOffice. Но и практическую пользу новый формат тоже привнес. Файлы с расширением xlsx имеют значительно меньший размер по сравнению с xls. Программисты наконец-то смогли разбирать документы Excel в своих программах.
Сравнение
Итак, мы выяснили, что форматы ODF и XLSX имеют схожую архитектуру, благодаря использованию ZIP-контейнера их размер значительно меньше устаревшего формата xls, они оба имеют открытый стандарт. Кроме того, новые форматы более устойчивы к повреждениям по сравнению с устаревшим бинарным. Без части файлов внутри контейнера, документ сохранит работоспособность.
Очевидно, что выбирать какой лучше использовать нужно между ними двумя. С одной стороны, малоизвестный продукт OpenOffice, которые многие восприняли как «китайскую» подделку под MS Office. С другой стороны – давно известный и суперпопулярный табличный процессор MS Excel. Очевидно, что наработанная за многие годы клиентская база Microsoft отдает предпочтение формату xlsx. Поэтому и популярность этого формата гораздо больше ODS.
OpenOffice стремится отстоять свой формат и поддерживает xlsx только на чтение. Однако, имеет широкие возможности по чтению и сохранению документов в устаревший формат xls, который тоже стал открытым после появления xlsx, правда для некоммерческого использования.
Такая ситуация не со всеми opensource табличными процессорами. К примеру, LibreOffice Calc (который создан на основе OpenOffice) поддерживает xlsx полноценно. Но, как бы не старались производители поддерживать чужие форматы, всегда останутся проблемы. Поддержка макросов в форматах Microsoft все еще остатется проблемым местом.
Microsoft Excel тоже имеет поддержку формата конкурентов ODS. Но и тут не все гладко. Часто форматирование отличается от оригинала.
Таким образом, все стараются обеспечить поддержку форматов конкурентов, но получается это не идеально. Поэтому нельзя сказать используйте бесплатное ПО для работы с документами Excel. Ровно, как нельзя рекомендовать использовать MS Excel в качестве универсального решения для работы с любыми форматами. Вам придется определять область применения табличного процессора. Для компаний, которые долго работали с MS Office переход на опенсорс продукты может оказаться болезненным. Многие старые документы будут отображаться с ошибками, да и макросы будут работать частично.
Тем не менее многие крупные компании уже перешли на OpenOffice и пережили озвученные выше неприятности. Проблем с нативными форматами в бесплатных офисных пакетах нет, поэтому свою нишу эти продукты займут.
Для России в последнее время актуальна проблема с названием «импортозамещение». Замещать импортный платный софт довольно трудно, ввиду отсутствия достойных решений для замены. Но в ситуации с офисными продуктами это не так. Бесплатные офисные пакеты вполне могут конкурировать с MS Office, остаётся лишь проблема совместимости, о которой мы говорили выше.
Генерация отчетов в XLSX и ODS
Зачастую, отчетность представляется в табличном формате. И если вы используете генератор отчетов, то наверняка преобразуете эти отчеты в электронные таблицы и удобства редактирования. Поэтому, в рамках этой статьи, было бы интересно посмотреть, как будет выглядеть один и тот же отчет, экспортированный в формат xlsx и ods, при просмотре в табличных процессорах MS Excel и OO Calc (OpenOffice).
Генератор отчетов FastReport.Net поддерживает все три рассмотренных нами формата для электронных таблиц. Давайте рассмотрим, как будет выглядеть отчет в форматах XLSX и ODS при просмотре в нативном и стороннем табличном процессоре. Вот оригинальный отчет перед экспортом:
Выполним его экспорт в формат Excel 2007 (xlsx):
А если просмотреть этот же файл в OpenOffice Calc, картина вас не обрадует:
Зато OO Calc хорошо отобразит отчет в формате ODS:
Но если открыть ods в Excel...:
Теперь вы убедились своими глазами, как на самом деле поддерживаются документы сторонних форматов. Такая совместимость нам не нужна!
Из этого можно сделать выводы, что по большому счету какой именно формат использовать разницы нет, главное, чтобы он использовался в нативном табличном процессоре, иначе огорчения и расстройства будут вашими постоянными спутниками.