บทนำ

Aspose.Cells FOSS สำหรับ Rust นำครอบครัว Aspose.Cells FOSS มาสู่ระบบนิเวศของ Rust. แครต aspose-cells-foss-rust ทำให้แอปพลิเคชัน Rust สามารถสร้างไฟล์ Excel XLSX จากศูนย์, โหลดไฟล์ที่มีอยู่, แก้ไขเนื้อหา, และบันทึกผลลัพธ์ — โดยไม่ต้องติดตั้ง Microsoft Office, ไม่ต้องใช้ COM automation, หรือ runtime ภายนอก.

แครตนี้ใช้ใบอนุญาต MIT และรองรับ Rust edition 2021. มันปฏิบัติตามแนวปฏิบัติที่นักพัฒนา Rust คาดหวัง: ตัวสร้างเช่น Workbook::new, การจัดการข้อผิดพลาดแบบ Result ผ่าน CellsError, และตัวเข้าถึงที่แก้ไขได้อย่างชัดเจนเช่น get_worksheets_mut และ get_cells_mut ที่ทำให้กฎการยืมชัดเจน หากคุณสร้างบริการ backend, เครื่องมือ CLI, หรือ pipeline ข้อมูลที่ต้องสร้างหรืออ่านสเปรดชีต ไลบรารีนี้ให้วิธีเนทีฟในการทำเช่นนั้น.

ส่วนนี้ได้รับการตรวจสอบตามโมเดลซอร์สปัจจุบันสำหรับพฤติกรรมผลิตภัณฑ์ล่าสุดและการครอบคลุม API.

Aspose.Cells FOSS มีให้ใช้งานแล้วสำหรับ .NET, C++, Java, Python, และ TypeScript; crate Rust เข้าร่วมตระกูลพร้อมโฟกัสเดียวกัน: การสนับสนุน XLSX ที่ตรงไปตรงมาและตรวจสอบได้ภายใต้ใบอนุญาตแบบเปิด.


สิ่งที่รวมอยู่

สมุดงาน, แผ่นงาน, และค่าเซลล์แบบมีประเภท

Workbook เริ่มต้นด้วยชีตงานหนึ่งแผ่นและขยายโดยใช้ add_worksheet. เซลล์รับค่าที่มีประเภท — สตริง, จำนวนเต็ม, บูลีน, ทศนิยม, และวันเวลา — ผ่านตัวตั้งค่าเฉพาะ ดังนั้นจึงไม่จำเป็นต้องแปลงเป็นสตริง:

let mut workbook = Workbook::new();
{
    let mut worksheets = workbook.get_worksheets_mut();
    let sheet = worksheets.get(0)?;
    let mut cells = sheet.get_cells_mut();

    cells.get("A1")?.put_value_string("Hello")?;
    cells.get("B1")?.put_value_i32(123)?;
    cells.get("C1")?.put_value_bool(true)?;
    cells.get("D1")?.put_value_decimal(12.5)?;
}
workbook.save("hello.xlsx")?;

สูตรพร้อมผลลัพธ์ที่แคชไว้

สูตรถูกเขียนพร้อมกับค่าที่แคชไว้ ทำให้ไฟล์ที่บันทึกเปิดใน Excel แล้วได้ผลลัพธ์ที่ถูกต้องทันที — ไม่ต้องทำการคำนวณใหม่:

cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
    .put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;

แผนภูมิที่ยึดกับช่วงข้อมูล

ประเภทแผนภูมิคอลัมน์, เส้น, และอื่น ๆ จาก enum ChartType สามารถยึดกับช่วงเซลล์บนชีตงานได้, และเรขาคณิตของแผนภูมิสามารถอ่านกลับจากไฟล์ที่โหลดได้:

let mut charts = sheet.get_charts();
charts.add(
    ChartType::Column,
    "Charts!$B$1:$B$13".to_string(),
    0,
    4,
    18,
    8,
)?;

การจัดรูปแบบ, การตั้งค่าหน้ากระดาษ, และโครงสร้าง

การจัดรูปแบบเซลล์ไหลผ่าน CellStyle พร้อมกับ Font, Fill, และ Borders, ซึ่งสามารถใช้เลือกได้ด้วย StyleFlag. PageSetup ควบคุมขนาดกระดาษและแนวตั้งของการพิมพ์, FreezePane ทำให้แถวหัวตารางมองเห็นได้, และตารางที่มีโครงสร้างมาจาก ListObject พร้อมกับ TableStyleType.

การตรวจสอบ, การจัดรูปแบบเชิงเงื่อนไข, และตัวกรอง

ฟีเจอร์คุณภาพข้อมูลเป็นส่วนหนึ่งของพื้นผิวหลัก: กฎ Validation พร้อม OperatorType, การจัดรูปแบบตามเงื่อนไขผ่าน FormatCondition, ตัวกรองอัตโนมัติผ่าน AutoFilter, ชื่อที่กำหนดผ่าน DefinedName, และการป้องกันเวิร์กบุ๊กหรือชีตงานผ่าน WorkbookProtection และ WorksheetProtection.

การโหลดแบบป้องกันพร้อมการวินิจฉัย

ไฟล์ XLSX ในโลกจริงไม่ได้มักจะสมบูรณ์แบบเสมอไป. LoadOptions เปิดเผยแฟล็กการซ่อมแซม, และ LoadDiagnostics รายงานสิ่งที่ตัวโหลดพบ:

let options = LoadOptions {
    try_repair_package: true,
    try_repair_xml: true,
    ..LoadOptions::default()
};

let loaded = Workbook::load_xlsx_with_options(&valid_path, &options)?;
println!(
    "Loaded workbook with {} worksheet(s) and {} diagnostic issue(s).",
    loaded.get_worksheets().count(),
    loaded.get_load_diagnostics().issues().len()
);

เริ่มต้นอย่างรวดเร็ว

เพิ่มแครตลงใน Cargo.toml ของคุณเป็น dependency แบบ git (แครตนี้ยังไม่ได้เผยแพร่บน crates.io):

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

จากนั้นสร้าง, บันทึก, และโหลดซ้ำสมุดงานแรกของคุณ:

use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;

fn main() -> Result<(), Box<dyn Error>> {
    // Create a new workbook (starts with one sheet, "Sheet1").
    let mut workbook = Workbook::new();
    {
        let mut worksheets = workbook.get_worksheets_mut();
        let sheet = worksheets.get(0)?;
        let mut cells = sheet.get_cells_mut();

        cells.get("A1")?.put_value_string("Hello")?;
        cells.get("B1")?.put_value_i32(123)?;
        cells.get("G1")?
            .put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
    }
    workbook.save("hello.xlsx")?;

    // Load it back.
    let loaded = Workbook::load_xlsx("hello.xlsx")?;
    let sheet = loaded.worksheet("Sheet1")?;
    let cells = sheet.get_cells();
    println!("A1 = {}", cells.get("A1")?.display_string_value());

    Ok(())
}

รูปแบบที่รองรับ

รูปแบบส่วนขยายอ่านเขียน
XLSX.xlsx

XLSX เป็นจุดสนใจของการปล่อยเวอร์ชันปัจจุบัน: การอ่านและเขียนแบบรอบเต็มผ่าน Workbook::load_xlsx และ Workbook::save พร้อมด้วย enum LoadFormat และ SaveFormat ที่กำหนดการเลือกรูปแบบอย่างชัดเจน.


โอเพนซอร์ส & ไลเซนส์

Aspose.Cells FOSS สำหรับ Rust มีสัญญาอนุญาตแบบ MIT. โค้ดต้นฉบับทั้งหมดพร้อมให้ดาวน์โหลดบน GitHub, และสัญญาอนุญาตอนุญาตให้ใช้เชิงพาณิชย์, แก้ไข, และแจกจ่ายต่อ.


เริ่มต้นใช้งาน

ทรัพยากรที่เกี่ยวข้อง