مستندات HotXLS

متد CreateReadOnlyView

نمای سبکی فقط‌خواندنی روی مدل کتاب کار کلاسیک یا XLSX بارگذاری‌شده می‌سازد

نحو

function CreateReadOnlyView: IXLSReadOnlyWorkbookView;

CreateReadOnlyView در IXLSWorkbook کلاسیک در lxHandle و در IXLSXWorkbookOwner مخصوص XLSX در lxHandleX اعلام شده است؛ رابط نمای مشترک، گزینه‌ها و انواع تصویر لحظه‌ای در lxStandard اعلام شده‌اند

وضعیت نما و طول عمر

ساخت نما زمان ثابت می‌برد و کاربرگ‌ها، سلول‌ها، سبک‌ها، نام‌ها یا شکل‌ها را پیمایش نمی‌کند

هر نما ActiveSheetIndex مبتنی بر یک مخصوص به خود را دارد، به‌طوری که چند نما می‌توانند کاربرگ‌های متفاوتی را برگزینند بدون آنکه ActiveSheetIndex کلاسیک یا ActiveIndex، IsSelected و ActiveTab در XLSX تغییر کند

نما تا زمان وجودش اجاره خواندن را نگه می‌دارد و تغییرات کتاب کار با استثنای EXLSWorkbookWriteGuardUnavailable پیش از تغییر مدل، به‌سرعت شکست می‌خورند

هنگام استفاده از نماها، کتاب‌های کاری کلاسیک را از طریق IXLSWorkbook و کتاب‌های کاری XLSX را از طریق IXLSXWorkbookOwner نگه دارید؛ در آن صورت رابط مالک و هر نما به همان کتاب کار شمارش‌مرجعی ارجاع دارند و می‌توانند به هر ترتیبی آزاد شوند

Free را روی TXLSWorkbook یا TXLSXWorkbook ملموس فرا نخوانید تا وقتی رابط مالک یا نمایی هنوز به آن ارجاع دارد

تصاویر لحظه‌ای سلول

TryReadCell از مختصات سطر و ستون مبتنی بر یک روی کاربرگ فعال نما استفاده می‌کند و تنها زمانی False برمی‌گرداند که در آن مختصات هیچ سلول ذخیره‌شده‌ای وجود نداشته باشد

خواندن سلول ناموجود، فضای ذخیره‌سازی نمی‌سازد و نسل کتاب کار را پیش نمی‌برد

TXLSReadOnlyCellSnapshot مالک نام کاربرگ، مقدار، متن فرمول، اطلاعات حافظه پنهان و ارزیابی، مختصات، نوع و اندیس سبک خود است و هرگز شیء کتاب کار قابل نوشتن را افشا نمی‌کند

فیلدمعنی
SheetIndex / SheetNameهویت کاربرگ محلی به نما
Row / Colمختصات سلول مبتنی بر یک
StyleIndexاندیس XF کلاسیک ذخیره‌شده یا اندیس قالب سلول XLSX
Kindطبقه‌بندی متن، عدد، تاریخ-زمان، منطقی، فرمول، خطا یا خالی
Valueمقدار اسکالر ذخیره‌شده یا مقدار حافظه پنهان فرمول، بدون محاسبه مجدد
HasFormulaCache / FormulaCacheوجود حافظه پنهان فرمول، منشأ آن، نوع مقدار و مقدار ذخیره‌شده متعلق به فراخوان
FormulaEvaluation اینکه ارزیابی قابل‌اجرا نبود، درخواست نشد، محاسبه شد یا شکست خورد، همراه با کد نتیجه ارزیاب و مقدار نتیجه متعلق به فراخوان
Formulaبه‌طور پیش‌فرض خالی است و فقط وقتی متن فرمول صریحاً فعال شود پر می‌شود

سیاست فرمول

به‌طور پیش‌فرض سلول‌های فرمول‌دار از حافظه پنهان ذخیره‌شده موجود استفاده می‌کنند و هرگز محاسبه نمی‌کنند، تابع کاربر را فرا نمی‌خوانند، وضعیت کهنگی را به‌روزرسانی نمی‌کنند و حافظه پنهانی را به کتاب کار بازنمی‌نویسند

وقتی به متن فرمول نیاز دارید، xlsvIncludeFormulaText را به Options بیفزایید؛ Classic در صورت نیاز کدگشای مخصوص نما می‌سازد و XLSX رشته فرمول ذخیره‌شده خود را کپی می‌کند و هیچ‌یک از این دو مسیر ماشین حساب کتاب کار را مقداردهی یا تغییر نمی‌دهند

فرمولی که حافظه پنهان بارگذاری‌شده یا محاسبه‌شده ندارد، HasFormulaCache=False گزارش می‌کند و Value را برابر Unassigned می‌گذارد

برای ارزیابی فرمول‌ها از طریق ماشین حساب مخصوص نما، وضعیت بازگشتی، حافظه پنهان اسکالر، حافظه پنهان ماتریس آرایه‌ای و حافظه پنهان فرمول کامپایل‌شده XLSX، xlsvEvaluateFormulas را بیفزایید؛ مقدار Value و FormulaEvaluation.Value حاصل هرگز حافظه پنهان ذخیره‌شده کتاب کار یا فیلدهای زمان اجرای فرمول کامپایل‌شده را جایگزین نمی‌کنند

خطاهای استاندارد صفحه‌گسترده به‌صورت مقادیر خطای Variant با xlfesCalculated برگردانده می‌شوند، در حالی که شکست‌های ارزیابی پشتیبانی‌نشده یا داخلی xlfesFailed گزارش می‌کنند و حافظه پنهان ذخیره‌شده اصلی را در FormulaCache نگه می‌دارند

خواندن‌های مکرر از طریق یک نما، حافظه پنهان ارزیابی خصوصی آن را برای نسل اجاره دوباره به کار می‌گیرند، در حالی که نماهای متفاوت مستقل می‌مانند و می‌توانند همان فرمول مشترک را به‌طور هم‌زمان ارزیابی کنند

ارزیابی فرمول خارجی XLSX فقط حافظه پنهان externalLink محلی فایل را می‌خواند و هرگز ارجاع ثبت ضعیف کتاب کار زنده را برنمی‌تابد یا ورودی/خروجی خارجی انجام نمی‌دهد

رشته‌های اجرا و عملکرد

برای هر رشته اجرای کارگر از یک نما استفاده کنید؛ نماهای جدا می‌توانند کاربرگ‌های متفاوت را پویش کنند یا همان فرمول را هم‌زمان ارزیابی کنند، اما فراخوان‌ها نباید کاربرگ فعال یا گزینه‌های یک نما را از رشته دیگری تغییر دهند

پس از ساخت، خواندن‌های معمولی سلول وارد مانیتور یا بخش بحرانی نمی‌شوند، زیرا اجاره خواندن از تغییر هم‌زمان کتاب کار جلوگیری می‌کند

اعتبارسنجی آزادسازی هر نمای بیکار را زیر 64 کیلوبایت وضعیت ثابت، صد نمای بیکار را زیر 8 مگابایت و ساخت نما را مستقل از اندازه کتاب کار با گیت صد نودختم 95 درصد یک‌میلی‌ثانیه‌ای روی مدل یک‌میلیون‌سلولی نگه می‌دارد

مجموعه آزمون عملکرد همچنین اثر نمای بیکار بر پویش‌های مکان‌نمای تک‌رشته موجود را به پنج درصد محدود می‌کند و نیاز دارد هشت نمای پویش‌کننده کاربرگ‌های مستقل، دست‌کم پنج برابر توان عملیاتی نمای واحد را روی میزبان اعتبارسنجی به دست آورند

مثال

var
  Workbook: IXLSWorkbook;
  View: IXLSReadOnlyWorkbookView;
  Cell: TXLSReadOnlyCellSnapshot;
begin
  Workbook := TXLSWorkbook.Create;
  Workbook.Sheets.Add;
  Workbook.Sheets[1].Cells[1, 1].Value := 'ready';

  View := Workbook.CreateReadOnlyView;
  View.Options := [xlsvEvaluateFormulas];
  if View.TryReadCell(1, 1, Cell) then
    Memo1.Lines.Add(VarToStr(Cell.Value));
end;

برای XLSX، پیش از ساخت نماها کتاب کار ملموس را از طریق رابط مالک آن نگه دارید

var
  Owner: IXLSXWorkbookOwner;
  Workbook: TXLSXWorkbook;
  View: IXLSReadOnlyWorkbookView;
begin
  Workbook := TXLSXWorkbook.Create;
  Owner := Workbook;
  Workbook.Sheets.Add('Data').Cells[1, 1].Value := 42;
  View := Owner.CreateReadOnlyView;
end;

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