Cum să creaţi un model Cells FOSS în Rust
Aspose.Cells FOSS pentru Rust modelează un registru de lucru ca un arbore de obiecte tipizate — foi de calcul, colecții de celule și obiecte de regulă cum ar fi validările. Acest ghid construiește un model complet de registru de lucru de la zero: valori de celule tipizate, reguli de validare a datelor peste intervale CellArea, și un fișier XLSX salvat la final.
Ghid pas cu pas
Pasul 1: Instalează pachetul
Adaugă crate-ul în Cargo.toml ca o dependență Cargo git:
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Apoi compilează proiectul:
cargo buildPasul 2: Importă clasele necesare
use aspose_cells_foss_rust::{
CellArea, OperatorType, ValidationAlertType, ValidationType, Workbook,
};
use std::error::Error;Pasul 3: Creează Workbook-ul și datele celulei
Pornește modelul cu un Workbook, denumește foaia și scrie valori tipizate:
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")?;
}Pasul 4: Adaugă o validare de tip listă
Regulile de validare se atașează la intervalele CellArea prin colecția de validare a foii. O validare de tip listă restricționează celulele la alegeri fixe cu un meniu derulant în celulă:
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");Pasul 5: Adaugă reguli de interval și personalizate
OperatorType controlează regulile de interval numeric, iar ValidationType::Custom acceptă o formulă; ValidationAlertType selectează severitatea alertei:
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");Pasul 6: Salvează modelul
workbook.save("validations-sample.xlsx")?;Fișierul salvat se deschide în Excel cu listele derulante, verificările de interval și regula personalizată activă.
Probleme comune și soluții
Validarea nu are niciun efect vizibil în Excel. Activați solicitările: set_show_input / set_show_error controlează dacă indiciul de intrare și alerta de eroare apar.
O regulă ar trebui să acopere mai multe intervale separate. Adăugați mai multe intervale la o regulă existentă cu add_area și suplimentare CellArea::create_cell_area_a1 intervale.
Împrumutați erori în timp ce adăugați validări. Păstrează împrumutul foii de lucru limitat la domeniu: fetch get_validations în același bloc cu mutațiile și salvează caietul de lucru după ce blocul se încheie.
Opțiunile din listă sunt interpretate greșit ca o formulă. Înfășoară opțiunile între ghilimele escape exact așa cum este afișat: set_formula1("\"Open,Closed\"").
Întrebări frecvente
Ce tipuri de validare sunt disponibile?
ValidationType include List, Decimal și Custom așa cum se arată aici — liste derulante, intervale numerice prin OperatorType și reguli bazate pe formulă.
Pot validările să afișeze mesaje personalizate?
Da — set_input_title / set_input_message controlează promptul, iar set_error_title / set_error_message controlează alerta de eșec.
Modelul supraviețuiește unei călătorii dus-întors?
Da. Salvați cu Workbook::save și reîncărcați cu Workbook::load_xlsx; regulile de validare sunt păstrate în fișierul XLSX.