Як створити модель Cells FOSS у Rust

Як створити модель Cells FOSS у Rust

Aspose.Cells FOSS для Rust моделює робочий зошит як дерево типізованих об’єктів — листи, колекції клітинок та об’єкти правил, такі як валідації. У цьому посібнику створюється повна модель робочого зошита з нуля: типізовані значення клітинок, правила валідації даних над діапазонами CellArea, і в кінці збережений файл XLSX.

Покроковий посібник

Крок 1: Встановити пакет

Додайте crate у ваш Cargo.toml як git-залежність Cargo:

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

Потім збудуйте проєкт:

cargo build

Крок 2: Імпорт необхідних класів

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

Крок 3: Створення робочої книги та даних клітинок

Запустіть модель з Workbook, назвіть лист і запишіть типізовані значення:

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

Крок 4: Додати перевірку списком

Правила перевірки прикріплюються до діапазонів CellArea через колекцію перевірок листа. Перевірка списком обмежує клітинки фіксованими варіантами за допомогою випадаючого списку в клітинці:

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

Крок 5: Додати діапазон та користувацькі правила

OperatorType визначає правила числових діапазонів, а ValidationType::Custom приймає формулу; ValidationAlertType вибирає рівень серйозності сповіщення:

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

Крок 6: Зберегти модель

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

Збережений файл відкривається в Excel з випадаючими списками, перевірками діапазонів і активним користувацьким правилом.

Поширені проблеми та виправлення

Перевірка не має видимого ефекту в Excel. Увімкнути підказки: set_show_input / set_show_error контролюйте, чи з’являються підказка вводу та сповіщення про помилку.

Правило має охоплювати кілька окремих діапазонів. Додайте більше діапазонів до існуючого правила за допомогою add_area і додаткових CellArea::create_cell_area_a1 діапазонів.

Запозичуйте помилки під час додавання перевірок. Тримайте запозичення листа у межах області: fetch get_validations всередині того самого блоку, що й мутації, і збережіть робочий зошит після завершення блоку.

Вибірки списку сприймаються як формула. Обгорніть вибірки в екрановані лапки точно так, як показано: set_formula1("\"Open,Closed\"").

Поширені запитання

Які типи валідації доступні?

ValidationType включає List, Decimal і Custom, як показано тут — випадаючі списки, числові діапазони за допомогою OperatorType та правила на основі формул.

Чи можуть валідації показувати власні повідомлення?

Так — set_input_title / set_input_message керують підказкою, а set_error_title / set_error_message керують сповіщенням про помилку.

Чи модель зберігається після зворотного проходу?

Так. Збережіть за допомогою Workbook::save і завантажте знову за допомогою Workbook::load_xlsx; правила валідації зберігаються у файлі XLSX.

Дивіться також

 Українська