مستندات HotXLS

متد 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 ثبت‌شده از ذخیره‌سازی عینیت‌یافته یا بسته‌بندی‌شده
KindxlckText، 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;

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