Lucrul cu gestionarea foilor de calcul
Lucrul cu gestionarea foilor de calcul
Gestionarea foilor de calcul acoperă suprafața de obiecte de zi cu zi a crate-ului: foi de lucru, colecții de celule, valori tipizate, formule, stiluri și caracteristicile structurale care fac un workbook utilizabil. Punctul de intrare este întotdeauna un Workbook.
Worksheets
Foi sunt gestionate prin colecțiile de foi de lucru ale workbook-ului — acces de citire prin get_worksheets, modificare prin get_worksheets_mut. Foi sunt adresate prin index (get(0)) sau nume (get_by_name), redenumite cu set_name și adăugate cu add_worksheet:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}Acces la celule și valori tipizate
Celulele sunt adresate în stil A1 sau numeric. get_by_index(row, column) se potrivește cu aranjamentele generate:
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}"))?;
}La citire, display_string_value returnează textul afișat și value_type raportează tipul stocat.
Formule cu rezultate în cache
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;Valoarea în cache este cea pe care Excel o afișează înainte de prima recalculare — furnizați-o pentru ca utilizatorii fișierului să vadă rezultatele corecte imediat.
Styling
CellStyle agregă Font, Fill și Borders; StyleFlag controlează ce aspecte de stil se aplică la o actualizare, astfel încât formatarea existentă este păstrată acolo unde nu o suprascrieți. NumberFormat guvernează modul în care valorile sunt redate.
Configurare pagină și navigare
PageSetup gestionează aspectul tipăririi: PaperSizeType, PageOrientationType și margini. FreezePane menține rândurile de antet vizibile în timpul derulării, iar vizibilitatea rândurilor și coloanelor folosește VisibilityType.
Structură: Tabele, Nume, Comentarii, Legături hipertext
ListObjecttransformă un interval într-un tabel structurat cu stilTableStyleTypeși rânduri de totaluriTotalsCalculation.DefinedNameșiDefinedNameCollectiongestionează intervale numite.Comment/CommentCollectionșiHyperlink/HyperlinkCollectionacoperă adnotarea și navigarea.
Sfaturi și cele mai bune practici
- Păstrează împrumuturile mutabile (
get_worksheets_mut,get_cells_mut) în interiorul unui bloc de scop; salvează registrul de lucru după închiderea blocului. - Folosește
get_by_indexpentru bucle și aranjamente generate; nume A1 pentru poziții fixe. - Aplică stiluri cu un
StyleFlagastfel încât formatarea necorespunzătoare să rămână neatinsă. - Denumește intervalele importante cu
DefinedNameîn loc să codifici manual adresele.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
| Eroare de împrumut la salvarea registrului | Împrumutul mutabil al foii de calcul este încă activ | Închide blocul de scop înainte de a apela save |
| Formula afișează 0 în Excel | Nicio valoare în cache furnizată | Utilizați put_formula_with_cached_value cu rezultatul așteptat |
| Foaia nu a fost găsită | Numele nu se potrivește | Adresați prin index sau verificați ortografia set_name |
FAQ
Cum pot adăuga o a doua foaie de lucru?
Apelă add_worksheet pe registrul de lucru, apoi recupereaz-o prin colecția de foi de lucru după index sau nume.
Pot citi și scrie în aceeași trecere?
Da — încarcă cu Workbook::load_xlsx, modifică prin get_worksheets_mut și save către aceeași sau o nouă cale.
Setatoarele tipizate convertesc valorile?
Nu se aplică nicio conversie: fiecare setator put_value_* stochează tipul său nativ; display_string_value redă textul afișat la citire.
API Reference Rezumat
| Clasă/Metodă | Descriere: |
|---|---|
Workbook.add_worksheet | Adăugați o foaie în registrul de lucru |
Worksheet.set_name | Redenumește o foaie |
Worksheet.get_cells_mut | Colecție de celule mutabilă |
CellMut.put_value_string | Setter de șir tipizat |
CellMut.put_formula_with_cached_value | Formula plus rezultat în cache |
CellStyle | Formatare font, umplere și bordură |
StyleFlag | Selectează ce aspecte de stil se aplică |
PageSetup | Imprimare și aspect pagină |
ListObject | Tabele structurate |