Arbeta med Workbook Model Layer
Arbeta med arbetsbokens modellskikt
Under den användarorienterade API behåller crate ett enkelt datamodellskikt som speglar XLSX-paketet: värdestrukturer, regelmodeller och delad lagring. De flesta applikationer rör aldrig dessa typer direkt, men de dyker upp när du inspekterar inlästa arbetsböcker i detalj eller bidrar till crate själv.
Värdetyper
ColorValue bär ARGB-färgkomponenter som enkla a, r, g, b fält, med equals och get_hash_code för jämförelser. Nummerformat på modellnivå finns i NumberFormatValue, som stödjer clone för att kopiera formatdefinitioner mellan modellposter.
Regelmodeller
Datakvalitetsregler har modelltvillingar: ValidationModel exponerar regelns areas, validation_type, alert_style, operator och formula1 / formula2 uttryck som fält; FormatConditionModel och ConditionalFormattingModel spelar samma roll för villkorsformatposterna. Dessa konstrueras med default och fylls i fält för fält.
Delad stränglagring
XLSX-filer lagrar upprepad celltext i en shared-strings-tabell. SharedStringRepository modellerar det som en interner:
internlägger till en sträng och returnerar dess index (återanvänder befintliga poster),try_get_valueslår upp ett index tillbaka till dess sträng,clearåterställer lagret.
Diagnostics
DiagnosticBag samlar strukturerade problem via add under modelloperationer. På API-nivå når samma information dig via LoadDiagnostics vid inläsning av arbetsböcker — se Översikt över funktioner.
Tips och bästa praxis
- Föredra den användarorienterade API (
Workbook,Worksheet, cellsamlingar) — modellagret behövs inte för rutinmässigt kalkylbladsarbete. - Behandla modellstrukturer som dataregister: konstruera med
default, och sätt sedan fälten explicit. - När du undersöker felaktiga filer, kombinera
LoadOptionsreparationsflaggor med de diagnostikmeddelanden som laddaren rapporterar.
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
| Duplicerade delade strängar | Kringgår interner | Routa text genom SharedStringRepository.intern |
| Valideringsregel ignorerad | Modellfält ofullständiga | Ställ in validation_type, operator och formula1 på ValidationModel |
FAQ
Behöver jag modellagret för att skriva kalkylblad?
Nej. Workbook API täcker skapande, redigering och sparande av arbetsböcker; modellagret ligger till grund för det.
Varför använder modellstrukturer default-konstruktörer?
De är enkla dataregister som speglar XLSX-strukturer — default ger ett tomt register som du fyller i fält för fält.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
ColorValue | ARGB-färgpost (a, r, g, b) |
NumberFormatValue.clone | Kopiera en nummerformatdefinition |
ValidationModel | Valideringsregelpost (områden, operator, formler) |
FormatConditionModel.default | Tom post för villkorsformatregel |
SharedStringRepository.intern | Interna en sträng, returnerar dess index |
SharedStringRepository.try_get_value | Lös ett internerat index |
DiagnosticBag.add | Registrera en strukturerad diagnostik |