Робота з шаром моделі робочої книги
Робота з модельним шаром книги
Під користувацьким інтерфейсом API, crate зберігає простий шар моделі даних, що відображає пакет XLSX: структури значень, моделі правил та спільне сховище. Більшість застосунків ніколи не працюють безпосередньо з цими типами, проте вони з’являються, коли ви глибоко досліджуєте завантажені книги або робите внесок у сам 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з діагностикою, яку повідомляє завантажувач.
Типові проблеми
| Проблема | Причина | Виправлення |
|---|---|---|
| Дубльовані спільні рядки | Обхід інтернера | Маршрутизувати текст через 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 | Записати структуровану діагностику |