Cách tạo mô hình Cells FOSS trong Rust
Aspose.Cells FOSS cho Rust mô hình hoá một workbook như một cây các đối tượng có kiểu — worksheets, cell collections, và các đối tượng quy tắc như validations. Hướng dẫn này xây dựng một mô hình workbook hoàn chỉnh từ đầu: giá trị ô có kiểu, các quy tắc xác thực dữ liệu trên các khoảng CellArea, và một tệp XLSX đã lưu ở cuối.
Hướng Dẫn Từng Bước
Bước 1: Cài Đặt Gói
Thêm crate vào Cargo.toml của bạn như một phụ thuộc Cargo git:
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Sau đó biên dịch dự án:
cargo buildBước 2: Nhập các lớp cần thiết
use aspose_cells_foss_rust::{
CellArea, OperatorType, ValidationAlertType, ValidationType, Workbook,
};
use std::error::Error;Bước 3: Tạo Workbook và dữ liệu ô
Bắt đầu mô hình bằng một Workbook, đặt tên cho sheet và ghi các giá trị đã định kiểu:
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")?;
}Bước 4: Thêm xác thực danh sách
Các quy tắc xác thực được gắn vào các phạm vi CellArea thông qua bộ sưu tập xác thực của sheet. Xác thực danh sách hạn chế các ô chỉ chọn các tùy chọn cố định với danh sách thả xuống trong ô:
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");Bước 5: Thêm các quy tắc phạm vi và tùy chỉnh
OperatorType điều khiển các quy tắc phạm vi số, và ValidationType::Custom chấp nhận công thức; ValidationAlertType chọn mức độ nghiêm trọng của cảnh báo:
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");Bước 6: Lưu mô hình
workbook.save("validations-sample.xlsx")?;Tệp đã lưu mở trong Excel với các danh sách thả xuống, kiểm tra phạm vi và quy tắc tùy chỉnh được kích hoạt.
Các vấn đề thường gặp và cách khắc phục
Việc xác thực không có hiệu ứng nhìn thấy trong Excel. Bật các lời nhắc: set_show_input / set_show_error kiểm soát việc gợi ý nhập và cảnh báo lỗi có xuất hiện hay không.
Một quy tắc nên bao phủ nhiều phạm vi riêng biệt. Thêm nhiều phạm vi hơn vào một quy tắc hiện có bằng add_area và bổ sung CellArea::create_cell_area_a1 các phạm vi.
Mượn lỗi khi thêm các xác thực. Giữ phạm vi vay worksheet: fetch get_validations trong cùng một khối với các mutation, và lưu workbook sau khi khối kết thúc.
Các lựa chọn danh sách bị đọc sai thành công thức. Bao quanh các lựa chọn bằng dấu ngoặc kép đã escape chính xác như sau: set_formula1("\"Open,Closed\"").
Câu hỏi thường gặp
Các loại xác thực nào có sẵn?
ValidationType bao gồm List, Decimal, và Custom như được hiển thị ở đây — danh sách thả xuống, phạm vi số qua OperatorType, và các quy tắc dựa trên công thức.
Xác thực có thể hiển thị tin nhắn tùy chỉnh không?
Có — set_input_title / set_input_message kiểm soát lời nhắc, và set_error_title / set_error_message kiểm soát cảnh báo lỗi.
Mô hình có tồn tại qua vòng quay không?
Có. Lưu bằng Workbook::save và tải lại bằng Workbook::load_xlsx; các quy tắc xác thực được giữ nguyên trong tệp XLSX.