Travailler avec la gestion des feuilles de calcul
Travailler avec la gestion des feuilles de calcul
La gestion des feuilles de calcul couvre la surface d’objet quotidienne de la crate: les feuilles de calcul, les collections de cellules, les valeurs typées, les formules, le style, et les fonctionnalités structurelles qui rendent un classeur utilisable. Le point d’entrée est toujours un Workbook.
Worksheets
Les feuilles sont gérées via les collections de feuilles de calcul du classeur— accès en lecture via get_worksheets, mutation via get_worksheets_mut. Les feuilles sont adressées par indice (get(0)) ou par nom (get_by_name), renommées avec set_name, et ajoutées avec add_worksheet:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}Accès aux cellules et valeurs typées
Les cellules sont adressées au format A1 ou numériquement. get_by_index(row, column) convient aux mises en page générées:
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}"))?;
}En lecture, display_string_value renvoie le texte affiché et value_type indique le type stocké.
Formules avec résultats mis en cache
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;La valeur mise en cache est ce qu’Excel affiche avant son premier recalcul — fournissez-la afin que les utilisateurs du fichier voient les résultats corrects immédiatement.
Styling
CellStyle agrège Font, Fill et Borders ; StyleFlag contrôle quels aspects du style une mise à jour applique, de sorte que le formatage existant est préservé lorsqu’il n’est pas remplacé. NumberFormat détermine la façon dont les valeurs sont rendues.
Mise en page et navigation
PageSetup gère la mise en page d’impression: PaperSizeType, PageOrientationType et les marges. FreezePane maintient les lignes d’en-tête visibles lors du défilement, et la visibilité des lignes et colonnes utilise VisibilityType.
Structure: Tableaux, Noms, Commentaires, Hyperliens
ListObjecttransforme une plage en tableau structuré avec le styleTableStyleTypeet les lignes de totauxTotalsCalculation.DefinedNameetDefinedNameCollectiongèrent les plages nommées.Comment/CommentCollectionetHyperlink/HyperlinkCollectioncouvrent l’annotation et la navigation.
Conseils et bonnes pratiques
- Gardez les emprunts mutables (
get_worksheets_mut,get_cells_mut) à l’intérieur d’un bloc de portée; enregistrez le classeur après la fermeture du bloc. - Utilisez
get_by_indexpour les boucles et les mises en page générées; les noms A1 pour les positions fixes. - Appliquez des styles avec un
StyleFlagafin que le formatage non concerné reste intact. - Nommez les plages importantes avec
DefinedNameau lieu de coder en dur les adresses.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
| Erreur d’emprunt lors de l’enregistrement du classeur | Emprunt mutable de la feuille de calcul toujours actif | Fermez le bloc de portée avant d’appeler save |
| La formule affiche 0 dans Excel | Aucune valeur mise en cache fournie | Utilisez put_formula_with_cached_value avec le résultat attendu |
| Feuille introuvable | Nom non correspondant | Adresse par index ou vérifiez l’orthographe de set_name |
FAQ
Comment ajouter une deuxième feuille de calcul?
Appelez add_worksheet sur le classeur, puis récupérez-le via la collection de feuilles de calcul par index ou par nom.
Puis-je lire et écrire en une seule passe?
Oui — chargez avec Workbook::load_xlsx, modifiez via get_worksheets_mut, et save vers le même chemin ou un nouveau.
Les setters typés convertissent-ils les valeurs?
Aucune conversion n’est appliquée: chaque setter put_value_* stocke son type natif; display_string_value rend le texte affiché lors de la lecture.
API Reference Résumé
| Classe/Méthode | Description |
|---|---|
Workbook.add_worksheet | Ajoutez une feuille au classeur |
Worksheet.set_name | Renommer une feuille |
Worksheet.get_cells_mut | Collection mutable de cellules |
CellMut.put_value_string | Définisseur de chaîne typée |
CellMut.put_formula_with_cached_value | Formule plus résultat mis en cache |
CellStyle | Mise en forme de police, de remplissage et de bordure |
StyleFlag | Sélectionne les aspects de style à appliquer |
PageSetup | Impression et mise en page |
ListObject | Tableaux structurés |