บทนำ
การจัดการสเปรดชีตเป็นแกนหลักของ crate aspose-cells-foss-rust: วัตถุที่จำลองสมุดงาน, แผ่นงานของมัน, และเซลล์ต่าง ๆ, รวมถึงการดำเนินการที่แปลงข้อมูล Rust ให้เป็นไฟล์ XLSX ที่นำเสนอได้ โพสต์นี้จะพาคุณผ่านพื้นผิวนั้น — ตั้งแต่การสร้างแผ่นงานและการเขียนค่าที่มีชนิด ไปจนถึงการจัดสไตล์, การจัดหน้ากระดาษ, และคุณลักษณะโครงสร้างที่ทำให้สมุดงานใช้งานได้: ความคิดเห็น, ไฮเปอร์ลิงก์, ตาราง, และชื่อที่กำหนดไว้.
ทุกอย่างที่แสดงที่นี่เป็นส่วนหนึ่งของ crate แบบเปิดแหล่งที่มาและได้รับใบอนุญาต MIT. ไม่มีการติดตั้ง Microsoft Office ใด ๆ เข้ามาเกี่ยวข้องในขั้นตอนใดขั้นตอนหนึ่ง; ไลบรารีนี้อ่านและเขียนรูปแบบแพ็กเกจ XLSX โดยตรง.
ส่วนนี้ได้ผ่านการตรวจสอบกับโมเดลซอร์สปัจจุบันเพื่อยืนยันพฤติกรรมผลิตภัณฑ์ล่าสุดและการครอบคลุมของ API.
คุณสมบัติหลัก
แผ่นงานและชุดเซลล์
แผ่นงานจะถูกจัดการผ่านคอลเลกชันแผ่นงานของสมุดงาน แผ่นงานจะอ้างอิงโดยดัชนีหรือชื่อ, เปลี่ยนชื่อด้วย set_name, และเซลล์ของมันจะเข้าถึงได้ผ่าน get_cells (อ่าน) หรือ get_cells_mut (เขียน):
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Charts")?;
{
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
cells.get("B1")?.put_value_string("Sales")?;
}
}
ค่าที่กำหนดประเภทโดยชื่อหรือดัชนี
เซลล์รับสตริง, จำนวนเต็ม, บูลีน, ทศนิยม, และวันเวลา ผ่านตัวตั้งค่าที่มีชนิด เซลล์สามารถอ้างอิงแบบสไตล์ A1 (get("B3")) หรือแบบเชิงตัวเลข (get_by_index(row, column)) ซึ่งเหมาะกับการจัดรูปแบบที่สร้างขึ้นอัตโนมัติ:
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
cells
.get_by_index(month, 1)
.put_value_i32((month as i32 * 1000) + (month as i32 * 50))?;
}
สูตรพร้อมค่าที่แคชไว้
put_formula_with_cached_value เก็บข้อความสูตรพร้อมกับค่าที่ Excel ควรแสดงก่อนการคำนวณใหม่ครั้งแรก — สิ่งสำคัญเมื่อไฟล์ถูกใช้งานโดยเครื่องมืออื่นที่อ่านผลลัพธ์ที่แคชไว้:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
การจัดสไตล์และการจัดหน้า
CellStyle มี Font, Fill, และ Borders; StyleFlag เลือกว่าข้อกำหนดสไตล์ใดที่จะนำไปใช้ในการอัปเดต NumberFormat ควบคุมการแสดงค่า, และ PageSetup จัดการ PaperSizeType และ PageOrientationType สำหรับการพิมพ์ FreezePane และ VisibilityType ของแถว/คอลัมน์ทำให้แผ่นงานขนาดใหญ่สามารถนำทางได้.
คอมเมนต์, ไฮเปอร์ลิงก์, และชื่อ
กระบวนการทำงานและการนำทางของผู้ตรวจสอบครอบคลุมโดย Comment และ CommentCollection, Hyperlink พร้อมกับ HyperlinkCollection, และ DefinedName พร้อมกับ DefinedNameCollection สำหรับช่วงที่ตั้งชื่อ.
ตารางเชิงโครงสร้างและตัวกรอง
ListObject แปลงช่วงเป็นตารางที่มีโครงสร้างพร้อมสไตล์ TableStyleType และแถว TotalsCalculation; AutoFilter เพิ่มการกรองด้วยเงื่อนไข FilterColumn และ FilterOperatorType.
เริ่มต้นอย่างเร็ว
เพิ่ม crate ไปยัง Cargo.toml ของคุณเป็น dependency จาก git (crate นี้ยังไม่ได้เผยแพร่บน 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>> {
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("Item")?;
cells.get("B1")?.put_value_string("Quantity")?;
cells.get("A2")?.put_value_string("Apples")?;
cells.get("B2")?.put_value_i32(12)?;
}
workbook.save("inventory.xlsx")?;
let loaded = Workbook::load_xlsx("inventory.xlsx")?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("A2 = {}", cells.get("A2")?.display_string_value());
Ok(())
}
รูปแบบที่รองรับ
| รูปแบบ | ส่วนขยาย | อ่าน | เขียน |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
การโหลดรับแฟล็กการซ่อมแซม LoadOptions (try_repair_package, try_repair_xml) พร้อมกับ LoadDiagnostics ที่มีโครงสร้าง; การบันทึกทำผ่าน save, save_xlsx, หรือ save_with_format ด้วย enum SaveFormat.
โอเพนซอร์ส & การให้สิทธิ์
Aspose.Cells FOSS สำหรับ Rust ได้รับใบอนุญาต MIT. โค้ดต้นฉบับอยู่บน GitHub; การใช้เชิงพาณิชย์, การแก้ไข, และการกระจายต่อได้รับอนุญาต.