Praca z warstwą modelu skoroszytu
Praca z warstwą modelu skoroszytu
Pod API skierowanym do użytkownika, crate utrzymuje warstwę modelu danych w postaci czystych struktur, która odzwierciedla pakiet XLSX: struktury wartości, modele reguł i wspólne przechowywanie. Większość aplikacji nigdy nie dotyka tych typów bezpośrednio, ale pojawiają się, gdy dokładnie przeglądasz załadowane skoroszyty lub przyczyniasz się do samego crate.
Typy wartości
ColorValue zawiera komponenty koloru ARGB jako zwykłe pola a, r, g, b, z equals i get_hash_code do porównań. Formatowanie liczb na poziomie modelu znajduje się w NumberFormatValue, które obsługuje clone do kopiowania definicji formatów pomiędzy rekordami modelu.
Modele reguł
Reguły jakości danych mają modelowe bliźniaki: ValidationModel udostępnia areas, validation_type, alert_style, operator reguły oraz wyrażenia formula1 / formula2 jako pola; FormatConditionModel i ConditionalFormattingModel pełnią tę samą rolę dla rekordów formatowania warunkowego. Są one konstruowane przy użyciu default i wypełniane pole po polu.
Wspólne przechowywanie ciągów
Pliki XLSX przechowują powtarzający się tekst komórek w tabeli shared-strings. SharedStringRepository modeluje to jako internowanie:
interndodaje ciąg znaków i zwraca jego indeks (ponownie wykorzystując istniejące wpisy),try_get_valueodtwarza indeks do jego ciągu znaków,clearresetuje repozytorium.
Diagnostics
DiagnosticBag gromadzi ustrukturyzowane problemy za pośrednictwem add podczas operacji modelu. Na poziomie API te same informacje docierają do Ciebie poprzez LoadDiagnostics podczas ładowania skoroszytów — zobacz Przegląd funkcji.
Wskazówki i najlepsze praktyki
- Preferuj interfejs skierowany do użytkownika API (
Workbook,Worksheet, kolekcje komórek) — warstwa modelu nie jest potrzebna do rutynowej pracy z arkuszami kalkulacyjnymi. - Traktuj struktury modelu jako rekordy danych: utwórz je przy użyciu
default, a potem ustaw pola jawnie. - Podczas badania uszkodzonych plików połącz flagi naprawy
LoadOptionsz diagnostyką zgłaszaną przez ładowarkę.
Typowe problemy
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
| Zduplikowane współdzielone ciągi | Omijanie internera | Przekieruj tekst przez SharedStringRepository.intern |
| Reguła walidacji zignorowana | Pola modelu niekompletne | Ustaw validation_type, operator i formula1 na ValidationModel |
FAQ
Czy potrzebuję warstwy modelu do zapisywania arkuszy kalkulacyjnych?
Nie. Workbook API obejmuje tworzenie, edytowanie i zapisywanie skoroszytów; warstwa modelu jest ich podstawą.
Dlaczego struktury modelu używają konstruktorów default?
Są to zwykłe rekordy danych odzwierciedlające struktury XLSX — default dostarcza pusty rekord, który wypełniasz pole po polu.
API Reference Podsumowanie
| Klasa/Metoda | Opis |
|---|---|
ColorValue | Rekord koloru ARGB (a, r, g, b) |
NumberFormatValue.clone | Skopiuj definicję formatu liczby |
ValidationModel | Rekord reguły walidacji (obszary, operator, formuły) |
FormatConditionModel.default | Pusty rekord reguły formatowania warunkowego |
SharedStringRepository.intern | Zainternuj ciąg znaków, zwracając jego indeks |
SharedStringRepository.try_get_value | Rozwiąż zinternowany indeks |
DiagnosticBag.add | Zapisz ustrukturyzowaną diagnostykę |