Файл состоит из множества сериализованных объектов. Эти объекты группируются в логические группы, которые перечислены ниже. Каждая из указанных групп есть в файле ВСЕГДА. Если объекты данной группы отсутствуют полностью, то в данной группе просто будет присутствовать нулевой счетчик.
Заголовок файла
Общий формат для всех ячеек документа
Таблица шрифтов
Таблица строк
Верхний колонтитул
Нижний колонтитул
Форматы ячеек для колонок
Строки и ячейки строк
Внедренные объекты
Объединения ячеек
Вертикальные секции
Горизонтальные секции
Вертикальные разделители страниц
Горизонтальные разделители страниц
Именованные области
Краткое описание колонок:
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 | Свойства имени? |