Cara Membuat Model Cells FOSS di Rust

Cara Membuat Model Cells FOSS di Rust

Aspose.Cells FOSS untuk Rust memodelkan workbook sebagai pohon objek bertipe — worksheets, koleksi sel, dan objek aturan seperti validasi. Panduan ini membangun model workbook lengkap dari awal: nilai sel bertipe, aturan validasi data atas rentang CellArea, dan file XLSX yang disimpan di akhir.

Panduan Langkah-demi-Langkah

Langkah 1: Instal Paket

Tambahkan crate ke Cargo.toml Anda sebagai dependensi Cargo git:

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

Kemudian bangun proyek:

cargo build

Langkah 2: Impor Kelas yang Diperlukan

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

Langkah 3: Buat Workbook dan Data Sel

Mulai model dengan Workbook, beri nama sheet, dan tulis nilai yang bertipe:

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

Langkah 4: Tambahkan Validasi Daftar

Aturan validasi melekat pada rentang CellArea melalui koleksi validasi sheet. Validasi daftar membatasi sel ke pilihan tetap dengan dropdown dalam sel:

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

Langkah 5: Tambahkan Aturan Rentang dan Kustom

OperatorType mengatur aturan rentang numerik, dan ValidationType::Custom menerima formula; ValidationAlertType memilih tingkat keparahan peringatan:

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

Langkah 6: Simpan Model

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

File yang disimpan terbuka di Excel dengan dropdown, pemeriksaan rentang, dan aturan khusus aktif.

Masalah Umum dan Solusi

Validasi tidak memberikan efek yang terlihat di Excel. Aktifkan prompt: set_show_input / set_show_error mengontrol apakah petunjuk input dan peringatan kesalahan muncul.

Sebuah aturan harus mencakup beberapa rentang terpisah. Tambahkan lebih banyak rentang ke aturan yang ada dengan add_area dan tambahan CellArea::create_cell_area_a1 rentang.

Pinjam kesalahan saat menambahkan validasi. Pertahankan peminjaman worksheet dalam ruang lingkup: fetch get_validations di dalam blok yang sama dengan mutasi, dan simpan workbook setelah blok berakhir.

Pilihan daftar dibaca sebagai rumus. Bungkus pilihan dalam tanda kutip yang di-escape persis seperti yang ditunjukkan: set_formula1("\"Open,Closed\"").

Pertanyaan yang Sering Diajukan

Jenis validasi apa yang tersedia?

ValidationType mencakup List, Decimal, dan Custom seperti yang ditunjukkan di sini — daftar dropdown, rentang numerik melalui OperatorType, dan aturan berbasis rumus.

Apakah validasi dapat menampilkan pesan khusus?

Ya — set_input_title / set_input_message mengontrol prompt, dan set_error_title / set_error_message mengontrol peringatan kegagalan.

Apakah model bertahan dalam perjalanan bolak-balik?

Ya. Simpan dengan Workbook::save dan muat ulang dengan Workbook::load_xlsx; aturan validasi dipertahankan dalam file XLSX.

Lihat Juga

 Bahasa Indonesia