Werken met de Workbook Model Layer
Werken met de Workbook Model Layer
Onder de gebruiksvriendelijke API houdt de crate een eenvoudige gegevensmodellaag bij die het XLSX-pakket weerspiegelt: waardestructuren, regelmodellen en gedeelde opslag. De meeste toepassingen raken deze types nooit direct, maar ze komen naar voren wanneer je geladen werkboeken grondig inspecteert of bijdraagt aan de crate zelf.
Waarde Types
ColorValue draagt ARGB-kleurcomponenten als eenvoudige a, r, g, b velden, met equals en get_hash_code voor vergelijkingen. Getalopmaak op modelniveau bevindt zich in NumberFormatValue, die clone ondersteunt voor het kopiëren van opmaakdefinities tussen modelrecords.
Regelmodellen
Data-quality-regels hebben model-tweelingen: ValidationModel exposeert de areas, validation_type, alert_style, operator van de regel en de formula1 / formula2 expressies als velden; FormatConditionModel en ConditionalFormattingModel vervullen dezelfde rol voor voorwaardelijke opmaakrecords. Deze worden geconstrueerd met default en veld-voor-veld ingevuld.
Gedeelde tekenreeksopslag
XLSX-bestanden slaan herhaalde celtekst op in een shared-strings-tabel. De SharedStringRepository modelleert dit als een interner:
internvoegt een string toe en retourneert de index (hergebruikt bestaande vermeldingen),try_get_valuelost een index op naar zijn string,clearreset de repository.
Diagnostics
DiagnosticBag verzamelt gestructureerde issues via add tijdens modelbewerkingen. Op het API niveau bereikt dezelfde informatie je via LoadDiagnostics bij het laden van werkboeken — zie Overzicht van functies.
Tips en best practices
- Geef de gebruiksgerichte API de voorkeur (
Workbook,Worksheet, celcollecties) — de modellaag is niet nodig voor routinematige spreadsheet-werkzaamheden. - Behandel modelstructuren als gegevensrecords: maak ze aan met
default, stel vervolgens de velden expliciet in. - Bij het onderzoeken van misvormde bestanden, combineer
LoadOptionsreparatie-vlaggen met de diagnostiek die de loader rapporteert.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| Dubbele gedeelde strings | De interner omzeilen | Leid tekst door SharedStringRepository.intern |
| Validatieregel genegeerd | Modelvelden onvolledig | Stel validation_type, operator en formula1 in op ValidationModel |
FAQ
Heb ik de modellaag nodig om spreadsheets te schrijven?
Nee. De Workbook API dekt het maken, bewerken en opslaan van werkmappen; de modellaag vormt de basis.
Waarom gebruiken modelstructuren default-constructors?
Het zijn eenvoudige gegevensrecords die XLSX-structuren weerspiegelen — default levert een leeg record dat je veld voor veld invult.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
ColorValue | ARGB-kleurenrecord (a, r, g, b) |
NumberFormatValue.clone | Kopieer een getalopmaakdefinitie |
ValidationModel | Validatieregelrecord (gebieden, operator, formules) |
FormatConditionModel.default | Leeg voorwaardelijke opmaakregelrecord |
SharedStringRepository.intern | Intern een string, retourneert de index |
SharedStringRepository.try_get_value | Los een geïnterneerde index op |
DiagnosticBag.add | Registreer een gestructureerde diagnostiek |