متد CreateLoadedCellCursor
مکاننمایی کششی روی سلولهای ذخیرهشده یک کتاب کار XLSX بارگذاریشده میسازد، با گزینهای برای گنجاندن سلولهای خالی که بهاستقلال سبکدار شدهاند
نحو
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload; function CreateLoadedCellCursor( AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
ترتیب پیمایش و هزینه
مکاننما کاربرگها را به ترتیب مجموعه و سپس سلولها را به ترتیب صعودی سطر و ستون بازدید میکند
SheetIndex، Row و Col مختصات عمومی مبتنی بر یک هستند
کاربرگهای عینیتیافته مستقیماً از بلوکهای خلوت تخصیصیافته 256 سطری خوانده میشوند بدون آنکه فهرست سلول مرتبسازیشدهای ساخته شود
کاربرگهای بستهبندیشده مستقیماً از طریق تکرارکننده ذخیرهسازی بستهبندیشده خوانده میشوند و پس از پیمایش همچنان بستهبندیشده میمانند
وضعیت مکاننما نسبت به اندازه کتاب کار ثابت است و آرایههایی به اندازه حدود سطر یا ستون XLSX تخصیص نمیدهد
سربارگذاری بدون پارامتر از سلولهای خالیِ فقطسبکدار، جایگاههای Empty ذخیرهشده و جایگاههای Null ذخیرهشده صرفنظر میکند
برای گنجاندن مختصات خالیِ بهاستقلال سبکدار از ذخیرهسازی عینیتیافته یا بستهبندیشده، بدون عینیتبخشی به سلولهای بستهبندیشده، True بفرستید
جایگاههای Empty و Null بدون سبک در هر دو حالت مستثنا میمانند
فیلدهای تصویر لحظهای
| فیلد | معنی |
|---|---|
SheetIndex / SheetName | هویت کاربرگ مالک در لحظه ثبت |
Row / Col | مختصات سلول مبتنی بر یک |
StyleIndex | اندیس قالب سلول XLSX ثبتشده از ذخیرهسازی عینیتیافته یا بستهبندیشده |
Kind | xlckText، xlckNumber، xlckDateTime، xlckBoolean، xlckFormula، xlckError یا xlckBlank |
Value | مقدار Variant متعلق به فراخوان که برای سلول جاری ثبت شده است |
Formula | متن فرمول برای سلولهای فرمولدار، در غیر این صورت رشته خالی |
رشتهها و مقدارهای Variant در TXLSLoadedCellSnapshot مقادیر متعلق به فراخواناند و اشارهگرهای داخلی سلول یا ذخیرهسازی بستهبندیشده را افشا نمیکنند
برای سلولهای فرمولدار XLSX، مقدار Value مقدار ذخیرهشده فعلی در حافظه پنهان است و پیمایش فرمول را دوباره محاسبه نمیکند
برای xlckBlank، مقدار Value برابر Unassigned و Formula خالی است و StyleIndex قالب ذخیرهشده سلول را مشخص میکند
وضعیت، بیاعتبارسازی و طول عمر
State برابر xlccBeforeFirst است تا آنکه نخستین MoveNext موفق رخ دهد، برابر xlccActive است تا زمانی که Current در دسترس است، و پس از پایان پیمایش برابر xlccEof میشود
خواندن Current پیش از نخستین سلول یا پس از EOF استثنای EXLSLoadedCellCursorState را ایجاد میکند
ایجاد یا حذف سلولهای ذخیرهشده، عینیتبخشی ذخیرهسازی بستهبندیشده، بازسازی صریح اندیسها، یا افزودن یا حذف یا جابهجایی یا خالیکردن کاربرگها، مکاننما را بیاعتبار میکند
فراخوانی بعدی MoveNext یا Current در آن صورت استثنای EXLSLoadedCellCursorInvalidated را ایجاد میکند
تغییر مقدار، فرمول یا قالب یک سلول موجود مکاننما را بیاعتبار نمیکند و تصویر لحظهای ثبتشده پیشین دستنخورده میماند
آزاد کردن کتاب کار پیش از مکاننما نیز بهجای باقی گذاشتن اشارهگری آویزان به کتاب کار، استثنای EXLSLoadedCellCursorInvalidated را ایجاد میکند
اعتبارسنجی نسل، تشخیص شکست-سریع است و همزمانی تغییر و پیمایش را ایمن از نظر رشتههای اجرا نمیکند
مثال
Cursor := Workbook.CreateLoadedCellCursor;
while Cursor.MoveNext do
begin
Cell := Cursor.Current;
Memo1.Lines.Add(Format('%s!R%dC%d = %s',
[Cell.SheetName, Cell.Row, Cell.Col, VarToStr(Cell.Value)]));
end;