Werken met Spreadsheet Management
Werken met Spreadsheetbeheer
Spreadsheetbeheer omvat de alledaagse objectlaag van de crate: werkbladen, celverzamelingen, getypeerde waarden, formules, opmaak en de structurele kenmerken die een werkmap bruikbaar maken. Het toegangspunt is altijd een Workbook.
Worksheets
Bladen worden beheerd via de werkmap-werkbladcollecties — lees-toegang via get_worksheets, mutatie via get_worksheets_mut. Bladen worden aangesproken op index (get(0)) of naam (get_by_name), hernoemd met set_name, en toegevoegd met add_worksheet:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}Celtoegang en getypeerde waarden
Cellen worden aangesproken in A1-stijl of numeriek. get_by_index(row, column) is geschikt voor gegenereerde lay-outs:
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
}Bij het teruglezen geeft display_string_value de weergavetekst terug en meldt value_type het opgeslagen type.
Formules met gecachte resultaten
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;De gecachte waarde is wat Excel weergeeft vóór de eerste herberekening — lever deze aan zodat gebruikers van het bestand onmiddellijk de juiste resultaten zien.
Styling
CellStyle aggregeert Font, Fill en Borders; StyleFlag bepaalt welke stijlaspecten een update toepast, zodat bestaande opmaak behouden blijft waar je deze niet overschrijft. NumberFormat regelt hoe waarden worden weergegeven.
Pagina-instelling en navigatie
PageSetup beheert de afdruklay-out: PaperSizeType, PageOrientationType en marges. FreezePane houdt koprijen zichtbaar tijdens het scrollen, en de zichtbaarheid van rijen en kolommen maakt gebruik van VisibilityType.
Structuur: Tabellen, Namen, Opmerkingen, Hyperlinks
ListObjectzet een bereik om in een gestructureerde tabel metTableStyleTypeopmaak enTotalsCalculationtotalenrijen.DefinedNameenDefinedNameCollectionbeheren benoemde bereiken.Comment/CommentCollectionenHyperlink/HyperlinkCollectionbehandelen annotatie en navigatie.
Tips en best practices
- Houd mutabele leningen (
get_worksheets_mut,get_cells_mut) binnen een scope-blok; sla het werkboek op nadat het blok is gesloten. - Gebruik
get_by_indexvoor lussen en gegenereerde lay-outs; A1-namen voor vaste posities. - Pas stijlen toe met een
StyleFlagzodat niet-gerelateerde opmaak onaangeroerd blijft. - Naam belangrijke bereiken met
DefinedNamein plaats van adressen hard-gecodeerd.
Algemene problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| Leenfout bij het opslaan van de werkmap | Mutable werkblad-leen nog steeds actief | Sluit het scope-blok voordat u save aanroept |
| Formule toont 0 in Excel | Geen gecachte waarde opgegeven | Gebruik put_formula_with_cached_value met het verwachte resultaat |
| Werkblad niet gevonden | Naam komt niet overeen | Adres op index of controleer de spelling van set_name |
FAQ
Hoe voeg ik een tweede werkblad toe?
Roep add_worksheet aan op de werkmap, haal het vervolgens op via de werkbladcollectie op index of naam.
Kan ik lezen en schrijven in dezelfde doorloop?
Ja — laad met Workbook::load_xlsx, wijzig via get_worksheets_mut, en save naar hetzelfde of een nieuw pad.
Converteren getypeerde setters waarden?
Er worden geen conversies toegepast: elke put_value_* setter slaat zijn native type op; display_string_value rendert de weergavetekst bij het lezen.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
Workbook.add_worksheet | Voeg een werkblad toe aan het werkboek |
Worksheet.set_name | Hernoem een werkblad |
Worksheet.get_cells_mut | Aanpasbare celverzameling |
CellMut.put_value_string | Getypeerde tekenreekssetter |
CellMut.put_formula_with_cached_value | Formule plus gecachede resultaat |
CellStyle | Lettertype-, opvul- en randopmaak |
StyleFlag | Selecteert welke stijlaspecten van toepassing zijn |
PageSetup | Afdrukken en paginavormgeving |
ListObject | Gestructureerde tabellen |