Come creare un modello Cells FOSS in Rust

Come creare un modello Cells FOSS in Rust

Aspose.Cells FOSS per Rust modella una cartella di lavoro come un albero di oggetti tipizzati — fogli di lavoro, raccolte di celle e oggetti regola come le convalide. Questa guida costruisce un modello completo di cartella di lavoro da zero: valori di cella tipizzati, regole di convalida dei dati su intervalli CellArea, e un file XLSX salvato alla fine.

Guida passo-passo

Passo 1: Installa il pacchetto

Aggiungi il crate al tuo Cargo.toml come dipendenza git di Cargo:

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

Quindi compila il progetto:

cargo build

Passo 2: Importa le classi necessarie

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

Passo 3: Crea la cartella di lavoro e i dati delle celle

Avvia il modello con un Workbook, assegna un nome al foglio e scrivi valori tipizzati:

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")?;
}

Passo 4: Aggiungi una convalida a elenco

Le regole di convalida si collegano a intervalli CellArea tramite la collezione di convalide del foglio. Una convalida a elenco limita le celle a scelte fisse con un menu a discesa nella cella:

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");

Passo 5: Aggiungi regole di intervallo e personalizzate

OperatorType gestisce le regole di intervallo numerico, e ValidationType::Custom accetta una formula; ValidationAlertType seleziona la gravità dell’avviso:

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");

Passo 6: Salva il modello

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

Il file salvato si apre in Excel con i menu a discesa, i controlli di intervallo e la regola personalizzata attiva.

Problemi comuni e soluzioni

La convalida non ha alcun effetto visibile in Excel. Abilita i prompt: set_show_input / set_show_error controlla se il suggerimento di input e l’avviso di errore vengono visualizzati.

Una regola dovrebbe coprire diversi intervalli separati. Aggiungi più intervalli a una regola esistente con add_area e aggiuntivi CellArea::create_cell_area_a1 intervalli.

Eredita errori durante l’aggiunta di convalide. Mantieni il prestito del foglio di lavoro limitato: fetch get_validations all’interno dello stesso blocco delle mutazioni, e salva il workbook dopo la fine del blocco.

Le scelte della lista vengono interpretate erroneamente come una formula. Racchiudi le scelte tra virgolette escape esattamente come mostrato: set_formula1("\"Open,Closed\"").

Domande frequenti

Quali tipi di convalida sono disponibili?

ValidationType include List, Decimal e Custom come mostrato qui — elenchi a discesa, intervalli numerici tramite OperatorType e regole basate su formule.

Le convalide possono mostrare messaggi personalizzati?

Sì — set_input_title / set_input_message controllano il prompt, e set_error_title / set_error_message controllano l’avviso di errore.

Il modello sopravvive a un round-trip?

Sì. Salva con Workbook::save e ricarica con Workbook::load_xlsx; le regole di convalida sono conservate nel file XLSX.

Vedi anche

 Italiano