Jak vytvořit model Cells FOSS v Rustu

Jak vytvořit model Cells FOSS v Rustu

Aspose.Cells FOSS pro Rust modeluje sešit jako strom typovaných objektů — listy, kolekce buněk a objekty pravidel, jako jsou validace. Tento průvodce vytvoří kompletní model sešitu od nuly: typované hodnoty buněk, pravidla datové validace nad rozsahy CellArea a na konci uložený soubor XLSX.

Průvodce krok za krokem

Krok 1: Nainstalujte balíček

Přidejte crate do vašeho Cargo.toml jako Cargo git závislost:

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

Poté sestavte projekt:

cargo build

Krok 2: Naimportujte požadované třídy

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

Krok 3: Vytvořte sešit a data buněk

Spusťte model s Workbook, pojmenujte list a zapište typované hodnoty:

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

Krok 4: Přidejte ověření seznamu

Pravidla ověření se připojují k rozsahům CellArea prostřednictvím kolekce ověření listu. Ověření seznamu omezuje buňky na pevně dané možnosti s rozbalovacím seznamem uvnitř buňky:

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

Krok 5: Přidejte pravidla rozsahu a vlastní pravidla

OperatorType řídí číselná pravidla rozsahu a ValidationType::Custom přijímá vzorec; ValidationAlertType vybírá závažnost upozornění:

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

Krok 6: Uložte model

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

Uložený soubor se otevře v Excelu s rozbalovacími seznamy, kontrolami rozsahu a aktivním vlastním pravidlem.

Časté problémy a opravy

Validace nemá v Excelu žádný viditelný efekt. Povolit výzvy: set_show_input / set_show_error ovládá, zda se zobrazí nápověda vstupu a chybové upozornění.

Pravidlo by mělo zahrnovat několik samostatných oblastí. Přidejte další oblasti k existujícímu pravidlu pomocí add_area a další CellArea::create_cell_area_a1 oblasti.

Převzít chyby při přidávání validací. Udržujte půjčku listu v rámci rozsahu: fetch get_validations uvnitř stejného bloku jako mutace a uložte workbook po ukončení bloku.

Volby seznamu jsou špatně přečteny jako vzorec. Zabalte volby do escapovaných uvozovek přesně tak, jak je uvedeno: set_formula1("\"Open,Closed\"").

Často kladené otázky

Jaké typy validace jsou k dispozici?

ValidationType zahrnuje List, Decimal a Custom, jak je zde ukázáno — rozbalovací seznamy, číselné rozsahy prostřednictvím OperatorType a pravidla založená na vzorcích.

Mohou validace zobrazovat vlastní zprávy?

Ano — set_input_title / set_input_message řídí výzvu a set_error_title / set_error_message řídí upozornění na selhání.

Přežije model při průchodu tam a zpět?

Ano. Uložte pomocí Workbook::save a načtěte pomocí Workbook::load_xlsx; pravidla validace jsou zachována v souboru XLSX.

Viz také:

 Čeština