Arbeiten mit der Workbook Model Layer
Arbeiten mit der Workbook-Modellschicht
Unterhalb des benutzerseitigen API hält das crate eine reine Datenmodellschicht, die das XLSX-Paket spiegelt: Wertstrukturen, Regelmodelle und gemeinsamen Speicher. Die meisten Anwendungen berühren diese Typen nie direkt, aber sie treten zutage, wenn Sie geladene Arbeitsmappen eingehend untersuchen oder zum crate selbst beitragen.
Wertetypen
ColorValue trägt ARGB-Farbkomponenten als einfache a, r, g und b Felder, mit equals und get_hash_code für Vergleiche. Die Zahlenformatierung auf Modellebene befindet sich in NumberFormatValue, das clone zum Kopieren von Formatdefinitionen zwischen Modelldatensätzen unterstützt.
Regelmodelle
Data-Quality-Regeln haben Modellzwillinge: ValidationModel stellt die areas, validation_type, alert_style und operator der Regel sowie die formula1 / formula2 Ausdrücke als Felder bereit; FormatConditionModel und ConditionalFormattingModel übernehmen die gleiche Rolle für bedingte Formatierungsdatensätze. Diese werden mit default konstruiert und Feld für Feld befüllt.
Gemeinsamer Zeichenketten-Speicher
XLSX-Dateien speichern wiederholten Zellentext in einer shared-strings-Tabelle. Der SharedStringRepository modelliert sie als Interner:
internfügt einen String hinzu und gibt dessen Index zurück (wiederverwendet vorhandene Einträge),try_get_valuelöst einen Index zurück zu seinem String auf,clearsetzt das Repository zurück.
Diagnostics
DiagnosticBag erfasst strukturierte Probleme über add während Modelloperationen. Auf der API-Ebene erreicht Sie dieselbe Information über LoadDiagnostics beim Laden von Arbeitsmappen — siehe Übersicht der Funktionen.
Tipps und bewährte Verfahren
- Bevorzugen Sie das benutzerorientierte API (
Workbook,Worksheet, Zellensammlungen) — die Modellebene wird für routinemäßige Tabellenkalkulationsarbeit nicht benötigt. - Behandeln Sie Model-Structs als Datenaufzeichnungen: konstruieren Sie sie mit
defaultund setzen Sie anschließend die Felder explizit. - Bei der Untersuchung fehlerhafter Dateien kombinieren Sie
LoadOptions-Reparatur-Flags mit den Diagnosen, die der Loader meldet.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| Doppelte gemeinsam genutzte Zeichenfolgen | Umgehen des Interner | Leite Text durch SharedStringRepository.intern |
| Validierungsregel ignoriert | Modelfelder unvollständig | Setze validation_type, operator und formula1 auf ValidationModel |
FAQ
Benötige ich die Model-Schicht, um Tabellenkalkulationen zu schreiben?
Nein. Das Workbook API deckt das Erstellen, Bearbeiten und Speichern von Arbeitsmappen ab; die Model-Schicht bildet die Grundlage.
Warum verwenden Model-Structs default-Konstruktoren?
Sie sind einfache Datenaufzeichnungen, die XLSX-Strukturen spiegeln — default liefert einen leeren Datensatz, den Sie Feld für Feld befüllen.
API Reference Zusammenfassung
| Klasse/Methode | Beschreibung |
|---|---|
ColorValue | ARGB-Farbdatensatz (a, r, g, b) |
NumberFormatValue.clone | Kopiere eine Zahlenformatdefinition |
ValidationModel | Validierungsregel-Datensatz (Bereiche, Operator, Formeln) |
FormatConditionModel.default | Leerer Datensatz für bedingte Formatierungsregel |
SharedStringRepository.intern | Interniere einen String und gib dessen Index zurück |
SharedStringRepository.try_get_value | Einen internierten Index auflösen |
DiagnosticBag.add | Eine strukturierte Diagnose aufzeichnen |