TXLSXCell هي خلية واحدة (قيمة بالإضافة إلى صيغة اختيارية وفهرس تنسيق)؛ وTXLSXCells هي مجموعة لكل ورقة عمل يتم الوصول إليها عبر Worksheet.Cells؛ وتم التصريح عنها في lxHandleX
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;
| 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 لأنماط النص الغني عند الاقتضاء |
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;
| 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;