Файл состоит из множества сериализованных объектов. Эти объекты группируются в логические группы, которые перечислены ниже. Каждая из указанных групп есть в файле ВСЕГДА. Если объекты данной группы отсутствуют полностью, то в данной группе просто будет присутствовать нулевой счетчик.
Заголовок файла
Общий формат для всех ячеек документа
Таблица шрифтов
Таблица строк
Верхний колонтитул
Нижний колонтитул
Форматы ячеек для колонок
Строки и ячейки строк
Внедренные объекты
Объединения ячеек
Вертикальные секции
Горизонтальные секции
Вертикальные разделители страниц
Горизонтальные разделители страниц
Именованные области
Краткое описание колонок:
3 – Обязательная длина, которая есть всегда.
4,5 – Длина первого, второго уровня, есть только тогда, когда в вышестоящем уровне указано длина больше нуля, и повторяется столько раз, сколько указано в длине.
Если в длине указан "+" значит длина зарание неизвестна, нужно смотреть свойства текущего блока.
Длина для свойств ячеек правильно указана только для 6-й версии формата MOXCEL. Для 7-й версии длина структур для свойств ячеек: 32 (добавлен угол поворота текста).
1 | 2 | 3 | 4 | 5 | 6 |
Логические блоки | Физические блоки | дл. обяз. | дл. ур. 1 | дл. ур. 2 | Комментарии |
Заголовок | 25 (0x19) | Заголовок | |||
Таблица | Свойства ячейки для всей таблицы | 30 | Свойства ячейки для табл. | ||
Шрифты | Номера шрифтов | 2(4) | Количество шрифтов, записанное функцией CArchive::WriteCount | ||
4 | Номер шрифта | ||||
Шрифты | 2(4) | Количество = предыдущее | |||
60 | Свойства шрифта – структура LOGFONT | ||||
(?) | 4 | (?) | |||
Колонтитулы | Верхний колонтитул | 30 | Свойства ячейки для колонтитула? | ||
Нижний колонтитул | 30 | Свойства ячейки для колонтитула? | |||
Колонки | Номера колонок | 2(4) | Количество, записанное функцией CArchive::WriteCount | ||
4 | Номер колонки | ||||
Колонки | 2 | Количество = предыдущее | |||
30 | Свойства ячейки для колонки? | ||||
Строки | Номера строк | 2(4) | Количество строк, записанное функцией CArchive::WriteCount | ||
4 | Номер строки | ||||
Строки | 2 | Количество строк = предыдущее | |||
30 | Свойства ячейки для строки | ||||
Ячейки | Номера колонок | 2(4) | Количество, записанное функцией CArchive::WriteCount | ||
4 | Номер колонки | ||||
Ячейки | 2(4) | Количество = предыдущее | |||
30+ | Свойства ячейки? | ||||
Текст | + | Текст | |||
Расшифровка | + | Расшифровка | |||
Рисунки | Рисунки вставляемые | 2(4) | Количество (CArchive::WriteCount) | ||
30+ | Свойства ячейки для рисунка | ||||
40 | Свойства рисунка | ||||
+ | Рисунок, OLE | ||||
Объединение | Объединение | 2(4) | Количество (CArchive::WriteCount) | ||
16 | Свойства объединения? | ||||
Секции | Секции вертикальные | 2(4) | Количество (CArchive::WriteCount) | ||
13+ | Свойства секции? | ||||
+ | Имя | ||||
Секции горизонтальные | 2(4) | Количество (CArchive::WriteCount) | |||
13+ | Свойства секции? | ||||
+ | Имя | ||||
Переводы страниц | Переводы страниц вертикальные | 2(4) | Количество (CArchive::WriteCount) | ||
4 | Номера колонок после | ||||
Переводы страниц горизонтальные | 2(4) | Количество (CArchive::WriteCount) | |||
4 | Номера строк после | ||||
Имена | Имена | 4 | Количество | ||
1 | Длина имени | ||||
+ | Имя | ||||
28 | Свойства имени? |