Cum să creaţi un model Cells FOSS în Rust

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 build

Pasul 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.

Vezi și:

 Română