وثائق HotXLS

فئات TXLSXCell / TXLSXCells

الوصول إلى قيمة الخلية في TXLSXWorksheetTXLSXCell هي خلية واحدة (قيمة بالإضافة إلى صيغة اختيارية وفهرس تنسيق)؛ و 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;
    property NamedStyleXfId: Integer;
    property LinkedStyle: TXLSXLinkedStyle;
  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.xmlcellXfs اتركه عند 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 للخلية
Precedenceعند تعيين عدة خصائص *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المطابق
TaggedTextWideString للقراءة فقط؛ ترجع قيمة الخلية المنسقة كسلسلة وفقًا لرمز تنسيق الأرقام المخصص أو المدمج النشط لها
NamedStyleXfIdRead-only Integer. Returns the cellXfs فهرس النمط المسمّى الذي ترتبط به هذه الخلية، أو -1 when the cell has no style payload
LinkedStyleRead/write TXLSXLinkedStyle وهو سجل يربط الخلية بنمط مسمّى: AutomaticChoose ويترك Excel يختار النمط تلقائيًا، و LinkedParts 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]
Clearيزيل ويحرر كل خلية في المجموعة

مثال

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;             // renders as a date
  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;
    

انظر أيضًا