Работа с уровнем модели Workbook

Работа с уровнем модели 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 с диагностикой, которую выдаёт загрузчик.

Распространённые проблемы

IssueCauseFix
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Записать структурированную диагностику

См. также:

 Русский