مقدمه
مدیریت صفحات گسترده هستهی crate aspose-cells-foss-rust است: اشیائی که یک workbook، شیتهای آن و سلولهایشان را مدل میکنند و عملیاتهایی که دادههای Rust را به فایلهای XLSX قابل ارائه تبدیل مینمایند. این پست به بررسی این سطح میپردازد — از ایجاد شیتها و نوشتن مقادیر تایپشده تا استایلدهی، چیدمان صفحه، و ویژگیهای ساختاری که workbookها را قابل استفاده میسازند: نظرات، پیوندهای فراگیر، جدولها و نامهای تعریفشده.
تمام موارد نمایش دادهشده در اینجا بخشی از 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")?;
}
}
مقادیر تایپشده بر حسب نام یا شاخص
سلولها رشتهها، اعداد صحیح، بولیها، اعشارها و تاریخ-زمانها را از طریق setterهای تایپشده میپذیرند. سلولها میتوانند به سبک 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 خود به عنوان یک وابستگی گیت اضافه کنید (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 قرار دارد؛ استفاده تجاری، تغییر و توزیع مجدد مجاز هستند.