Arbeta med kalkylbladsadministration
Arbeta med kalkylbladsadministration
Kalkylbladsadministration täcker den dagliga objektytan i paketet: arbetsblad, cellsamlingar, typade värden, formler, formatering och de strukturella funktionerna som gör en arbetsbok användbar. Ingångspunkten är alltid en Workbook.
Worksheets
Arbetsblad hanteras via arbetsbokens samlingar av arbetsblad — läsåtkomst via get_worksheets, mutation via get_worksheets_mut. Arbetsblad adresseras med index (get(0)) eller namn (get_by_name), byts namn med set_name, och läggs till med add_worksheet:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}Cellåtkomst och typade värden
Celler adresseras i A1-stil eller numeriskt. get_by_index(row, column) passar genererade layouter:
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}"))?;
}Vid återläsning returnerar display_string_value visningstexten och value_type rapporterar den lagrade typen.
Formler med cachade resultat
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;Det cachade värdet är det som Excel visar innan den första omräkningen — tillhandahåll det så att filens mottagare ser korrekta resultat omedelbart.
Styling
CellStyle aggregerar Font, Fill och Borders; StyleFlag styr vilka stilaspekter en uppdatering tillämpas på, så att befintlig formatering bevaras där du inte åsidosätter den. NumberFormat styr hur värden renderas.
Sidinställning och navigering
PageSetup hanterar utskriftslayout: PaperSizeType, PageOrientationType och marginaler. FreezePane håller rubrikrader synliga vid rullning, och rad- och kolumnsynlighet använder VisibilityType.
Struktur: Tabeller, Namn, Kommentarer, Hyperlänkar
ListObjectomvandlar ett område till en strukturerad tabell medTableStyleTypestil ochTotalsCalculationtotalrader.DefinedNameochDefinedNameCollectionhanterar namngivna områden.Comment/CommentCollectionochHyperlink/HyperlinkCollectiontäcker annotering och navigering.
Tips och bästa praxis
- Behåll muterbara lån (
get_worksheets_mut,get_cells_mut) inom ett scope-block; spara arbetsboken när blocket stängs. - Använd
get_by_indexför slingor och genererade layouter; A1-namn för fasta positioner. - Applicera stilar med en
StyleFlagså att orelaterad formatering lämnas orörd. - Namnge viktiga områden med
DefinedNameistället för att hårdkoda adresser.
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
| Utlåningsfel vid sparande av arbetsboken | Utlåning av muterbart arbetsblad är fortfarande aktiv | Stäng scope-blocket innan du anropar save |
| Formeln visar 0 i Excel | Inget cachat värde angivet | Använd put_formula_with_cached_value med det förväntade resultatet |
| Blad hittades inte | Namnet matchar inte | Adress med index eller kontrollera stavningen av set_name |
FAQ
Hur lägger jag till ett andra arbetsblad?
Anropa add_worksheet på arbetsboken, hämta sedan den via arbetsbladsamlingen efter index eller namn.
Kan jag läsa och skriva i samma pass?
Ja — ladda med Workbook::load_xlsx, mutera via get_worksheets_mut och save till samma eller en ny sökväg.
Konverterar typade setterna värden?
Inga konverteringar tillämpas: varje put_value_* setter lagrar sin ursprungliga typ; display_string_value renderar displaytexten vid läsning.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
Workbook.add_worksheet | Lägg till ett blad i arbetsboken |
Worksheet.set_name | Byt namn på ett blad |
Worksheet.get_cells_mut | Ändringsbar cellsamling |
CellMut.put_value_string | Typad strängsättare |
CellMut.put_formula_with_cached_value | Formel plus cachat resultat |
CellStyle | Teckensnitt, fyllning och kantformatering |
StyleFlag | Väljer vilka stilaspekter som tillämpas |
PageSetup | Utskrift och sidlayout |
ListObject | Strukturerade tabeller |