Rust에서 Cells FOSS 모델 만들기

Rust에서 Cells FOSS 모델 만들기

Aspose.Cells FOSS for Rust는 워크북을 타입이 지정된 객체 트리(워크시트, 셀 컬렉션, 검증과 같은 규칙 객체)로 모델링합니다. 이 가이드는 처음부터 완전한 워크북 모델을 구축합니다: 타입이 지정된 셀 값, CellArea 범위에 대한 데이터 검증 규칙, 그리고 마지막에 저장된 XLSX 파일.

단계별 가이드

1단계: 패키지 설치

Cargo git 의존성으로 Cargo.toml에 크레이트를 추가하세요:

# 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단계: 목록 유효성 검사 추가

유효성 검사 규칙은 시트의 validation 컬렉션을 통해 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 파일에 보존됩니다.

참조

 한국어