Aspose.Cells FOSS for Rust est une bibliothèque open-source pour travailler avec les feuilles de calcul Excel XLSX dans les applications Rust. Elle offre aux programmeurs systèmes une méthode native et sûre en mémoire pour créer des classeurs à partir de zéro, charger des fichiers XLSX existants, modifier leur contenu et enregistrer le résultat — sans Microsoft Office, automatisation COM, ni aucun runtime externe.
Le crate modélise l’arbre complet d’objets de la feuille de calcul : Workbook, Worksheet et les collections de cellules avec des définisseurs de valeurs typées (put_value_string, put_value_i32, put_value_bool, put_value_decimal), des formules avec valeurs en cache via put_formula_with_cached_value, des graphiques (Chart, ChartType), le formatage conditionnel (FormatCondition), la validation des données (Validation), les filtres automatiques (AutoFilter), le style des cellules (CellStyle, Font, Fill, Borders), la configuration de la page (PageSetup), les images, les formes, les commentaires, les hyperliens, les tableaux (ListObject), les sparklines (SparklineGroup), les noms définis, ainsi que la protection du classeur/feuille.
Aspose.Cells FOSS for Rust est sous licence MIT et cible l’édition Rust 2021. Il s’installe comme une dépendance Cargo standard depuis le dépôt GitHub — consultez le guide d’installation pour l’entrée exacte du Cargo.toml. Les erreurs sont exposées via les types Result conventionnels (CellsError), et le chargement XLSX propose des options de réparation (LoadOptions) avec des diagnostics structurés (LoadDiagnostics). Pour la famille de produits d’entreprise, voir Aspose.Cells — Enterprise Product Family.
Workbook::new ou chargez des fichiers existants avec Workbook::load_xlsxadd_worksheet, worksheet et les collections de feuilles mutablessave, save_xlsx ou save_with_format explicite du formatput_value_string, put_value_i32, put_value_bool, put_value_decimal, put_value_date_timeput_formula_with_cached_valuedisplay_string_value et value_typeget, get_by_index)CellStyle avec Font, Fill et BordersStyleFlagNumberFormatPageSetup (taille du papier, orientation, marges)FreezePane ; contrôler la visibilité des lignes/colonnesChartType sur la collection de graphiques d’une feuilleChart, ChartCollection)Picture et des formes de dessin avec ShapeSparklineGroupFormatConditionValidation avec OperatorTypeAutoFilter; tables structurées via ListObjectDefinedName; protection via WorkbookProtection et WorksheetProtectionLoadOptions et LoadDiagnosticsCréer un classeur, écrire des valeurs typées et une formule avec un résultat mis en cache, l’enregistrer au format XLSX et le recharger :
use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
// Create a new workbook (starts with one sheet, "Sheet1").
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("Hello")?;
cells.get("B1")?.put_value_i32(123)?;
cells.get("C1")?.put_value_bool(true)?;
cells.get("D1")?.put_value_decimal(12.5)?;
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
}
workbook.save("hello.xlsx")?;
// Load it back.
let loaded = Workbook::load_xlsx("hello.xlsx")?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("A1 = {}", cells.get("A1")?.display_string_value());
Ok(())
}
Ouvrez les classeurs de manière défensive avec les drapeaux de réparation LoadOptions et inspectez les diagnostics de chargement structurés :
let options = LoadOptions {
try_repair_package: true,
try_repair_xml: true,
..LoadOptions::default()
};
let loaded = Workbook::load_xlsx_with_options(&valid_path, &options)?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("Saved: {}", valid_path.display());
println!(
"Loaded workbook with {} worksheet(s) and {} diagnostic issue(s).",
loaded.get_worksheets().count(),
loaded.get_load_diagnostics().issues().len()
);
Remplissez une plage de données, puis ancrez les graphiques en colonnes et en lignes dessus :
let mut charts = sheet.get_charts();
charts.add(
ChartType::Column,
"Charts!$B$1:$B$13".to_string(),
0,
4,
18,
8,
)?;
charts.add(
ChartType::Line,
"Charts!$C$1:$C$13".to_string(),
0,
9,
18,
13,
)?;
Le crate est publié sous la licence MIT ; le texte complet est fourni dans le dépôt sous le nom LICENSE.txt.
Oui. La MIT License autorise l’utilisation commerciale, la modification et la redistribution, à condition que l’avis de droit d’auteur et de licence soit préservé.
Ajoutez aspose-cells-foss-rust à votre Cargo.toml en tant que dépendance git depuis le dépôt GitHub.
XLSX, avec lecture et écriture complètes en aller-retour via Workbook::load_xlsx et save. Les autres formats de tableur ne sont pas pris en charge dans la version actuelle.
Non. La bibliothèque lit et écrit le format de paquet XLSX directement — aucune installation d’Office, aucune automatisation COM, ou aucun runtime externe n’est impliqué.