Работа с уровнем модели Workbook
Работа с модельным слоем рабочей книги
Под пользовательским API crate хранит слой модели простых данных, который отражает пакет XLSX: структуры значений, модели правил и shared storage. Большинство приложений никогда не работают с этими типами напрямую, но они появляются, когда вы детально исследуете загруженные рабочие книги или вносите вклад в сам crate.
Типы значений
ColorValue содержит компоненты цвета ARGB как простые поля a, r, g, b, с equals и get_hash_code для сравнений. Форматирование чисел на уровне модели находится в NumberFormatValue, которое поддерживает clone для копирования определений форматов между записями модели.
Модели правил
Правила качества данных имеют двойники в модели: ValidationModel раскрывает areas, validation_type, alert_style, operator правила, а также выражения formula1 / formula2 в виде полей; FormatConditionModel и ConditionalFormattingModel выполняют ту же роль для записей условного форматирования. Они создаются с помощью default и заполняются поле за полем.
Хранилище общих строк
XLSX файлы хранят повторяющийся текст ячеек в таблице shared-strings. SharedStringRepository моделирует её как интернер:
internдобавляет строку и возвращает её индекс (повторно используя существующие записи),try_get_valueпреобразует индекс обратно в строку,clearсбрасывает репозиторий.
Diagnostics
DiagnosticBag собирает структурированные проблемы через add во время операций модели. На уровне API та же информация поступает к вам через LoadDiagnostics при загрузке рабочих книг — см. Обзор функций.
Советы и лучшие практики
- Отдавайте предпочтение пользовательскому API (
Workbook,Worksheet, коллекциям ячеек) — уровень модели не нужен для рутинной работы с таблицами. - Рассматривайте структуры модели как записи данных: создавайте их с помощью
default, затем явно задавайте поля. - При исследовании повреждённых файлов комбинируйте флаги восстановления
LoadOptionsс диагностикой, которую выдаёт загрузчик.
Распространённые проблемы
| Issue | Cause | Fix |
|---|---|---|
| Duplicate shared strings | Обход интернера | Маршрутизировать текст через SharedStringRepository.intern |
| Правило валидации проигнорировано | Поля модели неполные | Установите validation_type, operator и formula1 на ValidationModel |
FAQ
Нужен ли слой модели для записи электронных таблиц?
Нет. Workbook API охватывает создание, редактирование и сохранение рабочих книг; слой модели поддерживает это.
Почему структуры модели используют конструкторы default?
Это простые записи данных, отражающие структуры XLSX — default предоставляет пустую запись, которую вы заполняете поле за полем.
API Reference Сводка
| Класс/Метод | Описание: |
|---|---|
ColorValue | Запись цвета ARGB (a, r, g, b) |
NumberFormatValue.clone | Скопировать определение числового формата |
ValidationModel | Запись правила проверки (области, оператор, формулы) |
FormatConditionModel.default | Пустая запись правила условного форматирования |
SharedStringRepository.intern | Интернировать строку, возвращая её индекс |
SharedStringRepository.try_get_value | Разрешить интернированный индекс |
DiagnosticBag.add | Записать структурированную диагностику |