متد CreateLoadedCellCursor
مکاننمایی کششی روی سلولهای ذخیرهشده یک کتاب کار کلاسیک XLS بارگذاریشده میسازد، با گزینهای برای گنجاندن سلولهای خالی که بهاستقلال سبکدار شدهاند
نحو
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload; function CreateLoadedCellCursor( AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
ترتیب پیمایش و هزینه
مکاننما کاربرگها را به ترتیب مجموعه و سپس سلولها را به ترتیب صعودی سطر و ستون بازدید میکند
SheetIndex، Row و Col مختصات عمومی مبتنی بر یک هستند
پیمایش مستقیماً از شاخههای تخصیصیافته ذخیرهسازی خلوت کلاسیک پیروی میکند؛ بنابراین وضعیت مکاننما ثابت میماند و آرایههایی به اندازه حدود سطر یا ستون کاربرگ تخصیص نمیدهد
سربارگذاری بدون پارامتر از سلولهای خالی صرفنظر میکند و قرارداد پیمایش فعلی مقدار و فرمول را حفظ میکند
برای گنجاندن سلولهای خالی ذخیرهشدهای که قالب XF آنها با قالب بهارثرسیده سطر، ستون یا کاربرگ تفاوت دارد، True بفرستید
قالب بهارثرسیده بهتنهایی هیچ مختصات خالیای را عینیت نمیبخشد و صادر نمیکند
فیلدهای تصویر لحظهای
| فیلد | معنی |
|---|---|
SheetIndex / SheetName | هویت کاربرگ مالک در لحظه ثبت |
Row / Col | مختصات سلول مبتنی بر یک |
StyleIndex | اندیس سبک XF کلاسیک |
Kind | xlckText، xlckNumber، xlckDateTime، xlckBoolean، xlckFormula یا xlckBlank |
Value | مقدار Variant متعلق به فراخوان که برای سلول جاری ثبت شده است |
Formula | متن فرمول برای سلولهای فرمولدار، در غیر این صورت رشته خالی |
رشتهها و مقدارهای Variant در TXLSLoadedCellSnapshot مقادیر متعلق به فراخواناند و اشیای داخلی سلول را افشا نمیکنند
برای سلولهای فرمولدار، Value از دلالتهای معمول دسترسی به مقدار کتاب کار کلاسیک پیروی میکند، از جمله محاسبه در صورت لزوم
برای xlckBlank، مقدار Value برابر Unassigned و Formula خالی است و StyleIndex قالب XF ذخیرهشده سلول را مشخص میکند
وضعیت و بیاعتبارسازی
State برابر xlccBeforeFirst است تا آنکه نخستین MoveNext موفق رخ دهد، برابر xlccActive است تا زمانی که Current در دسترس است، و پس از پایان پیمایش برابر xlccEof میشود
خواندن Current پیش از نخستین سلول یا پس از EOF استثنای EXLSLoadedCellCursorState را ایجاد میکند
ایجاد یا حذف سلولهای ذخیرهشده، افزودن یا حذف یا جابهجایی کاربرگها، یا جایگزینی مدل کتاب کار، مکاننما را بیاعتبار میکند
فراخوانی بعدی MoveNext یا Current در آن صورت استثنای 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;