کار با لایه مدل Workbook
کار با لایه مدل Workbook
در زیر API که به کاربر نشان داده میشود، crate یک لایه مدل داده ساده نگه میدارد که بسته XLSX را بازتاب میدهد: ساختارهای مقدار، مدلهای قانون، و ذخیرهسازی مشترک. اکثر برنامهها هرگز بهصورت مستقیم با این نوعها در تماس نیستند، اما هنگام بررسی عمیق کتابهای کار بارگذاریشده یا مشارکت در خود crate ظاهر میشوند.
انواع مقدار
ColorValue مؤلفههای رنگ ARGB را بهصورت a، r، g و b ساده حمل میکند، با equals و get_hash_code برای مقایسهها. قالببندی عددی در سطح مدل در NumberFormatValue قرار دارد که از clone برای کپی کردن تعاریف قالب بین رکوردهای مدل پشتیبانی میکند.
مدلهای قانون
قواعد کیفیت داده دارای مدلهای دوگان هستند: ValidationModel ویژگیهای areas، validation_type، alert_style، operator قانون و عبارات formula1 / formula2 را بهعنوان فیلدها نشان میدهد؛ FormatConditionModel و ConditionalFormattingModel نقش مشابهی برای رکوردهای قالببندی شرطی ایفا میکنند. اینها با default ساخته شده و بهصورت فیلد به فیلد پر میشوند.
ذخیرهسازی رشتههای مشترک
فایلهای XLSX متنهای تکراری سلولها را در جدول shared-strings ذخیره میکنند. SharedStringRepository آن را بهعنوان یک interner مدل میکند:
internیک رشته اضافه میکند و اندیس آن را برمیگرداند (با استفاده مجدد از ورودیهای موجود)،try_get_valueیک اندیس را به رشتهٔ مربوطه بازمیگرداند،clearمخزن را بازنشانی میکند.
Diagnostics
DiagnosticBag مسائلی ساختاریافته را از طریق add در حین عملیات مدل. در سطح API همان اطلاعات از طریق LoadDiagnostics هنگام بارگذاری کتابهای کاری — ببینید نمای کلی ویژگیها.
نکات و بهترین روشها
- از API کاربرمحور (
Workbook،Worksheet، مجموعههای سلول) استفاده کنید — لایهٔ مدل برای کارهای معمولی صفحهگسترده لازم نیست. - ساختارهای مدل را بهعنوان رکوردهای داده در نظر بگیرید: با
defaultساخته شوند، سپس فیلدها را بهصورت صریح تنظیم کنید. - هنگام بررسی فایلهای خراب، پرچمهای تعمیر
LoadOptionsرا با تشخیصهایی که بارگذار گزارش میکند ترکیب کنید.
مشکلات رایج
| مسئله | دلیل | رفع |
|---|---|---|
| رشتههای مشترک تکراری | دور زدن از اینترنر | متن را از طریق SharedStringRepository.intern مسیردهی کنید |
| قاعده اعتبارسنجی نادیده گرفته شد | فیلدهای مدل ناقص | تنظیم validation_type، operator و formula1 روی ValidationModel |
FAQ
آیا برای نوشتن صفحات گسترده به لایه مدل نیاز دارم؟
خیر. Workbook API شامل ایجاد، ویرایش و ذخیرهسازی کتابهای کار است؛ لایه مدل زیرساخت آن را فراهم میکند.
چرا ساختارهای مدل از سازندههای default استفاده میکنند؟
آنها رکوردهای ساده دادهای هستند که ساختارهای XLSX را بازتاب میدهند — default یک رکورد خالی میدهد که شما بهصورت فیلد به فیلد پر میکنید.
API Reference خلاصه
| کلاس/متد | توضیح |
|---|---|
ColorValue | رکورد رنگ ARGB (a, r, g, b) |
NumberFormatValue.clone | یک تعریف قالب عددی را کپی کنید |
ValidationModel | رکورد قانون اعتبارسنجی (ناحیهها، عملگر، فرمولها) |
FormatConditionModel.default | رکورد قانون قالببندی شرطی خالی |
SharedStringRepository.intern | رشتهای را اینترن کنید، ایندکس آن را برگردانید |
SharedStringRepository.try_get_value | ایندکس اینترنشده را حل کنید |
DiagnosticBag.add | ضبط یک تشخیص ساختار یافته |