Lavorare con la Gestione dei Fogli di Calcolo
Lavorare con la gestione dei fogli di calcolo
La gestione dei fogli di calcolo copre la superficie quotidiana dell’oggetto del crate: fogli di lavoro, raccolte di celle, valori tipizzati, formule, stile e le funzionalità strutturali che rendono un workbook utilizzabile. Il punto di ingresso è sempre un Workbook.
Worksheets
I fogli sono gestiti tramite le collezioni di fogli di lavoro del workbook — accesso in lettura tramite get_worksheets, mutazione tramite get_worksheets_mut. I fogli sono indicizzati per indice (get(0)) o nome (get_by_name), rinominati con set_name e aggiunti con add_worksheet:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}Accesso alle celle e valori tipizzati
Le celle sono indirizzate in stile A1 o numericamente. get_by_index(row, column) è adatto a layout generati:
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}"))?;
}Leggendo indietro, display_string_value restituisce il testo visualizzato e value_type riporta il tipo memorizzato.
Formule con risultati nella cache
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;Il valore nella cache è ciò che Excel visualizza prima del primo ricalcolo — fornisci il valore in modo che i consumatori del file vedano i risultati corretti immediatamente.
Styling
CellStyle aggrega Font, Fill e Borders; StyleFlag controlla quali aspetti di stile applica un aggiornamento, così la formattazione esistente viene preservata dove non la sovrascrivi. NumberFormat governa il modo in cui i valori vengono visualizzati.
Impostazione pagina e navigazione
PageSetup gestisce il layout di stampa: PaperSizeType, PageOrientationType e i margini. FreezePane mantiene le righe di intestazione visibili durante lo scorrimento, e la visibilità di righe e colonne utilizza VisibilityType.
Struttura: tabelle, nomi, commenti, collegamenti ipertestuali
ListObjecttrasforma un intervallo in una tabella strutturata conTableStyleTypestile eTotalsCalculationrighe totali.DefinedNameeDefinedNameCollectiongestiscono gli intervalli denominati.Comment/CommentCollectioneHyperlink/HyperlinkCollectioncoprono l’annotazione e la navigazione.
Suggerimenti e migliori pratiche
- Mantieni i prestiti mutabili (
get_worksheets_mut,get_cells_mut) all’interno di un blocco di scope; salva la cartella di lavoro dopo la chiusura del blocco. - Usa
get_by_indexper i cicli e i layout generati; nomi A1 per posizioni fisse. - Applica gli stili con un
StyleFlagin modo che la formattazione non correlata rimanga intatta. - Nomina gli intervalli importanti con
DefinedNameinvece di codificare gli indirizzi in modo rigido.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
| Errore di borrow nel salvataggio della cartella di lavoro | Il borrow mutabile del foglio di lavoro è ancora attivo | Chiudi il blocco di ambito prima di chiamare save |
| La formula mostra 0 in Excel | Nessun valore in cache fornito | Usa put_formula_with_cached_value con il risultato previsto |
| Foglio non trovato | Nome non corrispondente | Indirizza per indice o controlla l’ortografia di set_name |
FAQ
Come aggiungo un secondo foglio di lavoro?
Chiama add_worksheet sul workbook, poi recuperalo tramite la collezione di worksheet per indice o nome.
Posso leggere e scrivere nello stesso passaggio?
Sì — carica con Workbook::load_xlsx, modifica tramite get_worksheets_mut e save nello stesso percorso o in uno nuovo.
I setter tipizzati convertono i valori?
Non vengono applicate conversioni: ogni setter put_value_* memorizza il suo tipo nativo; display_string_value rende il testo visualizzato in lettura.
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
Workbook.add_worksheet | Aggiungi un foglio alla cartella di lavoro |
Worksheet.set_name | Rinomina un foglio |
Worksheet.get_cells_mut | Raccolta di celle mutabile |
CellMut.put_value_string | Impostatore di stringa tipizzata |
CellMut.put_formula_with_cached_value | Formula più risultato memorizzato |
CellStyle | Formattazione di carattere, riempimento e bordi |
StyleFlag | Seleziona quali aspetti dello stile si applicano |
PageSetup | Stampa e layout di pagina |
ListObject | Tabelle strutturate |