Hoe een Cells FOSS Model te maken in Rust

Hoe een Cells FOSS Model te maken in Rust

Aspose.Cells FOSS voor Rust modelleert een werkmap als een boom van getypeerde objecten — werkbladen, celcollecties en regelobjecten zoals validaties. Deze gids bouwt een volledig werkmapmodel vanaf nul: getypeerde celwaarden, gegevensvalidatieregels over CellArea bereiken, en een opgeslagen XLSX-bestand aan het einde.

Stapsgewijze handleiding

Stap 1: Installeer het pakket

Voeg de crate toe aan je Cargo.toml als een Cargo git-dependency:

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

Bouw vervolgens het project:

cargo build

Stap 2: Importeer vereiste klassen

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

Stap 3: Maak de Workbook en celgegevens

Start het model met een Workbook, noem het blad, en schrijf getypte waarden:

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

Stap 4: Voeg een lijstvalidatie toe

Validatieregels worden gekoppeld aan CellArea-bereiken via de validatiecollectie van het blad. Een lijstvalidatie beperkt cellen tot vaste keuzes met een dropdown in de cel:

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

Stap 5: Voeg bereik- en aangepaste regels toe

OperatorType bepaalt numerieke bereikregels, en ValidationType::Custom accepteert een formule; ValidationAlertType selecteert de ernst van de waarschuwing:

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

Stap 6: Sla het model op

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

Het opgeslagen bestand wordt geopend in Excel met de vervolgkeuzelijsten, bereikcontroles en aangepaste regel actief.

Veelvoorkomende problemen en oplossingen

De validatie heeft geen zichtbaar effect in Excel. Schakel de prompts in: set_show_input / set_show_error beheert of de invoerhint en foutmelding verschijnen.

Een regel moet meerdere afzonderlijke bereiken omvatten. Voeg meer bereiken toe aan een bestaande regel met add_area en extra CellArea::create_cell_area_a1 bereiken.

Leen fouten tijdens het toevoegen van validaties. Houd de worksheet-lening scoped: fetch get_validations binnen hetzelfde blok als de mutaties, en sla de workbook op nadat het blok eindigt.

Lijstkeuzes worden verkeerd gelezen als een formule. Omwikkel de keuzes met geescaped aanhalingstekens precies zoals weergegeven: set_formula1("\"Open,Closed\"").

Veelgestelde vragen

Welke validatietypen zijn beschikbaar?

ValidationType omvat List, Decimal en Custom zoals hier getoond — lijst-keuzemenu’s, numerieke bereiken via OperatorType, en formule-gebaseerde regels.

Kunnen validaties aangepaste berichten weergeven?

Ja — set_input_title / set_input_message regelen de prompt, en set_error_title / set_error_message regelen de foutmelding.

Overleeft het model een round-trip?

Ja. Sla op met Workbook::save en laad opnieuw met Workbook::load_xlsx; de validatieregels blijven behouden in het XLSX-bestand.

Zie ook

 Nederlands