کار با مدیریت صفحهگسترده
کار با مدیریت صفحهگسترده
مدیریت صفحهگسترده سطح شیء روزانهٔ crate را شامل میشود: ورقها، مجموعههای سلول، مقادیر نوعی، فرمولها، استایلدهی، و ویژگیهای ساختاری که یک کتابکار قابل استفاده را میسازند. نقطهٔ ورودی همیشه یک Workbook است.
Worksheets
ورقها از طریق مجموعههای ورقکار کتابکار مدیریت میشوند — دسترسی فقط-خواندنی از طریق get_worksheets، تغییرات از طریق get_worksheets_mut. ورقها با شاخص (get(0)) یا نام (get_by_name) شناسه میشوند، با set_name نامشان تغییر مییابد، و با add_worksheet اضافه میشوند:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}دسترسی به سلولها و مقادیر نوعی
سلولها به سبک A1 یا به صورت عددی شناسه میشوند. get_by_index(row, column) برای طرحهای تولید شده مناسب است:
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
}در هنگام بازخوانی، display_string_value متن نمایش دادهشده را برمیگرداند و value_type نوع ذخیرهشده را گزارش میدهد.
فرمولها با نتایج کششده
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;مقدار کششده همان چیزی است که اکسل قبل از اولین بازمحاسبه نمایش میدهد — آن را فراهم کنید تا مصرفکنندگان فایل بلافاصله نتایج صحیح را ببینند.
Styling
CellStyle مقدار Font، Fill و Borders را تجمیع میکند؛ StyleFlag کنترل میکند که کدام جنبههای استایل توسط بهروزرسانی اعمال شوند، بهطوری که قالببندی موجود در جاهایی که بازنویسی نمیکنید حفظ شود. NumberFormat نحوه نمایش مقادیر را تعیین میکند.
تنظیمات صفحه و ناوبری
PageSetup چیدمان چاپ را مدیریت میکند: PaperSizeType، PageOrientationType و حاشیهها. FreezePane ردیفهای سرعنوان را هنگام پیمایش قابل مشاهده نگه میدارد، و نمایش ردیف و ستون با استفاده از VisibilityType انجام میشود.
ساختار: جداول، نامها، نظرات، هایپرلینکها
ListObjectیک بازه را به جدول ساختاری تبدیل میکند با استایلTableStyleTypeو ردیفهای مجموعTotalsCalculation.DefinedNameوDefinedNameCollectionبازههای نامگذاریشده را مدیریت میکنند.Comment/CommentCollectionوHyperlink/HyperlinkCollectionپوشش حاشیهنویسی و ناوبری را میدهند.
نکات و بهترین روشها
- قرضهای قابل تغییر (
get_worksheets_mut،get_cells_mut) را داخل یک بلوک حوزه نگه دارید؛ پس از بسته شدن بلوک، کتاب کار را ذخیره کنید. - از
get_by_indexبرای حلقهها و طرحهای تولید شده استفاده کنید؛ نامهای A1 برای موقعیتهای ثابت. - استایلها را با یک
StyleFlagاعمال کنید تا قالببندیهای نامرتبط دستنخورده بمانند. - رشتههای مهم را با
DefinedNameنامگذاری کنید به جای کدگذاری ثابت آدرسها.
مسائل رایج
| مشکل | دلیل | راهحل |
|---|---|---|
| خطای قرضگیری هنگام ذخیرهسازی workbook | قرضگیری mutable از worksheet هنوز فعال است | بلوک scope را قبل از فراخوانی save ببندید |
| فرمول در Excel عدد 0 را نمایش میدهد | هیچ مقدار کششدهای ارائه نشده است | از put_formula_with_cached_value با نتیجهٔ مورد انتظار استفاده کنید |
| برگه یافت نشد | عدم تطابق نام | آدرس را بر اساس ایندکس وارد کنید یا املای set_name را بررسی کنید |
FAQ
چگونه یک کاربرگ دوم اضافه کنم؟
روی workbook متد add_worksheet را صدا بزنید، سپس آن را از مجموعه کاربرگها با استفاده از اندیس یا نام دریافت کنید.
آیا میتوانم در یک عبور هم بخوانم و هم بنویسم؟
بله — با Workbook::load_xlsx بارگذاری کنید، از طریق get_worksheets_mut تغییر دهید، و save به مسیر همان یا جدید انجام دهید.
آیا setterهای نوعی مقادیر را تبدیل میکنند؟
هیچ تبدیلکاری اعمال نمیشود: هر setter put_value_* نوع بومی خود را ذخیره میکند؛ display_string_value متن نمایش را هنگام خواندن رندر میکند.
API Reference خلاصه
| کلاس/متد | توضیح |
|---|---|
Workbook.add_worksheet | یک برگه به دفتر کار اضافه کنید |
Worksheet.set_name | تغییر نام شیت |
Worksheet.get_cells_mut | مجموعه سلولهای قابل تغییر |
CellMut.put_value_string | تنظیمکننده رشته تایپشده |
CellMut.put_formula_with_cached_value | فرمول بههمراه نتیجهٔ کششده |
CellStyle | قالببندی فونت، پرکردن و حاشیه |
StyleFlag | انتخاب میکند کدام جنبههای سبک اعمال شوند |
PageSetup | چاپ و چیدمان صفحه |
ListObject | جداول ساختاری |