Comment créer un modèle Cells FOSS en Rust

Comment créer un modèle Cells FOSS en Rust

Aspose.Cells FOSS pour Rust modélise un classeur comme un arbre d’objets typés — feuilles de calcul, collections de cellules et objets de règle tels que les validations. Ce guide construit un modèle complet de classeur à partir de zéro : valeurs de cellules typées, règles de validation de données sur des plages CellArea, et un fichier XLSX enregistré à la fin.

Guide étape par étape

Étape 1: Installer le Package

Ajoutez la crate à votre Cargo.toml en tant que dépendance Cargo git:

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

Ensuite, compilez le projet:

cargo build

Étape 2: Importer les classes requises

use aspose_cells_foss_rust::{
    CellArea, OperatorType, ValidationAlertType, ValidationType, Workbook,
};
use std::error::Error;

Étape 3: Créer le classeur et les données des cellules

Démarrez le modèle avec un Workbook, nommez la feuille et écrivez des valeurs typées:

let mut workbook = Workbook::new();
{
    let mut worksheets = workbook.get_worksheets_mut();
    let sheet = worksheets.get(0)?;
    sheet.set_name("Validation Sheet")?;
    let mut cells = sheet.get_cells_mut();
    cells.get("A1")?.put_value_string("Open")?;
    cells.get("B2")?.put_value_i32(5)?;
    cells.get("G1")?.put_value_string("ABCDE")?;
}

Étape 4: Ajouter une validation de liste

Les règles de validation s’attachent aux plages CellArea via la collection de validation de la feuille. Une validation de liste contraint les cellules à des choix fixes avec une liste déroulante intégrée:

let mut validations = sheet.get_validations();
let list_index = validations.add(CellArea::create_cell_area_a1("A1", "A3")?)?;
let mut list_validation = validations
    .get(list_index)
    .expect("validation should exist");
list_validation.set_type(ValidationType::List);
list_validation.set_formula1("\"Open,Closed\"");
list_validation.set_in_cell_drop_down(true);
list_validation.set_show_input(true);
list_validation.set_input_title("Status");
list_validation.set_input_message("Pick a status");

Étape 5: Ajouter des règles de plage et personnalisées

OperatorType définit les règles de plage numérique, et ValidationType::Custom accepte une formule; ValidationAlertType sélectionne la gravité de l’alerte:

let decimal_index = validations.add(CellArea::create_cell_area_a1("B2", "C3")?)?;
let mut decimal_validation = validations
    .get(decimal_index)
    .expect("validation should exist");
decimal_validation.set_type(ValidationType::Decimal);
decimal_validation.set_operator(OperatorType::Between);
decimal_validation.set_formula1("1.5");
decimal_validation.set_formula2("9.5");
decimal_validation.set_show_error(true);

let custom_index = validations.add(CellArea::create_cell_area_a1("G1", "G1")?)?;
let mut custom_validation = validations
    .get(custom_index)
    .expect("validation should exist");
custom_validation.set_type(ValidationType::Custom);
custom_validation.set_alert_style(ValidationAlertType::Warning);
custom_validation.set_formula1("LEN(G1)<=5");

Étape 6: Enregistrer le modèle

workbook.save("validations-sample.xlsx")?;

Le fichier enregistré s’ouvre dans Excel avec les listes déroulantes, les contrôles de plage et la règle personnalisée activée.

Problèmes courants et solutions

La validation n’a aucun effet visible dans Excel. Activer les invites : set_show_input / set_show_error contrôler si l’indice de saisie et l’alerte d’erreur apparaissent.

Une règle doit couvrir plusieurs plages distinctes. Ajouter d’autres plages à une règle existante avec add_area et supplémentaires CellArea::create_cell_area_a1 plages.

Emprunter les erreurs lors de l’ajout de validations. Conservez le borrow du worksheet scoped : fetch get_validations dans le même bloc que les mutations, et enregistrez le workbook après la fin du bloc.

Les choix de List sont mal interprétés comme une formule. Encapsulez les choix entre des guillemets échappés exactement comme indiqué : set_formula1("\"Open,Closed\"").

Foire aux questions

Quels types de validation sont disponibles?

ValidationType inclut List, Decimal et Custom comme indiqué ici — listes déroulantes, plages numériques via OperatorType, et règles basées sur des formules.

Les validations peuvent-elles afficher des messages personnalisés?

Oui — set_input_title / set_input_message contrôlent l’invite, et set_error_title / set_error_message contrôlent l’alerte d’échec.

Le modèle survit-il à un aller-retour?

Oui. Enregistrez avec Workbook::save et rechargez avec Workbook::load_xlsx; les règles de validation sont conservées dans le fichier XLSX.

Voir aussi

 Français