Introduction

La gestion des feuilles de calcul est le cœur de la crate aspose-cells-foss-rust : les objets qui modélisent un classeur, ses feuilles et leurs cellules, ainsi que les opérations qui transforment les données Rust en fichiers XLSX présentables. Cet article parcourt cette surface — de la création de feuilles et de l’écriture de valeurs typées au style, à la mise en page, et aux fonctionnalités structurelles qui rendent les classeurs utilisables : commentaires, hyperliens, tableaux et noms définis.

Tout ce qui est présenté ici fait partie de la crate open-source sous licence MIT. Aucune installation de Microsoft Office n’est requise à aucun moment ; la bibliothèque lit et écrit directement le format de paquet XLSX.

Cette section a été révisée par rapport au modèle source actuel pour le comportement le plus récent du produit et la couverture API.


Fonctionnalités clés

Feuilles de calcul et collections de cellules

Les feuilles de calcul sont gérées via les collections de feuilles du classeur. Les feuilles sont référencées par indice ou par nom, renommées avec set_name, et leurs cellules sont accessibles via get_cells (lecture) ou get_cells_mut (écriture) :

let mut workbook = Workbook::new();
{
    let mut worksheets = workbook.get_worksheets_mut();
    let sheet = worksheets.get(0)?;
    sheet.set_name("Charts")?;
    {
        let mut cells = sheet.get_cells_mut();
        cells.get("A1")?.put_value_string("Month")?;
        cells.get("B1")?.put_value_string("Sales")?;
    }
}

Valeurs typées par nom ou index

Les cellules acceptent des chaînes, des entiers, des booléens, des décimaux et des dates-heures via des setters typés. Les cellules peuvent être adressées au format A1 (get("B3")) ou numériquement (get_by_index(row, column)), ce qui convient aux mises en page générées :

for month in 1..=12_u32 {
    cells
        .get_by_index(month, 0)
        .put_value_string(format!("Month {month}"))?;
    cells
        .get_by_index(month, 1)
        .put_value_i32((month as i32 * 1000) + (month as i32 * 50))?;
}

Formules avec valeurs mises en cache

put_formula_with_cached_value stocke le texte de la formule ainsi que la valeur qu’Excel doit afficher avant son premier recalcul — important lorsque le fichier est utilisé par d’autres outils qui lisent les 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))?;

Mise en forme et mise en page

CellStyle contient Font, Fill et Borders ; StyleFlag sélectionne les aspects de style auxquels une mise à jour s’applique. NumberFormat contrôle le rendu des valeurs, et PageSetup gère PaperSizeType et PageOrientationType pour l’impression. FreezePane et le VisibilityType des lignes/colonnes permettent de garder les grandes feuilles navigables.

Commentaires, hyperliens et noms

Les flux de travail et la navigation des réviseurs sont pris en charge par Comment et CommentCollection, Hyperlink avec HyperlinkCollection, ainsi que DefinedName avec DefinedNameCollection pour les plages nommées.

Tableaux structurés et filtres

ListObject transforme une plage en tableau structuré avec le style TableStyleType et des lignes de TotalsCalculation ; AutoFilter ajoute le filtrage avec les conditions FilterColumn et FilterOperatorType.


Démarrage rapide

Ajoutez la crate à votre Cargo.toml en tant que dépendance git (la crate n’est pas encore publiée sur crates.io) :

# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }

Une session minimale de gestion de tableur — créer, écrire, enregistrer, recharger :

use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;

fn main() -> Result<(), Box<dyn Error>> {
    let mut workbook = Workbook::new();
    {
        let mut worksheets = workbook.get_worksheets_mut();
        let sheet = worksheets.get(0)?;
        let mut cells = sheet.get_cells_mut();

        cells.get("A1")?.put_value_string("Item")?;
        cells.get("B1")?.put_value_string("Quantity")?;
        cells.get("A2")?.put_value_string("Apples")?;
        cells.get("B2")?.put_value_i32(12)?;
    }
    workbook.save("inventory.xlsx")?;

    let loaded = Workbook::load_xlsx("inventory.xlsx")?;
    let sheet = loaded.worksheet("Sheet1")?;
    let cells = sheet.get_cells();
    println!("A2 = {}", cells.get("A2")?.display_string_value());

    Ok(())
}

Formats pris en charge

FormatExtensionLireÉcrire
XLSX.xlsx

Le chargement accepte les drapeaux de réparation LoadOptions (try_repair_package, try_repair_xml) avec des LoadDiagnostics structurés ; l’enregistrement s’effectue via save, save_xlsx ou save_with_format avec l’énumération SaveFormat.


Open Source & Licence

Aspose.Cells FOSS pour Rust est sous licence MIT. Le code source se trouve sur GitHub; l’utilisation commerciale, la modification et la redistribution sont autorisées.


Premiers pas

Ressources associées