วิธีสร้างโมเดล Cells FOSS ใน Rust

วิธีสร้างโมเดล Cells FOSS ใน Rust

Aspose.Cells FOSS สำหรับ Rust โมเดลเวิร์กบุ๊กเป็นต้นไม้ของอ็อบเจกต์ที่มีประเภท — แผ่นงาน, คอลเลกชันเซลล์, และอ็อบเจกต์กฎต่าง ๆ เช่น การตรวจสอบความถูกต้อง คู่มือฉบับนี้สร้างโมเดลเวิร์กบุ๊กเต็มรูปแบบตั้งแต่ต้น: ค่าของเซลล์ที่มีประเภท, กฎการตรวจสอบความถูกต้องของข้อมูลบนช่วง CellArea, และไฟล์ XLSX ที่บันทึกไว้ในตอนท้าย.

คู่มือทีละขั้นตอน

ขั้นตอนที่ 1: ติดตั้งแพ็กเกจ

เพิ่ม crate ไปยัง Cargo.toml ของคุณในรูปแบบ dependency ของ Cargo git:

# 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 และข้อมูลเซลล์

เริ่มโมเดลด้วย 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 ช่วง.

ยืมข้อผิดพลาดขณะเพิ่มการตรวจสอบความถูกต้อง. ให้การยืมแผ่นงานอยู่ในขอบเขต: ดึงข้อมูล 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.

ดูเพิ่มเติม

 ภาษาไทย