Práce se správou tabulek
Práce se správou tabulek
Správa tabulek pokrývá každodenní objektový povrch crate: pracovní listy, kolekce buněk, typované hodnoty, vzorce, stylování a strukturační funkce, které dělají sešit použivatelným. Vstupní bod je vždy Workbook.
Worksheets
Listy jsou spravovány prostřednictvím kolekcí pracovních listů sešitu — přístup ke čtení přes get_worksheets, mutace přes get_worksheets_mut. Listy jsou adresovány podle indexu (get(0)) nebo názvu (get_by_name), přejmenovány pomocí set_name a přidány pomocí add_worksheet:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}Přístup k buňkám a typované hodnoty
Buňky jsou adresovány ve stylu A1 nebo numericky. get_by_index(row, column) vyhovuje generovaným rozvržením:
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}"))?;
}Při čtení zpět display_string_value vrací zobrazovaný text a value_type uvádí uložený typ.
Vzorce s uloženými výsledky
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;Uložená hodnota je to, co Excel zobrazí před jeho prvním přepočtem—poskytněte ji, aby uživatelé souboru okamžitě viděli správné výsledky.
Styling
CellStyle agreguje Font, Fill a Borders; StyleFlag určuje, které aspekty stylu se aktualizací použijí, takže existující formátování zůstane zachováno tam, kde jej nepřepíšete. NumberFormat řídí, jak se hodnoty zobrazují.
Nastavení stránky a navigace
PageSetup spravuje rozvržení tisku: PaperSizeType, PageOrientationType a okraje. FreezePane udržuje řádky záhlaví viditelné při posouvání a viditelnost řádků a sloupců využívá VisibilityType.
Struktura: Tabulky, názvy, komentáře, hypertextové odkazy
ListObjectpřevádí oblast na strukturovanou tabulku sTableStyleTypestylingem aTotalsCalculationřádky součtů.DefinedNameaDefinedNameCollectionspravují pojmenované rozsahy.Comment/CommentCollectionaHyperlink/HyperlinkCollectionpokrývají anotaci a navigaci.
Tipy a osvědčené postupy
- Uchovávejte mutabilní půjčky (
get_worksheets_mut,get_cells_mut) uvnitř blokového rozsahu; uložte sešit po uzavření bloku. - Použijte
get_by_indexpro smyčky a generované rozvržení; názvy A1 pro pevné pozice. - Aplikujte styly pomocí
StyleFlag, aby se neovlivnilo nesouvisející formátování. - Pojmenujte důležité rozsahy pomocí
DefinedNamemísto pevného kódování adres.
Běžné problémy
| Problém | Příčina | Oprava |
|---|---|---|
| Chyba při půjčování při ukládání sešitu | Mutabilní půjčka listu stále aktivní | Uzavřete blok rozsahu před voláním save |
| Vzorec zobrazuje 0 v Excelu | Nebyla poskytnuta žádná kešovaná hodnota | Použijte put_formula_with_cached_value s očekávaným výsledkem |
| List nebyl nalezen | Neshoda názvu | Adresu podle indexu nebo zkontrolujte pravopis set_name |
FAQ
Jak přidám druhý list?
Zavolejte add_worksheet na sešitu, pak jej načtěte přes kolekci listů podle indexu nebo názvu.
Mohu číst a zapisovat v jednom průchodu?
Ano — načtěte pomocí Workbook::load_xlsx, upravujte přes get_worksheets_mut a save do stejné nebo nové cesty.
Převádějí typované settery hodnoty?
Neprovádějí se žádné konverze: každý setter put_value_* ukládá svůj nativní typ; display_string_value při čtení vykreslí zobrazovaný text.
API Reference Shrnutí
| Třída/metoda | Popis: |
|---|---|
Workbook.add_worksheet | Přidejte list do sešitu |
Worksheet.set_name | Přejmenovat list |
Worksheet.get_cells_mut | Měnitelná kolekce buněk |
CellMut.put_value_string | Nastavovač typovaného řetězce |
CellMut.put_formula_with_cached_value | Vzorec plus uložený výsledek |
CellStyle | Formátování písma, výplně a okrajů |
StyleFlag | Vybere, které aspekty stylu se použijí |
PageSetup | Tisk a rozvržení stránky |
ListObject | Strukturované tabulky |