Открыть сервисСервис

Формат XLSX

XLSX — файловый формат электронных таблиц, основанный на стандарте Office Open XML (ISO/IEC 29500), введённом корпорацией Microsoft в 2007 году в составе пакета Microsoft Office 2007. Расширение .xlsx используется для книг Excel, сохранённых в формате XML-документов, упакованных в ZIP-архив. Формат заменил бинарный формат .xls (Compound File Binary Format), применявшееся в Excel с 1993 года, и стал одним из основных стандартов хранения табличных данных в информационных системах.

История

До 2007 года Microsoft Excel использовал проприетарный бинарный формат .xls, основанный на структуре Compound File Binary Format (так называемый «формат OLE2»). Файл представлял собой бинарный поток с внутренней файловой системой, что затрудняло чтение данных сторонними программами и делало формат уязвимым для повреждений.

В 2006 году консорциум Ecma International опубликовал стандарт Office Open XML (OOXML) как открытый формат для документов Microsoft Office. В 2008 году стандарт был принят Международной организацией по стандартизации (ISO) под номером ISO/IEC 29500. Формат .xlsx стал основным форматом сохранения книг Excel начиная с версии 2007 года. Позже Microsoft выпустила спецификацию MS-XLSX, описывающую внутреннюю структуру формата.

Устройство файла

Файл .xlsx представляет собой ZIP-архив (сжатие методом deflate), содержащий набор XML-документов и служебных файлов. Структура архива стандартизирована и имеет следующий вид:

ЭлементНазначение
[Content_Types].xmlОписывает типы всех файлов внутри архива
_rels/.relsКорневые связи между элементами
xl/workbook.xmlСписок листов книги и свойства
xl/worksheets/sheet1.xmlДанные отдельных листов
xl/sharedStrings.xmlОбщая таблица строковых значений
xl/styles.xmlФорматирование ячеек, шрифты, заливки
xl/theme/theme1.xmlТема оформления
docProps/core.xml, docProps/app.xmlМетаданные документа (автор, дата изменения)

Данные ячеек хранятся в XML-узлах <c> внутри элементов <row> и <sheetData>. Значения ячеек могут быть числовыми, строковыми, логическими, ошибочными или формулами. Строковые значения часто выносятся в sharedStrings.xml и связываются с ячейками по индексу, что уменьшает размер файла при повторяющихся данных.

Классификация форматов OOXML

РасширениеОписание
.xlsxОбычная книга Excel без поддержки макросов
.xlsmКнига с поддержкой макросов VBA
.xlsbБинарный формат OOXML для больших книг
.xltx, .xltmШаблоны книг

Все перечисленные форматы используют ZIP-контейнер и XML-представление данных, но различаются набором разрешённых элементов и типами содержимого.

Совместимость и поддержка

Формат .xlsx поддерживается большинством табличных редакторов: LibreOffice Calc, Google Таблицы, Apple Numbers, WPS Office, OpenOffice Calc. Библиотеки для работы с форматом существуют для многих языков программирования — например, openpyxl и pandas (Python), Apache POI (Java), EPPlus и NPOI (.NET), xlsxwriter (Python).

В России формат XLSX активно используется в бухгалтерских системах, включая продукты «1С:Предприятие», где табличные выгрузки в этот формат применяются для обмена данными с ФНС, банками и контрагентами.

Ограничения

Несмотря на открытость стандарта, спецификация OOXML содержит ряд спорных моментов, связанных с совместимостью с продуктами Microsoft. К ограничениям формата также относятся:

  • ограничение на 1 048 576 строк и 16 384 столбцов на лист;
  • ограничение на 255 символов в имени листа;
  • потенциальное увеличение размера файла при работе с большими объёмами данных (в отличие от бинарного .xlsb);
  • риск внедрения вредоносного кода через макросы (решается отключением макросов и использованием .xlsx вместо .xlsm).

Применение

Формат XLSX применяется для хранения и обмена табличными данными, построения отчётов, ведения баз данных небольшого объёма, а также как промежуточный формат при импорте и экспорте данных в информационных системах. Многие государственные и корпоративные системы принимают отчётность именно в формате XLSX.

Источники

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru