وثائق HotXLS

فئات TXLSXCell / TXLSXCells

الوصول إلى قيمة الخلية في TXLSXWorksheet حيث TXLSXCell هي خلية واحدة (قيمة بالإضافة إلى صيغة اختيارية وفهرس تنسيق)؛ وTXLSXCells هي مجموعة لكل ورقة عمل يتم الوصول إليها عبر Worksheet.Cells؛ وتم التصريح عنها في lxHandleX

إعلان TXLSXCell

type
  TXLSXCell = class
    constructor Create(ARow, ACol: Integer; const AValue: Variant);
    destructor Destroy; override;
    procedure SetWorkbook(AWorkbook: TXLSXWorkbook);
    procedure SetArrayRoot(ARootRow, ARootCol: Integer);
    procedure SetArrayRange(ARootRow, ARootCol, ALastRow, ALastCol: Integer);
    property Workbook: TXLSXWorkbook;
    property ArrayRootRow: Integer;
    property ArrayRootCol: Integer;
    property ArrayLastRow: Integer;
    property ArrayLastCol: Integer;
    property Row: Integer;
    property Col: Integer;
    property Value: Variant;
    property FormatIndex: Integer;
    property FontIndex: Integer;
    property FillIndex: Integer;
    property BorderIndex: Integer;
    property NumberFormatIndex: Integer;
    property NumberFormat: WideString;
    property AlignmentIndex: Integer;
    property ProtectionIndex: Integer;
    property Formula: WideString;
    property RichText: TXLSXRichText;
    property Locked: Boolean;
    property FormulaHidden: Boolean;
    property FormattedText: WideString;
    property TaggedText: WideString;
  end;
      

أعضاء TXLSXCell

Destroy يحرر حالة المثيل ويطلق الموارد المملوكة
SetWorkbook يكتب مرجع كتاب العمل المالك بحيث يمكن لعمليات مثل عمليات البحث عن تنسيق الأرقام إعادة استخدام تجمعات كتب العمل المشتركة في زمن O(1)
SetArrayRoot / SetArrayRange عين علامات ArrayRoot* و ArrayLast* لمثبتات تدفق صيغة المصفوفة بحيث تقوم خلية جذرية واحدة بتعيين جميع الخلايا التابعة في نفس المستطيل
Workbook مرجع خلفي لـ TXLSXWorkbook المالك والمعين بواسطة إنشاء خلية ورقة العمل
ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastCol بيانات تعريف تدفق CSE للقراءة فقط والمستخدمة بواسطة حفظ/تحميل دورة كاملة لمستطيلات صيغ المصفوفة
Row فهرس الصف المستند إلى 1
Col فهرس العمود المستند إلى 1 (1 = A، 2 = B، ...)
Value قيمة الخلية كـ Variant؛ ويتم دعم السلاسل والأرقام والقيم البولينية وTDateTime بالكامل؛ ويقوم تعيين TDateTime تلقائيًا باختيار cellXf المدمج للتاريخ (XlsxXfIndexDate) عند عدم تعيين FormatIndex صريح
FormatIndex فهرس في xl/styles.xml cellXfs اتركه عند 0 للنمط الافتراضي؛ الفهرس 1 محجوز لتنسيق التاريخ المدمج (numFmtId 14، m/d/yyyy)؛ وعند تعيينه، يأخذ FormatIndex الأسبقية على FontIndex في الخلية المنبعثة
FontIndex فهرس مستند إلى 1 في TXLSXWorkbook.Fonts اتركه عند 0 لوراثة الخط الافتراضي Calibri 11
FillIndex فهرس مستند إلى 1 في TXLSXWorkbook.Fills راجع TXLSXFill
BorderIndex فهرس مستند إلى 1 في TXLSXWorkbook.Borders راجع TXLSXBorder
NumberFormatIndex فهرس مستند إلى 1 في TXLSXWorkbook.NumberFormats استخدم هذا لرموز التنسيق المخصصة مثل '$#,##0.00' أو 'yyyy-mm-dd hh:mm:ss'
NumberFormat خاصية ملائمة لنص تنسيق الأرقام المخصص ترجع القراءة رمز التنسيق من تجمع تنسيقات الأرقام لكتاب العمل عندما يشير NumberFormatIndex إليه؛ ويقوم تعيين سلسلة بالبحث عن التنسيق أو إضافته وتحديث NumberFormatIndex
AlignmentIndex فهرس مستند إلى 1 في TXLSXWorkbook.Alignments راجع TXLSXAlignment لمعلمات المحاذاة الأفقية / العمودية / التفاف النص / المسافة البادئة / التدوير لكل إدخال
RichText حمولة مملوكة اختيارية لـ TXLSXRichText عند تعيينها، تمر الخلية عبر جدول السلاسل المشتركة كإدخال <si> متعدد التشغيل بدلاً من سلسلة نصية بسيطة؛ ويؤدي تعيين nil إلى الرجوع لقيمة Variant للخلية
الأسبقية عند تعيين عدة خصائص *Index على نفس الخلية، يختار جانب SaveAs الـ cellXf المطابق بهذا الترتيب: FormatIndex > FontIndex > FillIndex > BorderIndex > NumberFormatIndex
Formula نص صيغة اختياري (بدون بادئة =) عند تعيينه، يصدر SaveAs عنصرًا فرعيًا <f> بجانب قيمة الخلية، ويقوم Open بقراءته مرة أخرى
ProtectionIndex فهرس في تجمع حماية كتاب العمل؛ وتقوم الخاصيتان الملائمتان Locked وFormulaHidden بصيانة هذا الفهرس تلقائيًا للاستخدام الشائع
Locked عندما تكون True (الافتراضي لكل خلية جديدة)، تتم حماية الخلية عند حماية ورقة العمل؛ وعينها على False للسماح بتحرير خلية معينة داخل ورقة عمل محمية؛ ويقوم بكتابة السمة <protection locked="0"/> داخل cellXf للخلية عندما تختلف عن الافتراضي
FormulaHidden عندما تكون True، لا تعرض شريط الصيغة صيغة الخلية أثناء حماية الورقة؛ والقيمة الافتراضية هي False؛ ويصدر <protection hidden="1"/> في cellXf المطابق
FormattedText WideString للقراءة فقط؛ ترجع قيمة الخلية المنسقة كسلسلة وفقًا لرمز تنسيق الأرقام المخصص أو المدمج النشط لها
TaggedText WideString للقراءة فقط؛ ترجع سلسلة الخلية المنسقة التي تحتوي على علامات تنسيق شبيهة بـ HTML/XML لأنماط النص الغني عند الاقتضاء

إعلان TXLSXCells

type
  TXLSXCells = class
    constructor Create(AOwnerSheet: TXLSXWorksheet);
    destructor Destroy; override;
    procedure Clear;
    function HasCell(ARow, ACol: Integer): Boolean;
    function Remove(ARow, ACol: Integer): Boolean;
    property Item[ARow, ACol: Integer]: TXLSXCell; default;
    property Count: Integer;
    property CellByIndex[Index: Integer]: TXLSXCell;
  end;
      

أعضاء TXLSXCells

Create ينشئ مجموعة خلايا مرتبطة بورقة عمل مالكة واحدة
Destroy يطلق جميع الخلايا المملوكة للمجموعة
Item[Row, Col] يرجع الخلية عند الإحداثيات المحددة المستندة إلى 1، وينشئ TXLSXCell فارغة عند أول وصول؛ وتم التصريح عنها كخاصية افتراضية بحيث تعمل Cells[Row, Col] كاختصار
Count عدد الخلايا المخزنة حاليًا
CellByIndex[i] الخلية عند فهرس الإدراج المعين المستند إلى 0؛ وهي مفيدة للتعداد المتتالي دون معرفة مسبقة بالصفوف والأعمدة المملوءة
Remove يحذف خلية موجودة واحدة عند الإحداثيات ويرجع ما إذا كانت الإزالة قد حدثت بالفعل
HasCell(Row, Col) يرجع True إذا كانت الخلية موجودة بالفعل عند الإحداثيات المحددة؛ واستخدم هذا لتجنب إنشاء خلية فارغة كأثر جانبي لـ Item[Row, Col]
مسح يزيل ويحرر كل خلية في المجموعة

مثال

var
  ws: TXLSXWorksheet;
  i: Integer;
begin
  ws := Workbook.Sheets.Add('Demo');

  ws.Cells.Item[1, 1].Value := 'Hello';
  ws.Cells.Item[1, 2].Value := 123.45;
  ws.Cells.Item[2, 1].Value := Now;             // يتم عرضه كتاريخ
  ws.Cells.Item[2, 2].Formula := 'SUM(B1:B1)';

  for i := 0 to ws.Cells.Count - 1 do
    WriteLn(ws.Cells.CellByIndex[i].Row, ',',
            ws.Cells.CellByIndex[i].Col);
end;

انظر أيضًا