บทนำ
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, และสัญญาอนุญาตอนุญาตให้ใช้เชิงพาณิชย์, แก้ไข, และแจกจ่ายต่อ.