Como criar um modelo Cells FOSS em Rust

Como criar um modelo Cells FOSS em Rust

Aspose.Cells FOSS para Rust modela um arquivo de planilha como uma árvore de objetos tipados — planilhas, coleções de células e objetos de regras, como validações. Este guia cria um modelo completo de arquivo de planilha a partir do zero: valores de célula tipados, regras de validação de dados sobre intervalos CellArea, e um arquivo XLSX salvo ao final.

Guia Passo a Passo

Passo 1: Instalar o Pacote

Adicione o crate ao seu Cargo.toml como uma dependência Cargo git:

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

Em seguida, compile o projeto:

cargo build

Etapa 2: Importar as classes necessárias

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

Etapa 3: Criar a pasta de trabalho e os dados das células

Inicie o modelo com um Workbook, nomeie a planilha e escreva valores tipados:

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

Etapa 4: Adicionar uma validação de lista

Regras de validação são associadas a intervalos CellArea por meio da coleção de validação da planilha. Uma validação de lista restringe as células a opções fixas com um menu suspenso dentro da célula:

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

Etapa 5: Adicionar regras de intervalo e personalizadas

OperatorType gera regras de intervalo numérico, e ValidationType::Custom aceita uma fórmula; ValidationAlertType seleciona a gravidade do alerta:

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

Etapa 6: Salvar o modelo

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

O arquivo salvo abre no Excel com as listas suspensas, verificações de intervalo e a regra personalizada ativada.

Problemas Comuns e Soluções

A validação não tem efeito visível no Excel. Ativar os prompts: set_show_input / set_show_error controlar se a dica de entrada e o alerta de erro aparecem.

Uma regra deve cobrir várias faixas separadas. Adicionar mais faixas a uma regra existente com add_area e adicional CellArea::create_cell_area_a1 faixas.

Emprestar erros ao adicionar validações. Mantenha o empréstimo da planilha limitado ao escopo: buscar get_validations dentro do mesmo bloco das mutações e salve a pasta de trabalho após o término do bloco.

As opções da lista são interpretadas erroneamente como uma fórmula. Envolva as opções entre aspas escapadas exatamente como mostrado: set_formula1("\"Open,Closed\"").

Perguntas Frequentes

Quais tipos de validação estão disponíveis?

ValidationType inclui List, Decimal e Custom conforme mostrado aqui — listas suspensas, intervalos numéricos via OperatorType e regras baseadas em fórmula.

As validações podem exibir mensagens personalizadas?

Sim — set_input_title / set_input_message controlam o prompt, e set_error_title / set_error_message controlam o alerta de falha.

O modelo sobrevive a uma ida e volta?

Sim. Salve com Workbook::save e recarregue com Workbook::load_xlsx; as regras de validação são preservadas no arquivo XLSX.

Ver também

 Português