مستندات HotXLS

الأسلوب CreateLoadedCellCursor

ينشئ مؤشر سحب فوق الخلايا المخزنة في مصنف Classic XLS محمّل، مع خيار لتضمين الخلايا الفارغة المنمّطة بشكل مستقل

البنية

function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
function CreateLoadedCellCursor(
  AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;

ترتيب التجول وتكلفته

يزور المؤشر أوراق العمل بترتيبها في المجموعة، ثم الخلايا بترتيب تصاعدي حسب الصف والعمود

SheetIndexو Rowو Col إحداثيات عامة تبدأ من الواحد

يتبع التجول فروع التخزين المتناثر الكلاسيكية المخصصة مباشرة، فتبقى حالة المؤشر ثابتة ولا يخصص مصفوفات بحجم حدود صفوف أو أعمدة ورقة العمل

يتخطى التحميل الزائد بلا معاملات الخلايا الفارغة ويحافظ على عقد التجول الحالي للقيم والصيغ

مرر True لتضمين الخلايا الفارغة المخزنة التي يختلف تنسيق XF الخاص بها عن تنسيق الصف أو العمود أو ورقة العمل الموروث

لا يولّد التنسيق الموروث وحده إحداثية فارغة ولا يجسدها

حقول اللقطة

الحقلالمعنى
SheetIndex / SheetNameهوية ورقة العمل المالكة لحظة الالتقاط
Row / Colإحداثيات الخلية بدءًا من الواحد
StyleIndexفهرس النمط XF الكلاسيكي
Kind (TXLSLoadedCellKind)xlckTextأو xlckNumberأو xlckDateTimeأو xlckBooleanأو xlckFormulaأو xlckBlank
Valueقيمة Variant مملوكة التُقطت للخلية الحالية
Formulaنص الصيغة لخلايا الصيغ، أو سلسلة فارغة غير ذلك

السلاسل وقيم Variant في TXLSLoadedCellSnapshot قيم مملوكة ولا تكشف كائنات الخلايا الداخلية

في خلايا الصيغ، تتبع Value دلالات الوصول إلى القيم المعتادة للمصنف الكلاسيكي، بما في ذلك الحساب عند اللزوم

بالنسبة إلى xlckBlank، تكون Value تساوي Unassignedو Formula فارغة ويحدد StyleIndex تنسيق XF المخزن للخلية

الحالة والإبطال

State تبقى TXLSLoadedCellCursorStateتساوي xlccBeforeFirst حتى أول استدعاء ناجح لـ MoveNext، وتساوي xlccActive ما دامت Current متاحة، وتساوي xlccEof بعد اكتمال التجول

تؤدي قراءة Current قبل الخلية الأولى أو بعد نهاية الملف إلى رفع 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;

انظر أيضًا