Hur man skapar en Cells FOSS-modell i Rust

Hur man skapar en Cells FOSS-modell i Rust

Aspose.Cells FOSS för Rust modellerar en arbetsbok som ett träd av typade objekt — kalkylblad, cellsamlingar och regelobjekt såsom valideringar. Denna guide bygger en komplett arbetsboksmodell från grunden: typade cellvärden, datavalideringsregler över CellArea intervall, och en sparad XLSX-fil i slutet.

Steg-för-steg-guide

Steg 1: Installera paketet

Lägg till paketet i ditt Cargo.toml som ett Cargo-git-beroende:

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

Bygg sedan projektet:

cargo build

Steg 2: Importera nödvändiga klasser

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

Steg 3: Skapa arbetsboken och celldata

Starta modellen med en Workbook, namnge bladet och skriv typade värden:

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

Steg 4: Lägg till en listvalidering

Valideringsregler fästs på CellArea-intervall via bladets valideringssamling. En listvalidering begränsar celler till fasta val med en rullgardinsmeny i cellen:

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

Steg 5: Lägg till intervall- och anpassade regler

OperatorType styr numeriska intervallregler, och ValidationType::Custom accepterar en formel; ValidationAlertType väljer varningsallvarligheten:

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

Steg 6: Spara modellen

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

Den sparade filen öppnas i Excel med rullgardinerna, intervallkontrollerna och den anpassade regeln aktiv.

Vanliga problem och lösningar

Valideringen har ingen synlig effekt i Excel. Aktivera meddelandena: set_show_input / set_show_error styr om inmatningstipset och felmeddelandet visas.

En regel bör omfatta flera separata områden. Lägg till fler områden i en befintlig regel med add_area och ytterligare CellArea::create_cell_area_a1 områden.

Låna fel medan du lägger till valideringar. Behåll arbetsbladets låneomfång: hämta get_validations inom samma block som mutationerna, och spara arbetsboken när blocket avslutas.

Listval missuppfattas som en formel. Omge valen i escapade citattecken exakt som visas: set_formula1("\"Open,Closed\"").

Vanliga frågor

Vilka valideringstyper är tillgängliga?

ValidationType inkluderar List, Decimal och Custom som visas här — list dropdowns, numeriska intervall via OperatorType och formelbaserade regler.

Kan valideringar visa anpassade meddelanden?

Ja — set_input_title / set_input_message styr prompten, och set_error_title / set_error_message styr felmeddelandet.

Överlever modellen en rundresa?

Ja. Spara med Workbook::save och ladda om med Workbook::load_xlsx; valideringsreglerna bevaras i XLSX-filen.

Se även

 Svenska