کار با لایه مدل 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ضبط یک تشخیص ساختار یافته

همچنین ببینید:

 فارسی