أعضاء إضافية لواجهات برمجة المكتبة
تستكمل هذه الصفحة مرجع الأنواع العامة التي تدعم واجهات برمجة المصنفات وأوراق العمل والعرض والاستيراد والتشخيص والعارض الرئيسية دون أن تتطلب دليلًا مستقلًا موجّهًا لمهمة بعينها
التصفية والتنسيق الشرطي
TXLSAutofilter | Addو AddAutofilterDataو AssignFromو Clearو ParseAutofilterData تعريف عامل التصفية أو تستورده؛ ويعيد SetRangeBounds(ARow1, ACol1, ARow2, ACol2) الحدود الشاملة ذات الأساس 1 دون إزالة المعايير المحملة أو أشكال القوائم المنسدلة، ويتجاهل الحدود غير الموجبة أو المعكوسة وعدد الأعمدة المخالف للحقول المحملة؛ وتكشف Definedو FirstRowو FirstColو LastColو LastRowو FieldCount عن حدوده النشطة وعدد أعمدته المُصفّاة |
TXLSAutofilterItem | Shape عن رسم زر عامل التصفية المرتبط بالعنصر، ومعيار التصفية المحمّل متاح بوصفه سجل معامل من نوع TXLSAutofilterDOPER — يختار DataType شكل المعامل ويحمل grbitSgn بتات الإشارة والأعلام — للفحص أو التعديل مع الحفاظ على التوافقية ذهابًا وإيابًا (Roundtrip) |
TXLSDataBarSpec | AxisColorو AxisIsThemeColorو AxisThemeColorIdو AxisThemeColorTintو ClearAxisThemeColor في المحور؛ وتتحكم Directionو GradientFillو NegativeBarBorderColorSameAsPositiveو NegativeBarColorو NegativeBarColorSameAsPositiveو NegativeBorderColor في مظهر الأشرطة؛ وتدير IsIndexedColorو IndexedColorIndexو ClearIndexedColor لون الشريط المفهرس حسب اللوحة |
TXLSIconSetSpec | ThresholdEqualsInclude المقارنة الشاملة أو الحصرية لكل حد من حدود الأيقونات |
TXLSCfValue | IsIndexedColor و IndexedColorIndex عن لون حد مخزن بوصفه فهرس لوحة قديمًا، ويزيل ClearIndexedColor تلك الصيغة مجددًا، وتبقى الألوان المظهرية أو الحرفية متاحة عبر أدوات الوصول القائمة |
TXLSCfValueتقبل TXLSDataBarSpecو TXLSColorScaleSpecو TXLSIconSetSpecو TXLSDxfStyle و AttachWriteGuardOwnerالخاصية TXLSCondFormatWriteGuardOwner، فتربط كائن القاعدة بمصنفه المالك لتكتسب التعديلات حارس كتابة تلقائيًا؛ وينفذ المالك AcquireWriteGuard ، التي تسلّم طريقتها الوحيدة TXLSDxfStyle القاعدة حارس كتابة المصنف. ويضيف FontColorIndex مع FontColorIsIndexed وزوجي FillFgColorIndex / FillFgColorIsIndexed و FillBgColorIndex / FillBgColorIsIndexed لألوان قواعد مفهرسة حسب اللوحة، إضافة إلى تجاوزات الـ differential-font المسماة FontNameو FontSizeو FontScheme (سلسلة فارغة، أو حجم بالنقاط، أو خانة خط سمة مثل major / minor) إلى جوار أعضاء العريض والمائل والتسطير واللون الموجودة؛ ويكتسب كل إسناد حارس الكتابة ويعلّم القاعدة متسخة لإعادة الإصدار
TXLSConnections, TXLSDataTables, and TXLSQueryTables تكشف OnAcquireWriteGuard و TXLSConnectionAcquireWriteGuardو TXLSDataTableAcquireWriteGuardعن TXLSQueryTableAcquireWriteGuard، الخطاف الذي تستخدمه مسارات التعديل لديها للحصول على IXLSWorkbookWriteGuard الخاص بالمصنف المالك قبل التعديل ولرفع توليد المصنف بعد ذلك؛ ويسجل الحارس StartGeneration، ويشير Complete إلى انتهاء الكتابة بحيث يمكن إعادة بناء الذاكرات المؤقتة التابعة
تحمل اتصالات البيانات المحفوظة وصفًا منمَّطًا: يصنف TXLSConnectionKind (xlckUnknownو xlckOdbcو xlckDaoو xlckFileو xlckWebو xlckOleDbو xlckTextو xlckAdo) الاتصال، ويسجل TXLSConnectionCredentials (xlccIntegratedو xlccNoneو xlccStoredو xlccPrompt) وضع مصادقته، وتوسم كل قيمة معامل اتصال بـ TXLSConnectionParameterValueKind (xlcpvNoneو xlcpvBooleanو xlcpvDoubleو xlcpvIntegerو xlcpvStringو xlcpvCell). ويبلّغ جداول بيانات What-if عن نوع تعريفها المخزن عبر TXLSDataTableKind
جداول بيانات What-if والتجميع المحوري
TXLSDataTable | Assignو ContainsCellو IsRoot الجدول وتفحصه؛ وتكشف Kindو FirstRowو FirstColو LastColو LastRowو AlwaysCalculateو ColumnInputColو ColumnInputRowو ColumnInputDeletedو RowInputColو RowInputRowو RowInputDeleted عن تعريف الحساب المخزن |
TXLSDataTables | Addو AddExistingو Deleteو Clearو Assignو AdjustForShiftو Offset المجموعة؛ ويحدد FindByCell و FindRoot الجدول الذي يحوي خلية معينة أو المتجذر فيها؛ وتكشف Countو Itemsو OnChange عن حالة المجموعة |
TXLSPivotCacheField | GroupBaseField و GroupParentField عن العلاقات بين حقل مُجمَّع وحقله المصدر أو حقلها الأصل |
يمكن عرض حدود مجموعات الأيقونات أو التحقق منها برمجيًا: يبلّغ XLSCfIconSetCount عن عدد الأيقونات التي يعرّفها TXLSIconSetType ، ويملأ XLSBuildCfIconGeometry بنية TXLSCfIconGeometry بالعناصر الأولية (TXLSCfIconPrimitive، من نوع TXLSCfIconPrimitiveKind: cfipPolygonو cfipEllipseو cfipRectو cfipLine) والنقاط (TXLSCfIconPoint) التي ترسم أيقونة واحدة، لتطابق المصدرات المخصصة أشكال أيقونات Excel المدمجة
التشخيص وتتبع الصيغ والتحقق
TXLSDiagnostic | Codeو NativeCodeو Messageو Severityو ExceptionClassو PartNameو RecordIdو SheetIndexو SheetNameو StreamOffset تشخيصًا واحدًا للمحلل أو الكاتب أو الحزمة |
TXLSDiagnostics | Add تشخيصًا، ويعيد Clear المجموعة إلى حالتها الأولية، ويسرد Count مع Items مدخلاتها |
TXLSDiagnosticSeverity and TXLSDiagnosticOperation | TXLSDiagnosticSeverity (xlsDiagnosticInfoو xlsDiagnosticWarningو xlsDiagnosticErrorو xlsDiagnosticFatal) تشخيصًا واحدًا، وتسمي TXLSDiagnosticOperation (xlsOperationNoneو xlsOperationOpenو xlsOperationSaveو xlsOperationCalculateو xlsOperationExport) الطور الذي أنتجه؛ وتقرأ معالجات OnDiagnostic كليهما من TXLSDiagnostic |
TXLSFormulaDebugSession | CurrentStepو DependencyCountو NodeCountو StepCount عن لقطة المصحح الحالية وأحجام تتبعها |
TXLSFormulaTracer | StepCount عن عدد خطوات التقييم المسجلة |
TXLSImportCheck | تهيئ AddRule و AddUniqueRule و AddCrossColumnRule مسندات الأعمدة والفرادة المركبة والمقارنات المُنمَّطة؛ ويعيد Check مخالفات مهيكلة من قيم ورقة العمل المخزنة وcaches الصيغ دون إعادة حساب أو تجسيد للخلايا المضغوطة؛ وتكشف HeaderRow و FirstRow و LastRow و OnVerifyCell و ViolationCount و Violation عن الحدود والدوال الردية والنتائج؛ أما Annotate و KeepOnlyViolations فعمليات صريحة لمصنف التصحيح؛ راجع مخططات التحقق من الاستيراد للأنواع والحدود وأنظمة التواريخ وهوية الصفوف وسلوك الفشل |
مخططات التحقق من الاستيراد
يتحقق TXLSImportCheck من lxImportCheck من TXLSXWorksheet مقابل قواعد يملكها التطبيق؛ ويفحص القيم القياسية المخزنة ونتائج الصيغ المخزنة، بإحداثيات ورقة العمل ذات الأساس 1 ودون أي تحويل ضمني من نص إلى رقم أو من نص إلى تاريخ أو من نص إلى Boolean
Validator := TXLSImportCheck.Create;
try
Validator.HeaderRow := 1;
Rule := Validator.AddRule(2);
Rule.Name := 'quantity';
Rule.Flags := [irRequired, irValueType, irValueRange];
Rule.ValueKind := ivkInteger;
Rule.MinimumValue := 1;
Rule.MaximumValue := 1000;
Validator.AddUniqueRule([1, 3]).Name := 'account-and-region';
Validator.AddCrossColumnRule(4, 5, icLessOrEqual).Name := 'start-before-end';
FailureCount := Validator.Check(Sheet);
if FailureCount > 0 then
Validator.Annotate(Sheet, 'Import validator');
finally
Validator.Free;
end;يبدأ HeaderRow > 0 الفحص من الصف التالي ويتقدم على FirstRow؛ وإلا فقيمة FirstRow الافتراضية 1؛ وتستخدم LastRow = 0 آخر صف مستخدم في ورقة العمل، بينما يمكن لـ LastRow الموجب تضمين خلايا غائبة دون إنشائها؛ ويجب أن تبقى الأعمدة ضمن 1 إلى 16,384 وحدود صفوف البيانات النشطة ضمن 1 إلى 1,048,576
قواعد الأعمدة والأنواع الصريحة
TlxImportColumnRule | تهيئ Column و Flags و Name و Title و MinLength و MaxLength و Pattern و ValueKind و DateSerialMode عمودًا واحدًا؛ وتهيئ MinimumValue و MaximumValue و HasMinimum و HasMaximum و MinimumInclusive و MaximumInclusive الحدود؛ ويفحص Validate تهيئة الـ schema ويجهّز PreparePattern الـ regex؛ ويعيد حملَي Check الزائدين قيمة Boolean مع رسالة خطأ واختياريًا TlxImportViolationKind |
TlxImportRuleFlags | يحتفظ irRequired و irTextLength و irPattern و irUnique و irCallback بفحوصاتها القائمة؛ ويمكّن irValueType قيمةَ ValueKind ويمكّن irValueRange الحدودَ المهيأة؛ والعمود بلا أعلام لا يُفحص |
TlxImportValueKind | يقبل ivkAny القيم القياسية المنتهية المدعومة، ويقبل ivkNumber الـ Variants العددية المنتهية، ويتطلب ivkInteger قيمة صحيحة إضافةً لذلك، ويقبل ivkDate الـ Variants التاريخية أو أرقام Excel التسلسلية الممكّنة صراحة، ويتطلب ivkBoolean قيمة Variant منطقية، ويتطلب ivkText قيمة Variant نصية |
TlxImportDateSerialMode | idsNone هو الافتراضي ويبقي القيم العددية مميزة عن التواريخ؛ ويفسّر idsExcel1900 و idsExcel1904 القيم العددية لعمود يستخدم irValueType مع ValueKind = ivkDate صراحة |
يستبدل AddRule(Column) أي قاعدة سابقة لذلك العمود ويحررها؛ وتتخطى مسندات نوع القيمة والنطاق والطول والنمط لكل قيمة القيمَ المفقودة وقيم null والسلاسل الفارغة، بينما يبلّغ عنها irRequired؛ وتحتفظ الفرادة بالسياسات المميزة الموصوفة أدناه؛ ويبقى الفراغ غير الفارغ قيمة؛ والرقم لا يصلح Boolean، والتاريخ لا يصلح رقمًا عاديًا، والسلسلة الشبيهة بالأرقام تبقى نصًا
يُمكّن إسناد MinimumValue أو MaximumValue ذلك الحد؛ ويمكن لـ HasMinimum أو HasMaximum تعطيله مجددًا؛ وافتراض مفتاحي الشمول كليهما True؛ ويجب أن تكون الحدود أرقامًا أو تواريخ مُنمَّطة منتهية، ويجب أن يكون الحدان قابلين للمقارنة ويصفان مجالًا غير فارغ؛ وترفع الحدود المعكوسة أو المفقودة أو غير المتوافقة أو الفارغة استثناءً قبل بدء التحقق من ورقة العمل
تقارن حدود الأرقام القيم العددية وتقارن حدود التواريخ التواريخ؛ وتحفظ المقارنات بين صحيحين كل بتات Int64 و UInt64؛ وتفشل قيم الفئة غير المتوافقة في فحص النطاق؛ ويستمر مسندا طول النص و regex في فحص التمثيل النصي للقيمة القياسية، ويحتفظ فحص regex بسلوك IsMatch القائم، فاستخدم مراسي مثل ^...$ عندما يجب أن يطابق النصَ كاملًا؛ ويعطّل regex غير الصالح فحص النمط الخاص به توافقيًا
قيم Excel منسقة التاريخ
يمكن لخلية مستوردة من Excel أن تحمل رقمًا تسلسليًا حتى عندما يعرض تنسيق رقمها تاريخًا؛ فاختر وضعًا تسلسليًا صراحة عندما يكون ذلك هو مخطط الاستيراد المقبول؛ ولا يؤثر الوضع في التحقق فحسب ولا يغيّر قيمة الخلية المخزنة أبدًا
Rule := Validator.AddRule(4); Rule.Flags := [irRequired, irValueType, irValueRange]; Rule.ValueKind := ivkDate; if Sheet.Workbook.Date1904 then Rule.DateSerialMode := idsExcel1904 else Rule.DateSerialMode := idsExcel1900; Rule.MinimumValue := VarFromDateTime(EncodeDate(2026, 1, 1)); Rule.MaximumValue := VarFromDateTime(EncodeDate(2026, 12, 31));
تُعلن VarFromDateTime في Variants و EncodeDate في SysUtils؛ ويجب أن تكون الأرقام التسلسلية العددية غير سالبة وأن تقع قبل 1 يناير 10000؛ وتحتفظ الأرقام الكسرية بوقتها من اليوم؛ ويرفض نظام 1900 كل رقم تسلسلي من 60 شاملًا إلى 61 حصريًا لأن ذلك المجال يرمز إلى اليوم الكبيسي الوهمي؛ ويعيّن نظام 1904 الرقم صفر إلى 1 يناير 1904
تتضمن حدود التواريخ وقت اليوم، فالحد الأقصى المضبوط على منتصف ليل 31 ديسمبر يستبعد الأوقات اللاحقة في ذلك اليوم؛ واستخدم حدًا علويًا حصريًا عند 1 يناير من السنة التالية عندما يجب قبول اليوم الأخير كاملًا؛ وتبقى التواريخ النصية مثل 10/08/2026 نصًا بصرف النظر عن الوضع التسلسلي المهيأ
الفرادة المركبة والمقارنات عبر الأعمدة
AddUniqueRule(const AColumns: array of Integer): TlxImportUniqueRule | يضيف قيد صفوف مستقلًا فوق قائمة مرتبة غير فارغة من أعمدة مميزة؛ ويحدد Name القاعدة، وتسبق Title رسالتها، وتكشف ColumnCount و Columns[Index] ذواتا الأساس الصفري عن أعضائها، وافتراض SkipIncompleteRows هو True |
AddCrossColumnRule(ALeftColumn, ARightColumn: Integer; AComparison: TlxImportComparison): TlxImportCrossColumnRule | يضيف مقارنة صفّ نفسه مع LeftColumn و RightColumn للقراءة فقط، و Comparison و Name و Title و SkipBlankValues القابلة للتحرير، وافتراض الأخيرة True |
TlxImportComparison | تختار icEqual و icNotEqual و icLess و icLessOrEqual و icGreater و icGreaterOrEqual العلاقة؛ وتقارن الأزواج العددية وأزواج التواريخ قيمها، وترتب الأزواج المنطقية False قبل True، وتقارن أزواج السلاسل وحدات كود UTF-16 ترتيبيًا حساسًا لحالة الأحرف |
تحتفظ المفاتيح المركبة بنوع Variant الدقيق لهوية كل عضو ونصه؛ فـ Integer(1) و Double(1) والسلسلة '1' وقيمة Boolean والتاريخ أعضاء مميزة؛ ولا يوجد طي حالة ولا تطبيع Unicode ولا تحليل حسب الـ locale ولا التباس فواصل؛ وتبقى التوليفات مثل ('ab', 'c') و ('a', 'bc') مختلفة؛ وتبدأ كل تمريرة تحقق فهرس صفوف جديدًا
عندما تكون SkipIncompleteRows = True، يستبعد العضو المفقود أو null أو السلسلة الفارغة ذلك الصف من فرادة الصفوف؛ وإسناد False يضمّن تلك الأعضاء بهويات Variant الأصلية؛ ويبلّغ التكرار عن عمود الصف الأول بوصفه عنوان الخلية وأول صف متطابق عبر FirstDuplicateRow
يحتفظ irUnique أحادي العمود القائم بسلوك المطابقة النصي غير الحساس لحالة الأحرف ويتخطى القيم المفقودة أو null؛ واستخدم AddUniqueRule([Column]) عندما تُطلب هوية مُنمَّطة صارمة لعمود واحد
لا تحوّل المقارنات عبر الأعمدة السلاسل إلى أرقام ولا الأرقام إلى Boolean ولا الأرقام العادية إلى تواريخ أبدًا؛ وتفشل الفئات المختلطة غير المتوافقة حتى مع icNotEqual؛ وتميز مقارنات السلاسل Unicode المركّب من المفكك، وتحفظ محارف null المضمنة، وتستخدم ترتيب البادئة الأقصر أولًا؛ وعندما تكون SkipBlankValues = False، ينتج أي معامل فارغ مخالفة عبر الأعمدة
النتائج المهيكلة ومصنفات التصحيح
TlxImportViolation | تحدد Row و Col و SheetName و Address الخلية، بـ Address بتدوين A1؛ وتحمل ValueText و ErrorText معلومات العرض؛ ويحدد RuleName و Kind القاعدة المهيأة وفئة الفشل؛ ويحدد RelatedColumn المعامل الثاني لفشل عبر الأعمدة ويحدد FirstDuplicateRow الصف الأصلي لإخفاقات الفرادة |
TlxImportViolationKind | تميز ivRequired و ivTextLength و ivPattern و ivUnique و ivCallback و ivValueType و ivValueRange و ivCellError و ivFormulaCacheMissing و ivCompositeUnique و ivCrossColumn فئاتِ الفشل المدعومة |
يعيد Check(Sheet) عدد المخالفات، ويسرد ViolationCount مع Violation(Index) ذي الأساس الصفري التقرير؛ وتبلّغ قاعدة العمود الواحد عن أول مسند فاشل لديها، بينما يمكن لقواعد الصفوف والمقارنات المهيأة باستقلال إضافة مخالفات أخرى للخلية نفسها؛ وأسند قيم Name ذات معنى عندما يحتاج المستدعون معرفات قواعد تطبيق مستقرة
تتحقق خلايا الصيغ باستخدام قيمها المخزنة مؤقتًا؛ ويبلّغ الصيغة بلا نتيجة مخزنة مؤقتًا عن ivFormulaCacheMissing، وتبلّغ النتيجة الخطأ عن ivCellError؛ وأعد الحساب صراحة قبل الفحص عندما تُطلب نتائج صيغ طازجة؛ ولا يصل التحقق إلى مصادر خارجية ولا يغيّر تعريفات الصيغ ولا يقيّم صيغًا غير مخزنة مؤقتًا
يحتفظ OnVerifyCell بتوقيع الـ callback TlxImportVerifyCell ويُشغَّل بعد نجاح مسندات الأعمدة المنطبقة وفحوصات الفرادة؛ ويعيد Boolean ويمكنه ضبط رسالة خطأ تطبيقية؛ ويجب أن تبقي الـ callbacks المصنفَ ومخطط التحقق دون تغيير، وتُرفض كتابات المصنف بعقد القراءة؛ وتنتشر استثناءات الـ callbacks ويُحرَّر العقد للعمليات اللاحقة
لا يعلّق Check أبدًا ولا يحذف صفوفًا ولا يجسد قيمًا مضغوطة؛ واستخدم Annotate بعد الفحص لتطبيق خطوط حمراء وإلحاق نص الخطأ بالتعليقات القائمة، أو استدعِ KeepOnlyViolations صراحة لإزالة الصفوف غير المخالفة وإنشاء مصنف تصحيح؛ وتعدّل هاتان الطريقتان ورقة العمل المزوَّدة، فاستدعِيهما على المصنف المقصود بعد مراجعة التقرير
يستعير التحقق ورقة العمل والمصنف للاستدعاء المتزامن؛ ولا يتبنى ملكية كائنات المستدعي ولا يشترط مصنفًا مملوكًا لواجهة؛ ويحمي عقد قراءة لقطات الخلايا المخزنة ذات الصلة والوصول إلى caches الصيغ المخزنة طوال الفحص
سياسات حفظ الارتباطات الخارجية
TXLSExternalLinkUpdateMode = (xluPromptUser, xluNever, xluAlways);
property IXLSWorkbook.SaveExternalLinkValues: Boolean;
property IXLSWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
property TXLSXWorkbook.SaveExternalLinkValues: Boolean;
property TXLSXWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
xluPromptUser؛ ويغيران xluNever و xluAlways تفضيل التحديث المخزن في المصنف فحسب، ولا يسمحان قط بما يشرع وصولًا إلى ملف خارجي أو شبكة
تدقيق الحساب وتلميحات المصنف
function TXLSWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.RunCalculationAudit(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.FormulaIsVolatile(Formula: WideString): Boolean;
function TXLSWorkbook.AuditOverlayHash(SheetIndex, Row, Col: Integer): Integer;
function TXLSWorkbook.AuditOverlayRead(SheetIndex, Row, Col: Integer; var Value: Variant): Boolean;
procedure TXLSWorkbook.AuditOverlayWrite(SheetIndex, Row, Col: Integer; const Value: Variant);
procedure TXLSWorkbook.AuditOverlayClear;
TXLSCalculationAuditIssueKind = (xlcaiCacheMismatch, xlcaiParseFailure,
xlcaiMissingFunction, xlcaiMissingName, xlcaiUnsupportedArguments,
xlcaiCircularReference, xlcaiExternalReferenceDenied,
xlcaiExternalReferenceMissing, xlcaiDataTableSkipped, xlcaiCancelled,
xlcaiInternalFailure);
TXLSCalculationAuditIssue = record
Kind: TXLSCalculationAuditIssueKind;
SheetIndex: Integer;
SheetName: WideString;
Row: Integer;
Col: Integer;
Formula: WideString;
Symbol: WideString;
Expected: Variant;
Actual: Variant;
ResultCode: Integer;
Stack: WideString;
ExternalTarget: WideString;
end;
TXLSCalculationAuditIssues = array of TXLSCalculationAuditIssue;
TXLSRecalcAuditProgress = procedure(ASender: TObject;
ACurrent, ATotal: Integer; var ACancel: Boolean) of object;
property WorkbookCodeName: WideString;
property CalculationThreadMode: TXLSCalculationThreadMode;
property ForceFullCalculationState: TXLSOptionalBooleanState;
property RefreshAllOnLoadState: TXLSOptionalBooleanState;
RecalcAndVerify إخفاقات رموز الصيغ وعدم تطابق القيم المخزنة في فئات مهيكلة مستقرة مع إحداثيات ورقة العمل والصيغ والرموز والقيم المتوقعة والفعلية واقتطاع محدود، تاركًا الذاكرات المؤقتة ودلالات المصنف دون مساس. ويجري RecalcAndVerifyEx التدقيق العميق: يقيّم كل صيغة مرة واحدة عبر مخطط التبعيات في طبقة نتائج معزولة لتقرأ الخلايا التابعة من هذا المسار بدل الذاكرات القديمة، ويصنف إخفاقات التقييم (وسائط غير مدعومة، مراجع دائرية، مراجع خارجية مرفوضة أو مفقودة، جداول بيانات متجاوزة، إلغاء، إخفاقات داخلية) برموز نتائج، ويسجل سلسلة استدعاء محدودة لكل إخفاق، ويحترم ميزانية مشكلات ومستقبِل تقدم/إلغاء، ويبقى للقراءة فقط ما لم تثبّت ApplyResults القيم المعاد حسابها ذريًا بعد مسار ناجح كامل على بنية مصنف غير متغيرةAbsoluteTolerance و RelativeTolerance في الإبلاغ عن عدم التطابق، لا في قيم الحساب الوسيطة أو تطبيق الذاكرة المؤقتة الصريح
بالنسبة للنتائج العددية، يتطلب عدم التطابق تجاوز الفرق المطلق حد AbsoluteTolerance ، وعند تمكين السماحية النسبية تجاوز RelativeTolerance * max(abs(Expected), abs(Actual))
كذلك
التساوي عند أي من الحدين مقبول؛ وتدخل القيم المتغيرة مع ذلك طبقة تراكب التدقيق لترى الصيغ التابعة الحساب الحالي، ويثبّت ApplyResults تلك القيم حتى لو كان فرقها غير قابل للإبلاغ
التدقيق للقراءة فقط لا يغيّر الذاكرات المؤقتة المخزنة أبدًاTXLSCalculationAuditReport.Issues هو TXLSCalculationAuditIssue؛ ويختار Kind إحدى فئات xlcai* ، ويحمل Expected / Actual القيمتين المقارنتين لحالات عدم تطابق الذاكرة المؤقتة، ويمثل Stack سلسلة الاستدعاء المحدودة للتقييم معروضة بوصفها Sheet!A1 > Sheet!B2 (الإطار الخارجي أولًا)، ويصف ExternalTarget المصنف الخارجي لمشكلات المراجع الخارجية. و TXLSRecalcAuditOptions.OnProgress مستقبِل من نوع TXLSRecalcAuditProgress يستقبل تقدم ACurrent / ATotal للعُقد ويمكنه ضبط ACancel لإيقاف التدقيق عند حدود العقدة التالية بمشكلة xlcaiCancelled واحدةRunCalculationAudit هو مدخل المحرك الذي تفوض إليه مغلفات التدقيق على مستوى المصنف، ويقبل سجل الخيارات نفسه. ويبلّغ FormulaIsVolatile عما إذا كانت الصيغة ستفرض إعادة حساب في كل مسار (استدعاءات مثل NOWو RANDو TODAYو OFFSETو INDIRECTأو مرجع غير قابل للحل)AuditOverlayWrite قيمة بديلة لخلية واحدة (فهرس ورقة بأساس 1، وصف وعمود بأساس صفر وفق اصطلاح الحاسبة)، ويستعلم عنها AuditOverlayRead و AuditOverlayHash ، ويفريغها AuditOverlayClear . وتعود القيم المتراكبة من دوال قراءة قيم الخلايا العادية، فيلاحظها إعادة الحساب والتدقيق العميق دون تعديل خلايا ورقة العمل؛ ومسح التراكب يعيد القيم المخزنةحالة صيغ الجداول وIME
property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
SaveExternalLinkValues على False إلى إسقاط سجلي XCT و CRN الكلاسيكيين أو الشجرة الفرعية sheetDataSet للكتاب الخارجي في XLSX، مع الاحتفاظ بأهداف الارتباطات وأسماء أوراق العمل والأسماء المعرفة الخارجية والعلاقات ومراجع الصيغ وXML غير المعروف والذاكرة المؤقتة في الذاكرة؛ ويمكن لاستعادة الخاصية إلى True على المصنف نفسه إجراء تسلسل لذلك المخزن المحتفظ به مرة أخرى
فحص لوحات مهام الوظائف الإضافية للويب وإزالتها
function IXLSWorkbook.HasWebAddinTaskPanes: Boolean;
function IXLSWorkbook.WebAddinTaskPaneCount: Integer;
function IXLSWorkbook.RemoveWebAddinTaskPanes: Integer;
function TXLSXWorkbook.HasWebAddinTaskPanes: Boolean;
function TXLSXWorkbook.WebAddinTaskPaneCount: Integer;
function TXLSXWorkbook.RemoveWebAddinTaskPanes: Integer;
1303 وترفع استثناء قبل التعديل، بينما يعيد Classic XLS وODS القيم Falseو 0و -1 دون مسح الحزمة
سياسة عرض كائنات المصنف
TXLSObjectDisplayMode = (xlsodmShowAll, xlsodmShowPlaceholders,
xlsodmHideAll);
property IXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSXWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSPaginationModel.ExportObjectPlaceholders: Boolean;
property TXLSPDFExport.ExportObjectPlaceholders: Boolean;
property TXLSSvgExport.ExportObjectPlaceholders: Boolean;
property TXLSPageImageExporter.ExportObjectPlaceholders: Boolean;
property TXLSPrintDocument.ExportObjectPlaceholders: Boolean;
property TXLSXHtmlExportOptions.ExportObjectPlaceholders: Boolean;
workbookPr.showObjects؛ وتعود القيم الغائبة إلى xlsodmShowAll، وتبقى حمولات Classic المحجوزة غير المماسة ورموز XLSX غير المدعومة بلا فقدان، وتصدر التعيينات الصريحة القيم القانونية فقط
ExportObjectPlaceholders السياسة منخفضة الكلفة نفسها من دون فك ترميز حمولات الصور أو بناء مشاهد المخططات
xlsodmHideAll جمع الرسومات وتوسيع النطاقات المدفوع بالكائنات قبل بدء العرض؛ وتنقل عملية تحويل المصنف الحالات الثلاث جميعًا، ويكتب ODS رسومات كاملة لوضع العناصر النائبة ويحذف مخرجات الرسم والوسائط في وضع الإخفاء الكامل، وتبقى خلفيات أوراق العمل مستقلة
قيم معايرة العرض واللقطات
TXLSRenderCalibration = record
WidthCorrection: Double;
HeightCorrection: Double;
LineSpacing: Double;
CellMarginFactor: Double;
ScreenScaling: Integer;
MeasurementDpi: Integer;
end;
function XLSDefaultRenderCalibration: TXLSRenderCalibration;
function XLSValidateRenderCalibration(const AValue: TXLSRenderCalibration;
out AInvalidField: TXLSRenderCalibrationField): Boolean;
1و 1و 1و 1و 100و 96؛ ويجب أن تكون تصحيحات العرض والارتفاع أكبر من صفر وأقل من اثنين، ويحصر تباعد الأسطر في (0, 4]، وهوامش الخلايا في [0, 4]، وتحجيم الشاشة في [100, 500] بالمائة، وDPI للقياس في [36, 2400]RenderCalibrationو CaptureRenderCalibrationو ResetRenderCalibration ؛ ويتحقق تعيين السجل الكامل قبل التعديل، ويعيد كل التقاط لقطة قيم مستقلة غير قابلة للتغيير بالاتفاق لعملية عرض واحدة
هندسة العرض وقياس الخطوط
TXLSRenderGeometryBackend = (xlsrgbAutoFit, xlsrgbPagination, xlsrgbPdf,
xlsrgbSvg, xlsrgbBitmap, xlsrgbPrintPreview, xlsrgbViewer, xlsrgbHtml);
TXLSRenderFont = record
Name: WideString;
Size: Double;
Styles: TXLSRenderFontStyles;
Charset: Byte;
end;
function CreateXLSRenderGeometry(
const ACalibration: TXLSRenderCalibration;
AWorkbookGeneration: UInt64;
ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
property TXLSHTMLExport.RenderGeometry: IXLSRenderGeometry;
property TXLSXHtmlExportSession.RenderGeometry: IXLSRenderGeometry;
IXLSRenderGeometry مالك لمعايرة واحدة غير قابلة للتغيير وتوليد مصنف وهوية واجهة خلفية وخدمة قياس وذاكرة مقاييس محودة محلية العملية؛ ويستخدم CreateXLSRenderGeometry الـ GDI، بينما يستخدم CreateXLSPortableCairoRenderGeometry في lxPortableCairo بايتات خطوط صريحة مع FreeType/HarfBuzz على Linux أو macOS الأصليين؛ ويعيد MeasureText العرض بالبكسل والارتفاع وارتفاع السطر والصعود والهبوط وعدد الأسطر، بينما يوفر MaximumDigitWidthPixelsو ColumnWidthToPixelsو PixelsToColumnWidthو PointsToPixelsو PixelsToPointsو UsableCellWidthPixels تحويلات الهندسة المشتركة
MarkSheet ، بينما يلتقط TXLSPaginationModel.Build خدمة واحدة لـ RenderBackendالمحدد؛ وتختار نقاط دخول PDF وSVG والصور النقطية ومعاينة الطباعة وعارض المصنفات وHTML واجهتها الخلفية الخاصة قبل الإخراج، ولا يمكن لتغيير معايرة المصنف تعديل لقطة قائمة، ولا تكتب المخرجات أبعاد ورقة العمل
xlsrgbHtml جديدة، بينما تلتقط جلسة TXLSXHtmlExportSession التزايدية الخدمة مرة واحدة في BeginExport وتعيد استخدام تلك اللقطة لجميع الأوراق؛ ويكشف كل من المصدرين الخدمة المحتجزة عبر RenderGeometry لأغراض تشخيص المعايرة والذاكرة المؤقتة
IXLSRenderGeometry للقراءة فقط WorkbookGenerationو CacheCapacityو CacheEntryCount عن التوليد المرتبط وامتلاء الذاكرة المؤقتة لأغراض التشخيص، ويعيد ImplicitWidthMaximumDigitWidthPixels قياس عرض الرقم الكامن وراء محاكاة العرض الضمني للأعمدة
MeasureText سجل TXLSRenderTextMetrics (العرض بالبكسل والارتفاع وارتفاع السطر والصعود والهبوط وعدد الأسطر) من TXLSRenderFont يكون عضو Styles فيه مجموعة أعلام TXLSRenderFontStyle (غامق ومائل وتسطير وشطب)
الاستيراد وتوليد الشيفرة والمقارنة والمراقبة
TXLSHTMLImport | LoadFromHTML محتوى جدول HTML من تدفق أو ملف إلى ورقة عمل، مع إحداثيات بداية اختيارية واختيار جدول وفاصل عشري |
TXLSCodeGen | Language (من نوع TlxCodeGenLanguage: lcgDelphi أو lcgCppBuilder) لهجة الشيفرة المصدرية للعبارات المولدة، ويكتب GenerateToList شيفرة المصنف المولدة إلى قائمة سلاسل نصية، ويوسع TlxCodeGenOptions المخرجات بالدمجات وعرض الأعمدة أو تنسيقات الأرقام (cgoMergesو cgoColumnWidthsو cgoNumberFormats؛ وتُصدر الأوراق والخلايا دائمًا) |
TXLSXWorkbookCompare | يقارن Compare الخلايا المخزنة المُنمَّطة ونص الصيغ ووجود الأوراق والدمجات؛ ويضيف Options caches الصيغ وأنماط الخلايا الأساسية وهندسة الصفوف أو الأعمدة، وتهيئ SetNumericTolerance تساوي الأرقام، وتكشف Count و Diff و Report عن النتائج المرتبة؛ راجع مقارنة المصنفات |
TXLSFileMonitor | IntervalMs فترة الاستطلاع ويختار SynchronizeEvent التسليم المتزامن للدالة الردية؛ ويمكن للدالة الردية OnFileChanged أن تعطّل المراقب أو تدمره، أو تغيّر FileName لبدء مراقبة ملف آخر |
TXLSCSVLoader and TXLSCSVSaver | يحلّل المحمّل النص المحدد بمسافات فاصلة إلى شبكة من Variant في الذاكرة — تملؤها ParseFile و ParseStream وتقرؤها CellValueو RowCountو ColCount — مع فاصل يُكتشف تلقائيًا (ValueSeparator) وترميز (TXLSCsvEncoding: ANSI النظام أو UTF-16 أو UTF-8) وترقية أنواع اختيارية يضبطها DetectTypes ومدخلات ColumnTypes لكل عمود (TXLSCsvColumnType: auto أو text أو number أو date أو boolean أو skip)؛ وتضبط SkipRowsو AutoTrimو LocaleTolerantNumbersو FieldWidths معالجة العرض الثابت والإعدادات المحلية. ويكتب TXLSCSVSaver.SaveAs الشبكة من جديد بعلامات اقتباس وفق RFC 4180، ويفرض QuoteAllStrings الاقتباس؛ ويشتق TXLSTSVSaver من الحافظ لمخرجات مفصولة بعلامات الجدولة |
مقارنة المصنفات
يقارن TXLSXWorkbookCompare في lxCompare نسختين من TXLSXWorkbook دون إعادة حساب الصيغ أو تعديل أي من المصنفين؛ وتُزاوج الأوراق بالاسم غير الحساس لحالة الأحرف، ولا ينتج عن تغيير ترتيب الأوراق وحده أي اختلاف
قيمة Options الافتراضية فارغة وافتراض السماحيتين صفر؛ ويبلّغ المقارنة الافتراضية عن الأوراق المضافة أو المحذوفة، والخلايا المخزنة المضافة أو المحذوفة، والقيم الحرفية المُنمَّطة المتغيرة، ونص الصيغ المتغير، والنطاقات المدمجة المضافة أو المحذوفة
تميز مقارنة الحرفيات الأرقام والنص وقيم Boolean والتواريخ والأخطاء والفراغات: فالرقم 1 يختلف عن النص '1'، وقيمة Boolean تختلف عن تهجئتها النصية، وتحتفظ التواريخ بنوعها الخاص، وتقارن الأخطاء برمز الخطأ المخزن لديها؛ وتتساوى أنواع التخزين العددية ذات القيم المتساوية، بينما تبقى قيم Int64 المختلفة مميزة في المقارنة التامة
lcoFormulaCachedResults | بالنسبة للخلايا ذات نص الصيغة المتطابق، يقارن النتيجة المخزنة مؤقتًا القائمة ويميز الذاكرة المؤقتة المفقودة أو الملغاة عن المتاحة؛ وتتساوى الذاكرات المحملة والمحسوبة ذات القيمة المُنمَّطة نفسها |
lcoCellStyles | يقارن الأنماط الأساسية المحلولة عند إحداثيات الخلايا المخزنة المتطابقة، بما يشمل الخطوط والتعبئات والتدرجات والحدود والمحاذاة وتنسيقات الأرقام وحماية الخلايا؛ ولا ينتج عن ترتيب إدراج مجمّع الأنماط غير ذي الصلة أي اختلافات، وتُحل ألوان السمة مقابل سمة كل مصنف الحالية |
lcoAxisGeometry | يقارن ارتفاعات الصفوف الفعلية وعرض الأعمدة وأعلام الإخفاء ومستويات المخطط التفصيلي وأعلام الطي وافتراضات ورقة العمل؛ والحجم الصريح المساوي للافتراضي الفعلي يتساوى مع الحجم الضمني |
lcoDefinedNames | يقارن الأسماء ذات نطاق المصنف وورقة العمل وتعريفات صيغها ورؤيتها وتعليقاتها وأعلام الماكرو؛ ويتبع النطاق أسماء أوراق العمل، ولا ينتج عن ترتيب الإدراج اختلافات |
lcoDataValidations | يقارن تعريفات التحقق بترتيبها المخزن، بما يشمل نطاقات الهدف المطبَّعة والصيغ والمعاملات والمطالبات ورسائل الأخطاء وأعلام التحكم؛ ولا ينتج عن تغيير ترتيب نطاقات الهدف داخل تعريف واحد أي اختلاف |
lcoConditionalFormats | يقارن تعريفات التنسيق الشرطي بترتيبها المخزن، بما يشمل الأولوية الفعلية وسلوك التوقف عند الصحة ونطاقات الهدف والصيغ والأنماط التفاضلية وإعدادات مقياس الألوان وشريط البيانات ومجموعة الأيقونات المدعومة؛ وتُحل معرفات مجمّع الأنماط واللوحة المفهرسة إلى قيمها الدلالية |
lcoTables | يزاوج الجداول بالاسم ويقارن النطاقات والترويسات والإجماليات وإعدادات النمط والتعليقات وأسماء الأعمدة والتسميات والصيغ وأعلام المصفوفات والأسماء الفريدة وأسماء الاتصالات ومعايير التصفية وشروط الفرز؛ ولا تنتج عن معرفات الجداول ومعرفات الأعمدة وترتيب الإدراج اختلافات، بينما تُحل معرفات مرشح الألوان والنمط التفاضلي للفرز إلى المظهر |
lcoDrawings | يقارن تعريفات الرسم المُنمَّطة بترتيب الرسم، محافظًا على ترتيب أبناء المجموعة وترتيب مجموعات رسم المخطط؛ وتغطي التعريفات القياسية المدعومة الصور ومربعات النص والمخططات والمجموعات وعروض Slicer المُنمَّطة الكاملة وعروض Timeline المُنمَّطة، مع رفع عقد الرسم الـ opaque أو غير المدعومة استثناءً EXLSSemanticSnapshot |
lcoBlankStyleRegions | يقارن الأنماط الأساسية المحلولة عبر الإحداثيات الخالية من خلية مخزنة في الطرفين، بما يشمل افتراضات ورقة العمل وتراكبات الأنماط الظاهرية؛ وتتساوى تقسيمات المستطيلات المكافئة، وتندمج التغييرات المتجاورة المتساوية في مستطيلات دون تجسيد الخلايا |
lcoRichTextRuns | يقارن خطوط runs ونصوصها الفعلية عند خلايا النص المخزنة المتطابقة، ويرث الخط الأساسي لخصائص run المفقودة، ويتجاهل runs الفارغة، ويدمج runs المتجاورة ذات الخطوط الفعلية المتساوية؛ والنص العادي يطابق run نص غني مكافئًا بالخط الافتراضي |
lcoPivotTables | يزاوج تعريفات PivotTable المُنمَّطة بالاسم ويقارن ارتباطات المصدر والتخطيط والحقول وأعضاء العرض المرتبين وتجميعات البيانات والمرشحات ومراجع التجميع والتعريفات المحسوبة والأنماط وأعلام التجسيد الأصلي؛ وتُحل معرفات الذاكرات المؤقتة والأعضاء المشتركين إلى هويات المصادر وقيمها المُنمَّطة |
lcoPivotCaches | يزاوج تعريفات PivotCache المحلية المُنمَّطة حسب هوية المصدر ويقارن metadata التحديث وmetadata الحقول والتسميات والنطاقات المجمعة ومجالات الأعضاء المشتركين غير المرتبة وقيم السجلات المُنمَّطة المرتبة؛ ويبقى الأعضاء العددية والنصية والمنطقية والتواريخ والأخطاء والفراغات مميزة، وتحتفظ التواريخ بدقة binary64، ولا ينتج عن معرفات الذاكرات المؤقتة وترتيب خانات الأعضاء المشتركين اختلافات |
lcoSlicerState | يزاوج عروض Slicer المسماة وذاكراتها المؤقتة، بما يشمل ارتباطات أعمدة الجداول أو Pivot غير OLAP وأسماء PivotTable المتصلة وتحديدات الأعضاء المُنمَّطة وإعدادات التصفية المتقاطعة والفرز والتسمية التوضيحية وموضع التمرير وتخطيط الأعمدة والأبعاد والنمط وأعلام القفل والتسمية التوضيحية وهندسة المرساة؛ وتحل الارتباطات معرفات الجدول والعمود والورقة والذاكرة المؤقتة |
lcoTimelineState | يزاوج عروض Timeline المُنمَّطة المسماة وذاكرات non-OLAP المحلية، بما يشمل ارتباطات حقل المصدر و PivotTable المتصل وتحديد التاريخ النشط والتسمية التوضيحية والمستوى وحدود ورقة العمل؛ وتحذف التحديدات غير النشطة نقاط التاريخ غير المستخدمة |
نوع Options هو TlxCompareOptions، مجموعة من TlxCompareOption؛ ويمكّن كل خيار اختلافاته في المقارنة الافتراضية
يتحقق SetFeatureLimits(MaxBytes, MaxItems) من كلا الحدين الموجبين قبل تغيير أي من الإعدادين؛ وافتراض MaxFeatureBytes هو 64 MiB وافتراض MaxFeatureItems هو 1,000,000، وتحفظ أدوات الضبط الفردية التحقق الذري نفسه
تغطي ميزانيات الميزات البايتات القياسية المنفصلة المجمعة والمدخلات المعدودة من كلا المصنفين، بما يشمل runs النص الغني وعقد XML للمرشحات وحقول Pivot وأعضاء المجالات وقيم السجلات واتصالات Slicer أو Timeline؛ ويفحص القرّاء العدّادات ومدخلات النص الكبيرة قبل بناء XML الأصلي، ويفرضون تدفقات إخراج محودة، ويرفعون EXLSXSemanticBudget عند تجاوز حد
يتحقق SetNumericTolerance(AbsoluteTolerance, RelativeTolerance) من كلا الوسيطين قبل تغيير أي من الإعدادين؛ ويجب أن يكونا منتهيين وغير سالبين، وتستخدم أدوات ضبط AbsoluteTolerance و RelativeTolerance الفردية التحقق نفسه
تتساوى القيم الحرفية العددية وقيم الذاكرة المؤقتة العددية عندما يكون فرقهما المطلق في حدود AbsoluteTolerance أو يكون فرقهما نسبةً إلى القيمة المطلقة الأكبر في حدود RelativeTolerance؛ ويحتفظ عتبة الصفر بالتساوي التام، ويتجنب الحساب النسبي الفيض للقيم المتعاكسة المتطرفة، ولا تحوّل السماحية النص ولا تنطبق على التواريخ أو الأنماط أو الهندسة
تضبط LeftName و RightName أسماء عرض اختيارية تستخدمها أسطر Report، وافتراضهما left و right؛ وتؤثر الأسماء في التقرير فقط، لا في إزواج الأوراق أو المقارنة
Comparer := TXLSXWorkbookCompare.Create;
try
Comparer.Options := [lcoFormulaCachedResults, lcoCellStyles,
lcoAxisGeometry];
Comparer.SetNumericTolerance(0.001, 0.000001);
DifferenceCount := Comparer.Compare(LeftWorkbook, RightWorkbook);
for I := 0 to DifferenceCount - 1 do
begin
Entry := Comparer.Diff(I);
ReportLines.Add(Entry.Describe);
end;
finally
Comparer.Free;
end;يعيد Compare عدد الاختلافات، ويقرأ Count ذلك العدد لاحقًا، ويستخدم Diff(Index) الفهرسة ذات الأساس الصفري لإعادة TlxCompareDiff مملوك للمقارن؛ واحتفظ بالمقارن أثناء قراءة مدخلاته، وأعد اكتساب المدخلات بعد مقارنة ناجحة أخرى
يوفر كل مدخل Kind و Sheet و Row و Col ذواتي الأساس 1 حيثما ينطبق، و Ref و LeftText و RightText وقيم LeftKind / RightKind المُنمَّطة؛ وتحتوي TlxCompareValueKind على lcvNone و lcvBlank و lcvNumber و lcvText و lcvBoolean و lcvDateTime و lcvError و lcvFormula، وتستخدم lcvNone للطرف الغائب أو لاختلاف غير قيمي
يحتفظ TlxCompareKind بـ lckSheetAdded و lckSheetRemoved و lckCellAdded و lckCellRemoved و lckValueChanged و lckFormulaChanged و lckMergeAdded و lckMergeRemoved، ويضيف lckFormulaCacheChanged و lckStyleChanged و lckRowGeometryChanged و lckColumnGeometryChanged
تحمل اختلافات الأنماط بصمات أنماط قياسية مستقرة في LeftText و RightText؛ وتحمل اختلافات الهندسة الحجم المقارن وحالة الإخفاء والمخطط التفصيلي والطي، مع Ref محددًا مجال المحور المتصل المتأثر، و Row مضبوطًا على أول صف و Col على صفر للصفوف، أو Col مضبوطًا على أول عمود و Row على صفر للأعمدة
تستخدم اختلافات الميزات lckDefinedNameChanged أو lckDataValidationChanged أو lckConditionalFormatChanged أو lckTableChanged أو lckDrawingChanged أو lckPivotTableChanged أو lckPivotCacheChanged أو lckSlicerChanged أو lckTimelineChanged؛ وتكون Change إحدى lccChanged و lccAdded و lccRemoved، ويحمل كل طرف حاضر بصمة تعريفه القياسية بينما يحمل الطرف الغائب سلسلة فارغة
يحدد lckRichTextChanged تعريف run متغيرًا عند إحداثيات خليته ويحمل بصمات runs القياسية في LeftText و RightText؛ وتنطبق السماحية العددية على الحرفيات الخلوية وcaches الصيغ، بينما تقارن تعريفات الميزات المُنمَّطة تامًا
تحدد مراجع الميزات أسماء ذات نطاق أو أسماء جداول، أو تستخدم مواضع تتابع ذات أساس 1 لتعريفات التحقق والتنسيق الشرطي والرسم؛ ويمكن لإدراج ميزة مرتبة أو نقلها تغيير عدة مواضع، بينما تحمل مدخلات الأسماء على مستوى المصنف قيمة Sheet فارغة
يحدد lckBlankStyleRegionChanged مستطيلًا فارغًا متغيرًا عبر Row و Col و LastRow و LastCol الشاملين و Ref بصيغة A1؛ وتُعالج الإحداثيات المخزنة بمقارنة الخلايا العادية و lcoCellStyles، فمكّن خياري الأنماط معًا لفحص الخلايا المخزنة والمناطق الفارغة معًا
يهيئ Describe مدخلًا واحدًا، بينما يلحق Report(List) المدخلات المهيأة بـ TStrings مملوك للمستدعي؛ ويتضمن تغيير القيمة المُنمَّطة تسميات النوع عندما تختلف الأنواع، وترتب النتائج حسب اسم الورقة والصف والعمود ونوع الاختلاف والمرجع بدل ترتيب إدراج الخلايا
تحمل المقارنة عقود قراءة وتمشي عبر الخلايا المخزنة بوصفها لقطات cursors منفصلة وتحتفظ بالتخزين المضغوط؛ وتقسم الهندسة حدود metadata المخزنة وامتدادات الصفوف المكررة المضغوطة، بينما يمسح مقارنة أنماط الفراغ حدود المستطيل النشط وحدود الخلايا المخزنة دون مسح شبكة مستطيلة بمليون صف؛ وينمو العمل مع الميزات المخزنة وتقاطعات المناطق والاختلافات المبلغة
تحفظ المقارنة الفاشلة النتيجة الناجحة السابقة؛ ويحفظ إسناد سماحية غير صالحة الإعدادات والنتيجة القائمتين أيضًا، بينما يمسح تمرير مصنف nil النتيجة ويعيد صفرًا
تغطي هذه المقارنة محتوى الخلايا المخزن لواجهة XLSX وتعريفات الميزات المُنمَّطة المختارة؛ وتُطبَّع تهجئة صيغ الأسماء والتحقق والتنسيق الشرطي والجداول والمخططات عبر محلل الصيغ الدلالي، بينما تحتفظ صيغ Pivot المحسوبة بنص تعريفها المخزن
تقبل مرشحات الجداول أشكال المرشحات المخصصة وقوائم القيم وتجميع التواريخ والألوان والأيقونات والديناميكية وأعلى-عدد المدعومة وشروط الفرز؛ وتُطبَّع ترتيب أعمدة التصفية المستقلة ومدخلات مجموعات القيم، وتُطبَّع افتراضات Boolean والتهجئات العددية، ويبقى ترتيب شروط الفرز مهمًا
يحل مقارنة Pivot و Slicer و Timeline المُنمَّط مصادر أوراق العمل المحلية المدعومة وارتباطات non-OLAP دون تحديث أو تقييم للتوفر؛ وتكون تلميحات توفر Slicer الأصلية metadata عرض مشتقة، بينما تُقارن تحديدات الأعضاء وmetadata الفرز الأصلية المعترف بها
ترفع خصائص الرسم الأصلية الـ opaque ونماذج Pivot الثنائية غير المكتملة ومصادر Pivot الخارجية أو OLAP وسجلات PivotTable التكميلية الخام وXML الامتدادات وXML المرشحات المجهولة وسمات أو أبناء امتدادات Slicer أو Timeline غير المنمذجة استثناءً EXLSSemanticSnapshot؛ ولا يعني حفظ تلك البيانات تكافؤًا دلاليًا
يتحقق أيضًا من XML الأصلي المحفوظ قبل مقارنة الإسقاط المُنمَّط مجموعة مختارة من ميزات PivotTable و PivotCache المستوردة، بما يشمل metadata الحقول المتداخلة وسجلات الذاكرة المؤقتة؛ وتفشل namespaces وسمات وأبناء وحمولات امتدادات مجهولة صراحةً ضمن حدود الميزات التعاونية نفسها، بينما تبقى ارتباطات ذاكرات Slicer المؤقتة المنمذجة مدعومة
يكشف TSimpleDomNode.RawName عن الـ QName الأصلي للعنصر بجوار Name المطبَّع من القارئ، بما يتيح فحصًا حساسًا لـ namespaces دون تغيير مطابقة أسماء المحلل القائمة
تبقى إعدادات المصنف وmetadata الحزمة الـ opaque خارج المقارنة؛ ولا تقيّم مقارنة الأنماط الأساسية مظهر التنسيق الشرطي أو نمط الجدول، وتحفظ مقارنة الرسم حدود الصور ومربعات النص والمخططات والمجموعات المرتبة المدعومة للقطةِ دلالية
خواص النص الغني الفعلية
يعيد TMsoFbtOpt.StoredPids معرفات خصائص OfficeArt المخزنة بترتيب مفروز، بينما يكشف TMsoFbtSp.PersistentFlags أعلام الشكل الأصلية دون تخصيص خصائص أو مراسي
يميز TMsoShapeContainer.HasPreservedObjectData بايتات ذيل OBJ المحتفظ بها؛ ويفحص HasOrdinaryEmbeddedPictureObjectData أن أذيول الصور لا تحوي سوى سجلات تنسيق حافظة معروفة وسجلات أعلام صور صفرية، ويرفض السجلات المرتبطة أو المجهولة دون نسخ الحمولة
يفحص TMSOShapeTextBox.HasValidTextRuns حدود runs الـ TXO المخزنة والحقول المحجوزة دون إنشاء runs؛ ويحدد TMsoDrawing.HasUnmodeledAppearance بيانات الرسم الأصلية التي تخطاها المحلل المُنمَّط، بما يتيح للالتقاط رفضَ المظهر غير المحلول صراحةً
يميز TXLSXRichTextRun.BoldSet و ItalicSet و StrikethroughSet و UnderlineSet و VertAlignSet و ColorSet خواص الخط الموروثة عن التجاوزات الصريحة، بما يشمل الأعلام الخاطئة وnone وbaseline والألوان التلقائية؛ وتعلن أدوات الضبط الخاصية صراحةً حتى عندما تساوي قيمتها الافتراض الأولي لـ run الجديد
يبلّغ TXLSXRichText.HasUnsupportedAppearance عن خواص النص الغني الأصلية التي لا يستطيع نموذج runs المُنمَّط تمثيلها؛ ويرفض الالتقاط المحمول ومقارنة النص الغني الفعلية تلك runs صراحةً، بينما تحتفظ خواص runs المشتركة/المضمنة المدعومة والفراغات بدلالاتها المستوردة
تطبق مقارنة النص الغني الفعلية التجاوزات الصريحة القيمةَ false قبل دمج runs المتجاورة المتساوية؛ وتبقى الخواص الموروثة والممسوحة صراحةً مميزة أثناء إزالة تكرار السلاسل المشتركة وفي الجولات المدعومة ذهابًا وإيابًا عبر XML
يحل TXMLReader.ResolveNamespaceUri(Prefix, Uri) ربط الـ namespace الجاري داخل النطاق دون تغيير موضع القارئ، ويعيد false عندما لا يوجد ربط؛ والبادئة الفارغة تطلب الـ namespace الافتراضي، وتبقى أسماء QName الخام متاحة للفحص الحساس لـ namespaces
سجلات النص/المشهد غير القابلة للتغيير وامتداد مصدر الالتقاط وعقد نقل HXRSNP02 مشروحة في المخرجات المحمولة الـ headless
فحص منفصل للأنماط والمحاور
يعيد TXLSXWorksheet.ReadSemanticCellStyle(Row, Col) سجلَ TXLSSemanticCellStyle منفصلًا لإحداثيات صالحة ذات أساس 1، محلوًّا من الأنماط المخزنة والمضغوطة وافتراضات ورقة العمل وتراكبات الأنماط المنطبقة وتنسيقات التواريخ الضمنية والألوان المفهرسة وألوان السمة، دون تجسيد خلايا أو تغيير مجمّعات الأنماط؛ والاستدعاء العام يكتسب عقد قراءة ويستبعد قواعد التنسيق الشرطي وأنماط الجداول
يعيد TXLSXWorksheet.GetStoredAxisSpans(IsRow) بنية TXLSXAxisSpans، مصفوفة من سجلات TXLSXAxisSpan بحدود FirstIndex و LastIndex شاملة ذات أساس 1؛ ويبلّغ عن آثار metadata الحجم والإخفاء والمخطط التفصيلي والطي، ويحفظ امتدادات ارتفاع الصفوف المكررة المضغوطة، ويبقي الافتراض الفعلي لورقة العمل متاحًا عبر خواصها العادية
تصف الامتدادات المعادة آثار metadata المخزنة لا تقسيمًا مطبَّعًا متمايزًا؛ ويمكن للتطبيقات التي تقارن محورين جمع حدَّي البداية والنهاية لديها ثم فحص الحالة الفعلية مرة واحدة لكل مجال ناتج
يعيد TXLSXWorksheet.GetStoredStyleRegions بنية TXLSXStyleRegions منفصلة تحمل حدود FirstRow و FirstCol و LastRow و LastCol الشاملة لآثار التنسيق الافتراضي المضغوط؛ وقد تتداخل تلك الآثار، ويقرأ المستدعون مظهرها الفعلي عبر ReadSemanticCellStyle
يعيد TXLSXWorkbook.ReadSemanticFeatures(Kind, Sheet, MaxBytes, MaxItems) مدخلات TXLSXSemanticFeatures منفصلة بمفتاح Key مستقر وبايتات Definition قانونية وعدد ItemCount محسوب؛ والحدود الموجبة الاختيارية افتراضها 64 MiB و1,000,000 مدخل
يضم TXLSXSemanticFeatureKind العناصر xlsxSemanticDefinedNames و xlsxSemanticDataValidations و xlsxSemanticConditionalFormats و xlsxSemanticTables و xlsxSemanticDrawings و xlsxSemanticPivotTables و xlsxSemanticPivotCaches و xlsxSemanticSlicers و xlsxSemanticSlicerCaches و xlsxSemanticTimelines و xlsxSemanticTimelineCaches
تستخدم الأسماء المعرفة والأنواع الثلاثة من الذاكرات المؤقتة نطاقًا يغطي المصنف كاملًا وتسمح بورقة nil؛ أما الأنواع الأخرى فتتطلب ورقة عمل تنتمي إلى المصنف، وتحفظ القواعد والرسومات تسلسلها المخزن، وتكون المصفوفات والمخازن المعادة نسخًا مملوكة للمستدعي؛ ويكتسب هؤلاء القراء عقود قراءة ويرثون التغطية المُنمَّطة وسلوك البيانات غير المدعومة الصريح الموصوف أعلاه
يعيد TXLSXWorksheet.ReadSemanticRichText(Row, Col, IncludePlainText, MaxBytes, MaxItems, ConsumedItems) بايتات runs قانونية منفصلة لإحداثيات ذات أساس 1، أو مخزنًا فارغًا عندما لا يوجد نص غني وكانت IncludePlainText تساوي false؛ والمؤشر الاختياري ConsumedItems: PInteger يستقبل عدد runs الملتقطة، ويحتفظ التقاط النص العادي بالتخزين المضغوط
يكشف TXLSPivotCacheField.GroupItemTypes[Index] عن النوع المُنمَّط المقابل لـ GroupItemLabels[Index] ويرفض فهرسًا خارج مجال التسميات المجمعة المخزنة
metadata الصيغ وردود نداء استعلامات Pivot
تقرأ TXLSGetCellFormulaText و TXLSCalculator.OnGetCellFormulaText نصَّ التعبير المخزن باستخدام SheetIndex ذات أساس 1 وRow/Col ذات أساس صفر، وتعيد lxOk أو رمز خطأ مُنمَّطًا مع احترام حماية إخفاء الصيغة؛ ويحدد TXLSGetPivotTable و OnGetPivotTable جدولًا مستعارًا باستخدام SheetIndex ذات أساس 1 وإحداثيات نطاق ذات أساس صفر
توصّل محركات المصنف ردود النداء الاختيارية هذه في سياقات الحساب العادية وذات القراءة فقط والعزلة؛ ولا تعيد ردود النداء حساب الأهداف ولا تُحدِّث مصادر Pivot ولا تنقل الملكية
يخزن TXLSPivotDataConstraint اسمَ FieldName وعنصر Item مُنمَّطًا، ويجمع TXLSPivotDataConstraints أزواج الحقل/العنصر؛ ويستعلم TXLSPivotTable.GetDataValue عن تجميع واحد مرئي مدعوم من لقطة منفصلة لجدول أو ذاكرة محلية، ويستخدم IntersectsQueryRange حدودَ ورقة عمل ذات أساس 1 شاملةً خلايا مرشح التقرير المنمذجة
يستقبل TlxPivotQueryBudget تقديرات العمل والذاكرة تزامنيًا ويعيد إمكانية استمرار التقييم؛ ويميز EXLSPivotQueryBudget و EXLSPivotQueryUnsupported استنفادَ الحدود عن نماذج الذاكرة أو التجميع غير المدعومة
يسجل TXLSPivotCache.QueryModelIsComplete جهوزية الاستعلام المفكك بصرف النظر عن اكتمال إعادة تشغيل BIFF الخام؛ ويكشف QueryRecordsValid عن صلاحية السجلات المستوردة، ويطبق SetQueryRecordValidity أسبقية قارئ التنسيق دون تحديث السجلات
بايتات صفحة الشيفرة الصريحة
| العضو | العقد |
|---|---|
XlsEncodeCodePage(Text, CodePage, MaxBytes = -1) | يعيد RawByteString بالبايتات التامة في صفحة صريحة غير صفرية موجّهة بالبايتات، ويحفظ محارف null المضمنة، ويتحقق من هوية الجولة Unicode ذهابًا وإيابًا، ويرفع EConvertError للنص غير القابل للتمثيل؛ وقيمة MaxBytes غير السالبة تبقي أطول بادئة أحرف كاملة تتسع، بينما يبقي -1 الطول غير محدود؛ ويغطي التحقق النص الأصلي قبل الاقتطاع |
XlsDecodeCodePage(Bytes, CodePage) | يعيد WideString من ترميز البايتات الصريح ويحفظ محارف null المضمنة؛ وتتبع تسلسلات البايتات المشوهة سلوك وحدة فك الترميز المثبتة؛ وترفض الصفحة 0 وصفحة UTF-16 رقم 1200 لأن هذه الواجهة لا تستنتج locale ANSI ولا تعالج تدفق بايتات UTF-16 |
TXLSBlob.GetCompressedUnicodeString(Index, Count) | يعيد وحدات كود Unicode المضغوطة التامة من U+0000 إلى U+00FF الخاصة بـ BIFF8، ويحفظ محارف null المضمنة، ويتحقق من مجال البايتات المطلوب، ولا يفسر تلك البايتات وفق أي صفحة شيفرة |
TXLSBlob.AddRawString | يلحق بايتات مرمزة تامة دون تحويل صفحة شيفرة عبر AnsiString ويحدث DataLength؛ والمدخل الفارغ لا يلحق أي بايتات |
TXLSCalculator.CodePage, TXLSFormula.FCodePage | تختار ترميز بايتات الصيغ القديم الصريح بصفحة CP1252 افتراضيًا؛ ويزامن المصنف الكلاسيكي المالك حاسبتَه عند التهيئة أو عند استدعاء SetCodePage |
TXLSFontList.GetFont, TXLSNumFormatList.GetNumFormatBlob, TXLSStyles.GetStyleBlob | الوسيط الاختياري CodePage افتراضه 1252 ويرمز نص BIFF5؛ ويبقى خرج BIFF8 بصيغة Unicode |
TMsoDrawing.StoreNotes | الوسيط الاختياري CodePage افتراضه 1252 ويرمز نص التعليقات السابق لـ Unicode؛ ويبقى حد حجم سجل التعليق العادي في BIFF5 قائمًا؛ وهذا لا يضيف حقول مؤلف أو نص غني أو هندسة غائبة عن تنسيق ذلك السجل |
TXLSCustomName.SetSourceData | يحدد الوسيطان الاختياريان FileFormat و CodePage بايتات NAME الخام المستوردة بلا افتراضَي xlExcel97 و1252؛ ولا يُعاد استخدام السجلات الخام إلا عندما يطابق تنسيقها وترميزها القديم الخرجَ المطلوب |
TXLSFormulatArrayItem.GetDataSize, TXLSFormulatArray.GetDataSize, TXLSFormulatArray.GetData, TXLSFormulatArrays.GetDataSize, TXLSFormulatArrays.GetData, TXLSCompiledFormula.GetExternalData | الوسيط الاختياري ACodePage افتراضه 1252؛ ويستخدم حجم مصفوفات السلاسل القديمة وخرجها عددَ البايتات المرمزة نفسه، بينما تبقى سلاسل BIFF8 بصيغة Unicode |
مرِّر RawByteString المعاد مباشرةً إلى AddRawString أو عملية تدفق موجّهة بالبايتات؛ فتحويله إلى AnsiString افتراضي قد يعيد ترميز بايتاته على أنظمة FPC الأصلية
الأسماء المعرفة الكلاسيكية وكتل صيغ المصفوفات
TXLSCustomName deferred compilation | يحرر ClearDefinition شجرة RefersTo المترجمة مع الإبقاء على نص التعريف المخزن وأي بايتات NAME خام مستوردة، ويعيد Compile بناء الشجرة من التعريف المخزن ويبلّغ عن النجاح، وتعيد GetCompiledFormula الترجمة تلقائيًا فيعود الاسم المفرَّغ يُحلَّل عند قراءته التالية؛ ويعيد PeekCompiledFormula الشجرة الحالية دون تحفيز تلك الترجمة، ويكشف StoredDefinition عن مصدر التعريف غير المُحلَّل |
TXLSCustomName identity and flags | يكشف StoreIndex عن موضع الاسم في مجموعته، و NameID عن هويته الرقمية الفريدة في المصنف التي يستخدمها محرك الحساب، ويقرأ IsHidden و IsMacro علمَي الإخفاء والماكرو في سجل NAME الخاص بـ BIFF ويكتبانهما |
TXLSFormulatArray.RowsCount, ColsCount | يبلّغان عن امتدادي الصفوف والأعمدة لكتلة صيغة المصفوفة المُحلَّلة؛ وكلاهما يبدأ من واحد ويحدُّ مجال عناصر الخلية الواحدة الذي تحمله طرق الإصدار |
مجمّعات الخطوط والتنسيقات والأنماط الكلاسيكية
TXLSFontList stored font attributes | تعكس الخصائص المفهرسة مفتاح الخط المخزن عند فهرس ذات أساس صفر في القائمة: ينضم Name و Size و ColorIndex و Bold و Italic و Strikethrough و Underline إلى OutLineFont و Shadow و SubScript و SuperScript و Family و CharSet للفحص للقراءة فقط |
TXLSNumFormatList.AddValue, FmtExists | يسجل AddValue سلسلة تنسيق ويعيد فهرسها، مسنودًا تهجئات التنسيقات المدمجة إلى معرفاتها القانونية ومعلِّمًا تنسيقات التاريخ والوقت؛ ويبلّغ FmtExists عما إذا كانت سلسلة تنسيق مخصصة مسجلةً بالفعل |
TXLSNumFormatList.IsDateFormat, IsDateFormatValue | يبلّغ IsDateFormat عما إذا كان التنسيق المخزن عند فهرس ما معلَّمًا بوصفه تنسيق تاريخ أو وقت، بينما يفحص IsDateFormatValue سلسلة تنسيق مباشرةً بحثًا عن رموز التاريخ والوقت |
TXLSStyles.AddStyle, AddBuiltinStyle | يسجل AddStyle نمطَ خلية مخصصًا مسمى مرتبطًا بفهرس سجل XF، ويسجل AddBuiltinStyle نمطَ خلية مدمجًا بمعرفة معرفه المدمج مع مستوى المخطط التفصيلي الذي تستخدمه أنماط مستويات الصفوف والأعمدة |
TXLSStyles.BuiltinStyleName | دالة صنفية تعيد اسمَ عرض نمط الخلية المدمج القانوني لدى Excel للمعرفات المدمجة من 0 إلى 53؛ والمعرفات خارج المجال تعيد اسمًا فارغًا ليرجع الكتبة إلى شكل البايتات المدمجة الخام |
مساعدات الحزم والتخزين الثنائي
TXLSXOpaquePackage | LoadWorkbookXmlMetadata حالة XML على مستوى المصنف، ويعيد MarkAllPartsClean أعلام الاتساخ إلى الحالة الأولية، ويكشف WorkbookExtLstXml مع WorkbookRootAttributesXml عن أجزاء XML المحفوظة للمصنف؛ ويبلغ IsDiscardedPart عما إذا كان اسم جزء قد أزيل بعملية تجاهل كتنظيف الوظائف الإضافية للويب |
TXLSFileStorage | Loadو LoadFolderو Writeو WriteFolder محتوى الملف المركب؛ وتسرد Child و Count المدخلات الفرعية، كل واحدة منها TXLSFileItem — عقدة تخزين مسماة تحمل فئتها الفرعية TXLSFileStream البايتات المخزنة بوصفها TXLSBlob يبلّغ DataSize عن طول الحمولة |
TXLSBlob | Add كائن blob آخر، بينما تضيف AddByteو AddWordو AddLongو AddDoubleو AddStringو AddWideString قيمًا منمطة؛ وتدير CopyDataو CopyMemو FillByteو Writeو Clearو Resetو Dump المحتوى؛ وتكشف Buff و DataLength عن التخزين |
TXLSBlobList | Appendو AppendListو CopyDataو Write المدخلات أو تصدرها؛ وتكشف Entries و TotalSize عن حالة القائمة |
TXLSWideStringBuilder | AddString نصًا ويبلغ Length عن عدد الأحرف المتراكم |
إضافات الرسم وعارض المصنفات
TXLSFillFormat | PictureFill تعبئة شكل قائمة على صورة، بينما يختار FillType نوع التعبئة (صلب أو تدرج أو صورة أو نسيج مهيأ مسبقًا) الذي يصدره الكاتب |
TXLSShapes | AddScrollBar و AddSpinner عناصر تحكم نماذج — تكشف الكائنات المعادة TXLSScrollBar و TXLSSpinner عن هندسة عنصر التحكم والخلية المرتبطة، ويضيف الدوار حدود الخطوة Minو Maxو Inc — بينما يسجل RegisterScrollBar و RegisterSpinner عناصر تحكم محملة من مصنف |
TXLSWorkbookViewer | CanUndo و CanRedo عن توفر سجل المعاملات؛ وتعمل ClearSelectedRange و CopySelectedRange و PasteSelectedRange و PasteText على النطاق المحدد، بينما يتيح ReferencePickMode اختيار مراجع الخلايا أو النطاقات تفاعليًا |
TXLSWorkbookEditHistory | محرك معاملات المحتوى الـ headless في lxWorkbookViewer يربط مصنفًا كلاسيكيًا أو XLSX مستعارًا ويوفر فحصًا مسبقًا لحماية النطاق ونسخ ولصق نص Unicode ومسحًا للنطاق ومعاملة تراجع/إعادة واحدة لكل عملية؛ راجع معاملات التحرير الـ headless |
TXLSCellContentSnapshot | تكشف كلتا فئتي ورقة العمل عن ReadCellContent(Row, Col) و RestoreCellContent(Snapshot) لالتقاط المحتوى الأصلي المنفصل واستعادته عند إحداثيات ذات أساس 1 في ورقة العمل الأصلية؛ الالتقاط لا يقيّم الصيغ ولا ينشئ خلايا غائبة ولا يجسد التخزين المضغوط، وتحفظ حمولة NativeData غير القابلة للتغيير النصَ الغني وcaches الصيغ ونمط الخلية؛ والاستعادة المباشرة عملية منخفضة المستوى يجب على مستدعيها التحقق من الحماية والحدود البنيوية |
ترقيم الصفحات ومخرجات الصور والطباعة
XLSValidateCachedChartSceneModel, XLSRecordCachedChartScene | يفحص مسبقًا metadata المخطط المخزن مؤقتًا دون حل الخلايا ويسجل عناصر vector ونصية محودة لمخطط منفصل في lxPortableChart، معيدًا TXLSPortableSceneObjects وعدّادات العناصر والبايتات والنص؛ وتحتفظ نقاط دخول lxPagination بالتنفيذ المشترك نفسه للمستدعين الحاليين على Windows؛ والمجموعة الجزئية الحالية تغطي مخططات الأعمدة والأشرطة والخطوط والتبعثر والدائري والدونات والمساحة أحادية السلسلة العادية بمجموعة رسم أولية واحدة، ويتطلب التسجيل metadata أصلية متحققًا منها ونقاط cache منتهية بترتيب صارم ونموذج مخطط غير مرتبط؛ راجع تسجيل المخططات المخزنة مؤقتًا |
TXLSGraphicsBackend | DrawTiledImage خلفية الورقة مرارًا وتكرارًا عبر منطقة الصفحة المقصوصة |
TXLSPaginationModel | CompactRangeModeو IncludeDrawingsو IncludeGridlinesو IncludeCellBordersو PaintPageBackground في محتوى الصفحة؛ وتكشف RenderDPIو RenderColorModeو RenderSession عن دقة الإخراج ومعالجة الألوان وجلسة العرض النشطة |
TXLSCellImageExporter | Measure الأبعاد بالبكسل لنطاقات Classic أو XLSX؛ وتضبط ImageFormatو JpegQualityو MaxPixelsو MaxBytesو IncludeObjectsو IncludeGridlinesو IncludeCellBordersو BackgroundColorو TransparentBackgroundو BeforePaintو AfterPaintو PaginationModel العرض وتراقبه |
TXLSPageImageExporter | BeforePaintو AfterPaintو MaxPixelsو MaxBytesو BackgroundColorو TransparentBackground خطافيات الرسم وحدود أمان الإخراج نفسها على تصدير الصور المقسمة إلى صفحات |
TXLSPrintDocument | PrintWorksheetو PrintWorkbookو PrintAllVisibleSheets محتوى Classic أو XLSX إلى طابعة VCL؛ وتتحكم FirstPageو PrintRangeOnlyو Collateو Copiesو OnBeforeNewPageو OnAfterGeneratePage في مهمة الطباعة |
نماذج المخططات الكلاسيكية وكائنات مخططات أوراق العمل
TXLSXChartSeries | تصف LineVisible و LineColorRGB و LineWidthPoints تحديدًا مستقلًا لخط السلسلة؛ وتحفظ LineStyleSet و LineColorSet و LineWidthSet الإعدادات الصريحة، وتحل EffectiveLineVisible اصطلاح التعبئة فقط القديم؛ وتميز MarkerFillSet و MarkerBorderSet الأسود الصريح عن ألوان العلامات التلقائية، بينما يدعم التسجيل المحمول للمخططات الخطية والتبعثرية أقطارَ دوائر من 2 إلى 72 نقطة؛ ويتحقق مضبطا اللون والعرض قبل التعديل ويخضعان لعقود قراءة المصنف |
TXLSChartSeries | AddTrendline و AddErrorBars تعليقات توضيحية منمَّطة للسلسلة، بينما يبلغ TrendlineCount و ErrorBarCount عن حجمي المجموعتين؛ ويحتفظ حقل MarkerSize القائم بقيم twips الخام الخاصة بـ BIFF، بينما تعيد أداة الوصول للقراءة فقط MarkerSizePoints تلك القيمة مقسومة على 20، بما يشمل أحجام النقاط الكسرية |
TXLSChartAxis | HasAxcExtFlag علم AXCEXT خام واحد دون مطالبة المستدعين بفك ترميز قناع البتات |
TXLSChartModel | AxisGroupCount عن عدد مجموعات المحاور الأولية والثانوية المفككة من المخطط |
TXLSCustomChart | AddAreaData عنصر مساحة جاهزًا لإعادة ربط الصيغ وقت الحفظ، ويطبق ApplyDateAxisModel نموذج محور تواريخ منمَّطًا على سجلات المخطط الخام؛ ويقرأ GetStoredRecordInfo معرف سجل ذا أساس صفري وعدد بايتات دون تخصيص، بينما يفحص ReadStoredRecord(Index, MaxBytes) حد البايتات قبل إعادة بايتات منفصلة في TXLSChartStoredRecord، دون تقييم صيغ أو تعديل caches |
TXLSWorksheet | AddChartObject إطار مخطط على ورقة العمل ويصلحه بباني المخططات المشترك |
TXLSXChartLayoutResolver | TryResolve مستطيل تخطيط واحد مع تحقق اختياري من الحجم، ويحسب ResolveChart مستطيلات المخطط والعنوان ووسيلة الإيضاح ومساحة الرسم والمحاور |
نموذج فك ترميز المخططات المنمَّط
تكشف حالة المخطط المفككة كسجلات وتعدادات بسيطة حتى لا تضطر شيفرة الفحص قط إلى تجوال في سجلات BIFF الخام: يحمل TXLSChartInfo ملخص المخطط المفكك مع TXLSChartTypeFamily (cfBarو cfLineو cfPieو cfAreaو cfScatterو cfRadarو cfDoughnutو cfSurfaceو cfBubble)، ويبلّغ كل سلسلة عن TXLSChartSeriesType، وتصف TXLSChart3DState مع TXLSChart3DInfo المشاهد ثلاثية الأبعاد. ويصنف TXLSChartAxisType (catCategoryو catValueو catSeriesو catDate) و TXLSChartLegendPosition المحاور ووسائل الإيضاح، بينما يستخدم نموذج محور التواريخ TXLSChartDateUnit (xcduDaysو xcduMonthsو xcduYears) و TXLSChartDateValues. ويكشف TXLSCustomChart عن النموذج المفكك عبر TXLSChartInfo؛ وتكون تعليقتا خط الاتجاه وأشرطة الخطأ كائنين منمَّطين (TXLSChartTrendlineو TXLSChartErrorBars) يمكن الوصول إليهما من كل سلسلة
سجلات تأليف المخططات
يقبل تأليف أوراق المخططات والباني سجلات بسيطة بدل رسوم الكائنات: تملأ TXLSChartTrendlineInfoو TXLSChartErrorBarsInfoو TXLSChartDataLabelsInfoو TXLSChartSeriesStyleInfo مدخلات السلاسل الممررة إلى TXLSWorksheets.AddChartSheet وباني المخططات المشترك، ويصف TXLSPivotChartInfo تأطير المخطط المحوري المستخدم عند ربط مخطط بجدول محوري
فحص تعبئة المخططات الكلاسيكية
يفك TXLSCustomChart.GetChartModel جداولَ خصائص OfficeArt الأصلية المدعومة وجداول الخصائص الثالثية في سجلات GelFrame، بما يشمل الخصائص التالية لمدخلات الحمولات المركبة؛ ويظل تمثيل الباني القائم مدعومًا، بينما تُبقي حدود الجداول المشوهة التعبئةَ المنمَّطة السابقة دون تغيير وتبلغ عن السجل غير المدعوم
يتحقق فحص المخطط من حمولة النص والتعليقات التوضيحية المخزنة كاملةً قبل إضافة الحالة المنمَّطة: فأسماء خطوط الاتجاه المقتطعة أو فواصل تسميات البيانات تبلغ عن معرف سجلها عبر _UnsupportedSemanticRecordID، بينما تبلغ ترويسات SeriesText الفارغة أو صغيرة الحجم عن ذلك السجل بوصفه غير مدعوم في BIFF5 وBIFF8 معًا؛ ويمدّ مدى نص السلسلة المعلن الذي يتجاوز حمولته استثناءَ EReadError ويحرر النموذج الجزئي ويبقي سجلات المخطط المخزنة دون تغيير
يحفظ مجрим العلامات وفحص التعبئة تخزينَ المخطط الخام؛ ويتحقق مسار التقاط المظهر المعلن على حدة من المخططات الأساسية المدعومة، بينما تبقى بصمات امتدادات العناوين الغنية أو الأشكال غير المتحقق منها غير مدعومة
قرّاء المخططات والسلاسل والخطوط المخزنة محودة الحدود
TXLSChartStoredBytes مصفوفة بايتات منفصلة ويحوي TXLSChartStoredRecord كلًّا من RecordId و Data؛ ويفحص هؤلاء القرّاء تخزين المصدر المحتفظ به دون إنشاء نموذج مخطط مفكك أو تقييم صيغ
| TXLSCustomChart.GetStoredRecordInfo | يعيد معرف سجل وطول بايتات معدودًا لفهرس سجل ذي أساس صفري دون نسخ حمولته |
| TXLSCustomChart.ReadStoredRecord | ينسخ حمولة واحدة بعد التحقق من الفهرس و MaxBytes غير السالبة؛ وحد البايتات الافتراضي هو High(Int64) |
| TXLSCustomChart.ReadStoredFormulaLeafInfo | يفحص ورقة BRAI مخزنة متماسكة باستخدام حاسبة المصدر الدقيقة وحصص بايتات ونص غير سالبة؛ وتعيد الحاسبات الأجنبية أو مالكو الترجمة ورقةً غير مدعومة، وافتراض AllowUnboundBiff هو False |
| TXLSCustomChart.ReadStoredFormulaLiteral | يعيد حرفية منفصلة فقط بعد فحوصات المصدر والحصة نفسها؛ وترفع الورقة غير المدعومة استثناء EInvalidOperation |
| TXLSCustomChart.SourceBiffVersion, SourceCodePage | مصدرية للقراءة فقط لسجلات المخطط المحتفظ بها |
| TXLSStringTable.GetStoredStringLength, ReadStoredString | يعدّ تخزين UTF-16 القائم باستخدام هوية السلسلة ذات الأساس 1 للجدول، ثم ينسخ فقط عندما تغطي حصة المحارف غير السالبة ذلك؛ وترفض الهويات غير الصالحة وتخزين UTF-16 غير المكتمل |
| TXLSFontList.GetStoredNameLength, ReadStoredName | يفحص مفتاح الخط المخزن عند فهرس القائمة ذي الأساس الصفري قبل عد اسمه أو نسخه ضمن حصة محارف غير سالبة |
| TMsoFbtOptItem.HasStoredUnicodeString | يفحص metadata سلاسل Unicode المركبة المخزنة محودة الحدود دون تجسيد سلسلة |
| TMsoShapeContainer.HasOrdinaryChartObjectData | يفحص نوع كائن المخطط المخزن وهوية الكائن غير الصفرية والأعلام المدعومة وغياب بيانات ذيل الكائن المجهولة |
صيانة جدول السلاسل المشتركة وإصدار SST
TXLSStringTable في lxStringTable يدعم السلاسل المشتركة للمصنف الكلاسيكي؛ ويغطي الأعضاء أدناه التسجيل من جهة القارئ وصيانة الخانات وإصدار SST الخام لعمليات الحفظ الذهاب والإياب
KeyExists, AddWithExtras | يببلّغ KeyExists عما إذا كانت سلسلة ما تشغل خانة بالفعل؛ وAddWithExtras رفيق Add من جهة القارئ الذي يلحق حملة rgRun للنص الغني و rgExtRst الصوتية الخام بالمدخل دون رفع عداد مراجعه، لأن كل خلية مشيرة تستعيد العداد لاحقًا عبر مسار الإضافة العادي |
Replace, ReplaceIndex | يُسقط Replace مرجعًا واحدًا عند الخانة القديمة ويحررها عندما يصل عدادها إلى صفر، ويعيد إضافة النص معيدًا الخانة الناتجة؛ وينقل ReplaceIndex مرجعًا واحدًا من الخانة القديمة إلى الجديدة دون نسخ النص |
AddSSTData, InitExtIndex | يُصدر AddSSTData حملة SST الخام إلى قائمة blobs الكاتب؛ والحمل الزائد الذي يأخذ جدول إعادة تعيين font-run يعيد كتابة فهرس خط كل FormatRun في طريقه للخارج ([MS-XLS] §2.5.129) بحيث تتبع runs الغنية إعادة ترتيب الخطوط وقت الحفظ، بينما يبقي الجدول الفارغ الإصدار الحرفي القديم، ويُرقّم InitExtIndex دلاء ExtSST فوق الخانات الحية قبل الإصدار |
SlotCount, ExtIndex, ParsedExtSSTDsst, ParsedExtSSTItemCount, BiffSizeLimit | SlotCount هو الحد الأعلى ذو الأساس 1 لتكرار الخانات مع قراءة الخانات المحذوفة فارغة، ويحل ExtIndex خانةً إلى رقم دلو ExtSST الخاص بها أو -1 لخانة غير حية، ويحتفظ ParsedExtSSTDsst و ParsedExtSSTItemCount بقيم ترويسات EXT/SST المستوردة، ويحud BiffSizeLimit كل قطعة سجل مُصدرة — يضبطه الكاتب الكلاسيكي على 2080 بايت لـ BIFF5 وعلى 8224 لـ BIFF8 |
مرفقات PDF والتواقيع وتصدير HTML
IXLSPDFAttachmentSource | WriteTo بايتات المرفق في تصدير PDF دون اشتراط أن يملك المصدِّر بيانات المصدر |
TXLSPDFExport | AttachmentDuplicatePolicy معالجة الأسماء المكررة، ويتحكم AttachmentSpoolThreshold في التخزين المؤقت للمرفقات (spooling)، ويكتب DocumentLanguage بيانات لغة المستند الوصفية |
TXLSPDFSignature | TextAlignو TextSizeو TextColorو TextBoldو TextItalic مظهر التواقيع المرئية |
TXLSHTMLExport | ViewMode (من نوع TXLSHtmlViewMode: العرض الحالي أو جدول جدول البيانات الكامل) طريقة العرض في HTML، بينما تضبط HotTrackTargets (مجموعة من TXLSHtmlHotTrackTarget) و HotTrackColor إبراز الخلايا والكائنات التفاعلي |
TXLSXHtmlExportOptions | ViewModeو HotTrackTargetsو HotTrackColor عناصر التحكم المكافئة لتصدير HTML من XLSX |
تدقيق الحساب وعناصر تحكم المصنف
TXLSCalculationAuditReport | Truncated عن اقتطاع بسبب حد المشكلات، ويبلغ StackTruncated عن اقتطاع إطارات سلسلة الاستدعاء، ويفهرس Issues مشكلات الحساب المسجلة |
TXLSUserFunctionRegistry | Generation كلما تغيرت مجموعة دالات المستخدم المسجلة، بما يتيح إبطال ارتباطات الصيغ المخزنة |
EXLSReportRecoverableData | Category فئة بيانات التقارير القابلة للاسترداد المعروضة على المستدعي |
IXLSWorkBook | ManualCalculationThreadCount من عدد الخيوط العاملة المستخدمة في الحساب اليدوي |
TXLSXDataValidation | HasUnknownImeMode عن قيمة وضع IME حافظ عليها HotXLS لكنه لا يتعرف عليها |
TXLSXTable | ColumnCalculatedFormulaArrayRaw و ColumnTotalsFormulaArrayRaw عن نص الصيغة الصفيفية الأصلي لأعمدة الجدول |
توافقية تأطير PivotCache القديم
TXLSPivotCache | RawBucketIndex موضع التدفق الفرعي للمصدر، ويحدد RawFramingIsLegacy تأطيرًا قديمًا من HotXLS، ويبلغ RawModelIsComplete عما إذا كان النموذج المنمَّط يمثل كل سجل، ويبلغ CanUpgradeFraming عن أمان إعادة الإصدار المنمَّط عند القبول الاختياري |
TXLSPivotCache | StreamId عن هوية تدفق الذاكرة المؤقتة الكلاسيكية، ويكشف SourceDataType عن نوع بيانات المصدر الكلاسيكي، ويبلغ RawHasStorageStream عما إذا كانت الذاكرة المحملة قد جاءت من تدفق تخزين PivotCache مستقل |
TXLSWorkbook | UpgradeLegacyPivotCacheFraming إعادة كتابة تأطيرات ذاكرات HotXLS القديمة فقط التي نموذجها المنمَّط مكتمل؛ ويظل إعادة تشغيل الذاكرة الخام العادية هي الافتراضي |
StreamId بوصفه سجل SXStreamID ([MS-XLS] §2.4.303) ويتكرر بوصفه حقل SXDB في ترويسة idstm الذي يجب أن يساويه؛ ويُكتب SourceDataType بوصفه سجل SXVS ([MS-XLS] §2.4.317: $0001 ورقة عمل، $0002 خارجي، $0004 توحيد، $0010 سيناريو) ويتكرر بوصفه حقل SXDB في ترويسة vsType الذي يجب أن يساويه. وتبدأ الذاكرات المبنية من نطاق ورقة عمل من نوع ورقة العمل، بينما تحفظ الذاكرات المقروءة من ملف القيمة التي حملها تدفقها الفرعي، حتى لا يترك كاتب BIFF أبدًا حقل SXDB يسمي سجلًا لم يصدره؛ ويشير RawHasStorageStream إلى ذاكرة حُملت من تدفق التخزين الخاص بها والذي يسبق واصفه العام على مستوى المصنف السجلات المخزنة مؤقتًا
تكامل الحافظة وخيارات اللصق
TXLSPasteOption = (xlpoValuesOnly, xlpoInsertRows, xlpoInsertCols);
TXLSPasteOptions = set of TXLSPasteOption;
function XLSGetClipboardText: WideString;
function XLSSetClipboardText(const Text: WideString): Boolean;
function XLSSetClipboardTextAndHtml(const Text: WideString;
const Html: AnsiString): Boolean;
function XLSBuildHtmlClipboard(const Html: AnsiString): AnsiString;
function XLSEncodeClipboardField(const Text: WideString): WideString;
function XLSClipboardHasText: Boolean;
function XLSParseClipboardGrid(const ClipboardText: WideString;
Loader: TXLSCSVLoader): Boolean;
function XLSClipboardHasXmlSpreadsheet: Boolean;
function XLSGetClipboardXmlSpreadsheet: WideString;
function XLSParseXmlSpreadsheet(const XmlText: WideString;
Loader: TXLSCSVLoader): Boolean;
function XLSClipboardHasBiff8: Boolean;
function XLSGetClipboardBiff8: AnsiString;
function XLSReadClipboardPasteData(out Biff8: AnsiString;
out Text: WideString): Boolean;
function XLSSetClipboardBiff8(const Biff8: AnsiString;
const Text: WideString; const Html: AnsiString = ''): Boolean;
PasteFromClipboard في الواجهتين: تحفظ xlpoValuesOnly القيم المخزنة لخلايا الصيغ وتتجاوز التنسيقات والدمجات، بينما تزيح xlpoInsertRows و xlpoInsertCols المحتوى القائم قبل استقرار الكتلةCF_UNICODETEXT (مع الارتداد إلى CF_TEXT عبر صفحة الشيفرة ANSI الحالية)، ويكتب XLSSetClipboardTextAndHtml النص وحمولة HTML Format منسقة في معاملة واحدة، ويحسب XLSBuildHtmlClipboard إزاحات بايتات CF_HTML لمستند أو مقطع، ويقتبس XLSEncodeClipboardField حقلاً واحدًا مفصولًا بعلامات الجدولة. ويحلل XLSParseClipboardGrid نص الحافظة بوصفه صفوفًا مفصولة بعلامات الجدولة مع الشمّ النوعي نفسه الذي يستخدمه TXLSCSVLoader لملفات CSV، ويشغّل XLSParseXmlSpreadsheet ملءَ المحمل نفسه على حمولة SpreadsheetML 2003 تُجلب بـ XLSGetClipboardXmlSpreadsheet، وتكتشف مساعدات Biff8 التدفق الأصلي الذي يضعه Excel نفسه على الحافظة وتقرؤه، فيحتفظ البيانات الملصقة بقيمها وصيغها وتنسيقها دون فقد نصيXLSReadClipboardPasteData تدفق Biff8 والنص Unicode تحت قفل حافظة واحد، فلا يضطر اللصق أبدًا إلى إعادة فتح الحافظة بين القراءتين ولا يفقد أيًّا من التنسيقين أمام حائز متزامن. وXLSSetClipboardBiff8 هو جهة الكتابة المقابلة: يضع تدفق الملف المركب BIFF8 والنص Unicode المفصول بعلامات الجدولة وحمولة CF_HTML اختيارية في معاملة واحدة — مرِّر Text أو Html فارغًا لتجاوز أيًّا من التنسيقين المرافقين، بينما يبقى جزء Biff8 إلزاميًاحل نص عرض الخلية
TXLSCellDisplayMode = (xcdmFormattedValue, xcdmFormulaText,
xcdmSuppressedZero);
TXLSCellDisplayOptions = record
ShowFormulas: Boolean;
ShowZeros: Boolean;
SheetProtected: Boolean;
FormulaWidthFactor: Double;
DateSerialZero: Double;
end;
TXLSCellDisplayInput = record
HasFormula: Boolean;
FormulaHidden: Boolean;
IsNumericZero: Boolean;
FormulaText: WideString;
FormattedText: WideString;
end;
TXLSCellDisplayResult = record
Mode: TXLSCellDisplayMode;
Text: WideString;
TreatAsText: Boolean;
EffectiveWidthFactor: Double;
end;
function XLSDefaultCellDisplayOptions: TXLSCellDisplayOptions;
function XLSNormalizeFormulaDisplayText(const FormulaText: WideString): WideString;
function XLSResolveCellDisplay(const Options: TXLSCellDisplayOptions;
const Input: TXLSCellDisplayInput): TXLSCellDisplayResult;
XLSResolveCellDisplay مباشرة بسجلات إدخال خاصة بها؛ ويعيد XLSDefaultCellDisplayOptions الافتراضيات القانونية وينمّط XLSNormalizeFormulaDisplayText سلسلة صيغة للعرضكائنات التحقق من صحة البيانات الكلاسيكية
TXLSDataValidationType = (xlsDvAny, xlsDvWhole, xlsDvDecimal, xlsDvList,
xlsDvDate, xlsDvTime, xlsDvTextLength, xlsDvCustom);
TXLSDvErrorStyle = (xlsDvErrStop, xlsDvErrWarning, xlsDvErrInformation);
TDVRange = class; { one validation rule over one or more ranges }
TDVRangeList = class; { the per-sheet rule collection }
TDataValidator = class; { engine that checks edits against the rules }
TXLSWorksheet.Add*Validation المنمَّطة قواعد TDVRange في TDVRangeListالخاص بالورقة؛ وتحمل كل قاعدة TXLSDataValidationTypeوالحدود ورسالتي الإدخال والخطأ و TXLSDvErrorStyle. ويقيّم TDataValidator التعديل مقابل القواعد ويبلغ عما إذا كانت القيمة مقبولة، وهو التحقق ذاته الكامن خلف مطالبات التحقق من صحة البيانات في Excelمسح الألوان المفهرسة وحلها
TXLSIndexedColorKind = (xickPalette, xickAutomatic, xickSystem, xickInvalid);
TXLSSystemColorRole = (xscrNone, xscrWindowText, xscrWindowBackground,
xscrChartText, xscrChartBackground, xscrChartNeutral, xscrToolTipText);
TXLSIndexedColorResolution = record
Kind: TXLSIndexedColorKind;
RawIndex: Int64;
PaletteSlot: Integer;
SystemColorRole: TXLSSystemColorRole;
ARGB: LongWord;
HasResolvedColor: Boolean;
end;
TXLSNearestIndexedColorMatch = record
InputARGB: LongWord;
ColorIndex: Integer;
PaletteSlot: Integer;
ARGB: LongWord;
DistanceSquared: Double;
ExactMatch: Boolean;
end;
TXLSIndexedColorUsageKind = (xicukFont, xicukFillForeground,
xicukFillBackground, xicukGradient, xicukBorder, xicukConditionalFormat,
xicukChart, xicukShape, xicukComment, xicukWorksheet, xicukOther);
ResolveIndexedColorو NearestIndexedColorو ScanIndexedColorUsage على مستوى المصنف: يبلّغ الحل عن أيٍّ من مصادر TXLSIndexedColorKind الأربعة جاء منه الرمز المفهرس مع خانة اللوحة ودور لون النظام وقيمة ARGB المطبَّعة، ويضيف أقرب تطابق مربع مسافة RGB وعلامة التطابق التام، وتوسم عملية مسح الاستخدام كل فئة استهلاك تحجز خانة لوحة. ويحتفظ المكتبة بذاكرة TXLSIndexedColorMatcher داخلية مفتاحها توليد اللوحة — يجيب FindNearest عن استعلامات أقرب لون منها ويرقّع UpdateSlot خانة لوحة واحدة — فتبقى الحلول المتكررة بلا تخصيصات ذاكرةمساعدات مراجع A1
function XLSA1CellRef(ARow, ACol: Integer): WideString;
function XLSTryParseA1CellRef(const ARef: WideString;
out ARow, ACol: Integer): Boolean;
function XLSTryParseA1RangeRef(const ARef: WideString;
out ARow1, ACol1, ARow2, ACol2: Integer): Boolean;
False للإدخال المشوه بدل رفع استثناء