.XLS вариант №
Файлы с расширением XLS представляют собой формат двоичных файлов Excel. Такие файлы могут быть созданы Microsoft Excel, а также другими подобными программами для работы с электронными таблицами, такими как OpenOffice Calc или Apple Numbers. Файл, сохраненный Excel, известен как рабочая книга, где каждая рабочая книга может иметь один или несколько рабочих листов. Данные хранятся и отображаются для пользователей в формате таблицы на листе и могут охватывать числовые значения, текстовые данные, формулы, подключения к внешним данным, изображения и диаграммы. Такие приложения, как Microsoft Excel, позволяют экспортировать данные рабочей книги в несколько различных форматов, включая PDF, CSV, XLSX, TXT, HTML, XPS и некоторые другие. Формат файла XLS был заменен более открытым и структурированным форматом XLSX с выпуском Microsoft Excel 2007. В последних версиях по-прежнему поддерживается создание и чтение файлов XLS, хотя XLSX сейчас используется в первую очередь.
Краткая история
XLS был создан Microsoft для использования с Microsoft Excel и также известен как формат двоичного обмена файлами (BIFF). Этот тип файлов был впервые введен в состав Excel для Windows в 1987 году. Спецификации формата файлов XLS были впервые обнародованы в июне 2008 года как редакция 1. После этого спецификации постоянно обновлялись, и была доступна последняя версия. по состоянию на август 2018 г. помечен как редакция 8.0. Краткая история различных версий формата файла XLS выглядит следующим образом:
- Версия 7.0 (выпущенная с Office 95): эта версия Excel была самой надежной и быстрой среди всех версий, а внутренние перезаписываемые потоки были обновлены до 32 бит.
- Версия 8 (выпущенная с Office 97): VBA был введен в качестве стандартного языка, и в эту версию впервые были включены удаленные метки естественного языка. Он также впервые представил офисного помощника со скрепкой.
- Версия 9 (выпущенная вместе с Office 2000): в Версии 9 были внесены лишь незначительные изменения, в которых помощник по работе со скрепками мог одновременно удерживать несколько объектов, что ранее было невозможно.
- Версия 10 (выпущенная с Office XP): эта версия не содержит каких-либо заметных улучшений.
- Версия 11 (выпущена вместе с Office 2003): Основным обновлением версии 11 Excel 2003 стало введение новых таблиц.
Спецификации формата файла XLS
Данные располагаются в файле XLS в виде двоичных потоков в виде составного файла, как описано в [MS-CFB]. Данные хранятся в составном файле с использованием хранилищ, потоков и подпотоков, которые содержат информацию о содержимом и структуре книги, включая данные книги, такие как определения листов. Каждый поток или подпоток содержит ряд двоичных записей. Каждая двоичная запись содержит ноль или более структурированных полей, содержащих данные рабочей книги. В этом разделе дается краткий обзор файловой структуры XLS, но для получения подробных спецификаций формата файлов необходимо обратиться к [Спецификациям формирования файлов XLS](https://msdn.microsoft.com/en-us/library/cc313154(v#office .12).aspx) документ Microsoft.
Поток и подпоток
Рабочая книга представлена потоком рабочей книги. Каждый рабочий лист в рабочей книге представлен вложенными потоками. Кроме того, он имеет подпоток листа диаграммы, подпоток листа макросов или подпоток листа диалога, который следует за глобальным подпотоком. Каждый двоичный поток или подпоток, содержащий данные рабочей книги, ДОЛЖЕН быть записан как серия двоичных записей.
Записывать
Информация о функциях в рабочей книге хранится в виде записи, представляющей собой последовательность байтов переменной длины. Двоичная запись состоит из следующих трех компонентов:
Тип записи: Тип записи — это двухбайтовое целое число без знака, указывающее, какой тип информации указан в записи и как упорядочена и структурирована структура данных записи, характерных для этой записи. Значения типа записи ДОЛЖНЫ быть значением из перечисления записей (раздел 2.3), или запись ДОЛЖНА использовать будущую архитектуру записей (раздел 2.1.6).
Размер записи: Размер записи представляет собой двухбайтовое целое число без знака, указывающее количество байтов, определяющее общий размер данных записи. Размер записи ДОЛЖЕН быть больше или равен 0 и ДОЛЖЕН быть меньше или равен 8224.
Данные записи: Компонент данных записи содержит поля, которые соответствуют определенному типу записи и составляют остальную часть записи. Порядок и структура полей для данного типа записи указаны в соответствующем разделе для этого типа записи. Размер компонента данных записи ДОЛЖЕН быть равен размеру записи. Поля в компоненте данных записи могут содержать простые значения, массивы значений, структуры из нескольких полей, массивы полей и массивы структур.
Таблица ячеек
Ячейки — это основные блоки рабочей книги, в которых хранится содержимое рабочей книги, такое как текст, формулы и числовые данные. Ячейки поддерживают запись сохраненных данных через структуру данных, называемую таблицей ячеек. Сама таблица ячеек хранится в последовательности записей, соответствующих правилам CELLTABLE, определенным в документе спецификаций. Он состоит из ряда блоков строк, где строки расположены в блоках строк. Каждый блок строк содержит строки от первой строки, содержащей данные, до последней строки, содержащей данные.
Форматирование данных или строк сохраняется в записи строки для каждого блока строки. Каждая ячейка, содержащая данные или форматирование отдельной ячейки, представлена записью. Форматирование, связанное с ячейкой, может быть получено из форматирования отдельной ячейки, форматирования строки, форматирования столбца или формата ячейки по умолчанию. Порядок приоритета форматирования — это форматирование отдельных ячеек с наивысшим приоритетом, за которым следует форматирование строки, затем форматирование столбца, а затем формат ячейки по умолчанию. Ячейки, не содержащие данных и не содержащие индивидуального форматирования, не сохраняются.
Формулы
Формула — это последовательность значений, ссылок на ячейки, имен, функций или операторов в ячейке, которые вместе создают новое значение. Формулы хранятся в токенизированном представлении, известном как «анализируемые выражения». Проанализированное выражение преобразуется в текстовую формулу во время выполнения для отображения и редактирования пользователем. Формулы ячеек задаются записью Формула. Формулы массива задаются записью массива. Общие формулы задаются записью ShrFmla.
Графики
Лист диаграммы указывает диаграмму, графику, которая отображает данные или отношения между наборами данных в визуальной форме, и кэш данных диаграммы, локальная копия данных, которые используются в данных диаграммы, отсутствует или если ссылки на внешние источники данных сломаны. На диаграмме указываются группы с одной или двумя осями, набор осей, по которым отображаются данные диаграммы, а также набор рядов, линий тренда и полосы ошибок, указанные на диаграмме. Каждая группа осей определяет от одной до четырех групп диаграмм, которые определяют тип визуализации, используемой для отображения данных. Каждый ряд, линия тренда и полоса погрешностей определяют группу диаграммы, с которой они связаны.
Метаданные
Метаданные — это дополнительные данные, связанные с конкретной ячейкой или ее содержимым. Метаданные записываются в BIFF8 только для будущих целей расширения.
Сводные таблицы
Сводная таблица — это механизм суммирования исходных данных для получения обзора распределения этих данных. В сводной таблице применимые столбцы исходных данных становятся полями, которые можно использовать для суммирования данных. Когда исходными данными сводной таблицы являются исходные данные OLAP, иерархии OLAP и некоторые другие объекты OLAP становятся полями сводной таблицы. Сводная таблица состоит из двух основных частей: сводного кэша и представления сводной таблицы. Может быть несколько представлений сводных таблиц на основе одного сводного кэша, отличного от OLAP.
Стили
В этом обзоре описывается, как указывается информация о форматировании и защите ячеек на листе (1). Форматирование ячейки состоит из нескольких наборов свойств:
- Свойства шрифта (жирный, курсив, цвет шрифта, размер шрифта и т. д.)
- Свойства заливки (цвет переднего плана, цвет фона, узор, градиент и т. д.)
- Свойства выравнивания (выравнивание по левому краю, по центру, по правому краю и т. д.)
- Свойства границы (левая, правая, верхняя, нижняя, толстая или тонкая, цвет и т. д.)
- Свойства форматирования чисел (дата, время, количество знаков после запятой и т. д.)
- Свойства защиты (заблокировано, скрыто и т. д.)
Эти свойства в целом описывают, как отображается и печатается конкретная ячейка.