توثيق HotXLS

الفئة TXLSXWorkbook

حاوية المستوى الأعلى لمصنف Excel 2007+‏ (.xlsx). مُعلَنة في lxHandleX. تحتوي على مجموعة TXLSXSheets وتوفر نقاط دخول SaveAs / Open لمصنفات OOXML واستيراد CSV / TSV وجداول بيانات OpenDocument (.ods)

الإعلان

type
  TXLSXFileFormat = (xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet,
    xlsxOpenXMLTemplate, xlsxOpenXMLMacroEnabledTemplate, xlsxExcelBinaryWorkbook);

  TODSExportOptions = class
    constructor Create;
    property Generator: WideString;
    property IncludeCharts: Boolean;
    property IncludeImages: Boolean;
  end;

  TXLSXWorkbook = class
    constructor Create;
    destructor Destroy; override;
    function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
    function CreateLoadedCellCursor(AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
    function CreateReadOnlyView: IXLSReadOnlyWorkbookView;
    property RenderCalibration: TXLSRenderCalibration;
    function CaptureRenderCalibration: TXLSRenderCalibration;
    procedure ResetRenderCalibration;
    function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
      ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
    function SaveAs(const FileName: WideString): Integer; overload;
    function SaveAs(const FileName: WideString; FileFormat: TXLSXFileFormat): Integer; overload;
    function SaveAs(Stream: TStream): Integer; overload;
    function SaveAs(Stream: TStream; FileFormat: TXLSXFileFormat): Integer; overload;
    function GetConversionReport(ATarget: TXLSConversionTarget): TXLSConversionReport;
    function SaveAsChecked(Stream: TStream; FileFormat: TXLSXFileFormat;
      AllowLossy: Boolean = False): Integer; overload;
    function SaveAsChecked(const FileName: WideString; FileFormat: TXLSXFileFormat;
      AllowLossy: Boolean = False): Integer; overload;
    function Open(const FileName: WideString): Integer; overload;
    function Open(const FileName: WideString; const Password: WideString): Integer; overload;
    function Open(Stream: TStream): Integer; overload;
    function OpenCSV(const FileName: WideString): Integer; overload;
    function OpenCSV(const FileName: WideString; ASeparator: WideChar;
      ADetectTypes: Boolean): Integer; overload;
    function OpenCSV(Stream: TStream): Integer; overload;
    function OpenCSV(Stream: TStream; ASeparator: WideChar;
      ADetectTypes: Boolean): Integer; overload;
    function OpenODS(const FileName: WideString): Integer; overload;
    function OpenODS(Stream: TStream): Integer; overload;
    function SaveAsODS(const FileName: WideString): Integer; overload;
    function SaveAsODS(Stream: TStream): Integer; overload;
    function SaveAsODS(const FileName: WideString; Options: TODSExportOptions): Integer; overload;
    function SaveAsODS(Stream: TStream; Options: TODSExportOptions): Integer; overload;
    function GetODSSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
    function GetODSSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
    function GetSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
    function GetSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
    function SaveAsCSV(const FileName: WideString): Integer; overload;
    function SaveAsCSV(const FileName: WideString; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
    function SaveAsCSV(Stream: TStream): Integer; overload;
    function SaveAsCSV(Stream: TStream; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
    function SaveAsHTML(const FileName: WideString): Integer; overload;
    function SaveAsHTML(const FileName: WideString; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsHTML(const FileName: WideString; SheetIndex: Integer): Integer; overload;
    function SaveAsHTML(const FileName: WideString; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsHTML(Stream: TStream): Integer; overload;
    function SaveAsHTML(Stream: TStream; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsHTML(Stream: TStream; SheetIndex: Integer): Integer; overload;
    function SaveAsHTML(Stream: TStream; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsRTF(const FileName: WideString): Integer; overload;
    function SaveAsRTF(const FileName: WideString; SheetIndex: Integer): Integer; overload;
    function SaveAsRTF(Stream: TStream): Integer; overload;
    function SaveAsRTF(Stream: TStream; SheetIndex: Integer): Integer; overload;
    // AES encryption (ECMA-376 Standard Encryption) write path.
    // OpenEncrypted still raises for encrypted packages.
    function SaveAsEncrypted(const FileName, APassword: WideString): Integer;
    function OpenEncrypted(const FileName, APassword: WideString): Integer;
    function CanReadEncrypted(const FileName: WideString): Boolean;
    function Calculate(const Formula: WideString): Variant;
    function CalculateAndVerify: Integer; overload;
    function CalculateAndVerify(out AMismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
    property OnUserFunction: TXLSUserFunctionEvent;
    property OnUserFunctionEx: TXLSUserFunctionExEvent;
    property AllowUnsafeFormulaCallbacks: Boolean;
    // Document properties (docProps/core.xml + docProps/app.xml).
    property Title, Author, Subject, Keywords, Description,
             Category, LastModifiedBy, Company,
             Application, AppVersion: WideString;
    property Created, Modified: TDateTime;
    // Workbook protection (16-bit legacy hash).
    procedure ProtectWorkbook; overload;
    procedure ProtectWorkbook(const APassword: WideString); overload;
    procedure ProtectWorkbook(const APassword: WideString; ALockStructure, ALockWindows: Boolean); overload;
    procedure UnProtectWorkbook;
    property IsWorkbookProtected: Boolean;
    property LockStructure, LockWindows: Boolean;
    // VBA project payload (round-trips byte-for-byte). Workbook is saved
    // with macro-enabled content type when HasVbaProject is True.
    procedure LoadVbaProjectFromFile(const AFileName: WideString);
    procedure ClearVbaProject;
    function HasVbaProject: Boolean;
    property VbaProjectDefined: Boolean;
    property VbaProject: AnsiString;
    property ParsedVBAProject: TXLSVBAProject;
    // Unknown package and workbook extension preservation
    procedure ClearUnsupportedParts;
    function UnsupportedPartCount: Integer;
    function UnsupportedPartBytes: Int64;
    property PreserveUnsupportedParts: Boolean;
    // Chart sheet helper — creates a sheet flagged IsChartSheet and
    // seeds Charts[0] with a default full-page anchor.
    function AddChartSheet(const AName: WideString;
      AChartType: TXLSXChartType; const ATitle: WideString): TXLSXWorksheet;
    // Streaming SaveAs path (TXLSWideStringBuilder + one sheet at a time).
    property StreamingWrite: Boolean;
    // Streaming parallel Open path
    property ParallelParse: Boolean;
    property ParallelParseThreads: Integer;
    // Workbook-level collections.
    property ActiveSheet: Integer;
    property Minimized: Boolean;
    property WindowHidden: Boolean;
    property ShowHorizontalScroll: Boolean;
    property ShowVerticalScroll: Boolean;
    property ShowSheetTabs: Boolean;
    property XWindow: Integer;
    property YWindow: Integer;
    property WindowWidth: Integer;
    property WindowHeight: Integer;
    property TabRatio: Integer;
    property FirstSheet: Integer;
    property AutoFilterDateGrouping: Boolean;
    property Date1904: Boolean;
    // Workbook calculation policy
    property Iterate: Boolean;
    property IterateCount: Integer;
    property IterateDelta: Double;
    property CalcId: Integer;
    property FullCalcOnLoad: Boolean;
    property CalcMode: WideString;
    property RefMode: WideString;
    property ForceFullCalc: Boolean;
    property CalcCompleted: Boolean;
    property CalcOnSave: Boolean;
    property FullPrecision: Boolean;
    property ConcurrentCalc: Boolean;
    property ConcurrentManualCount: Integer;
    function CreateWorkspaceWorkbook: IXLSWorkspaceWorkbook;
    procedure RegisterExternalWorkbook(const AWorkbookName: WideString;
      AWorkbook: TXLSXWorkbook);
    procedure UnregisterExternalWorkbook(const AWorkbookName: WideString);
    property SourceFormat: TXLSXFileFormat;
    property IndexedColor[Index: Integer]: LongWord;
    function  NearestIndexedColor(AArgb: LongWord;
      out AMatch: TXLSNearestIndexedColorMatch): Boolean;
    function  ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
    function  BuildBiffPalettePlan: TXLSBiffPalettePlan;
    function  ApplyBiffPalettePlan(
      const APlan: TXLSBiffPalettePlan): Boolean;
    function  HasCustomIndexedColor(Index: Integer): Boolean;
    function  CustomIndexedColorCount: Integer;
    procedure ResetIndexedColors;
    property Sheets: TXLSXSheets;
    property Fonts: TXLSXFonts;
    property Fills: TXLSXFills;
    property Borders: TXLSXBorders;
    property NumberFormats: TXLSXNumberFormats;
    property Alignments: TXLSXAlignments;
    property DefinedNames: TXLSXDefinedNames;
    property ExternalLinks: TXLSXExternalLinks;
    property ExternalWorkspace: TXLSWorkbookWorkspace;
  end;
      

الأعضاء

Sheetsورقة عمل مجموعة. See TXLSXSheets
Fontsيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS. TXLSXCell.FontIndex إلى فهرس يبدأ من 1 داخل هذه المجموعة. راجع TXLSXFont / TXLSXFonts
Fillsلوحة تعبئات على مستوى المصنف. تختار الخلايا التعبئة عن طريق ضبط TXLSXCell.FillIndex إلى فهرس يبدأ من 1 داخل هذه المجموعة. راجع TXLSXFill / TXLSXFills
Bordersلوحة حدود على مستوى المصنف. تختار الخلايا الحدّ عن طريق ضبط TXLSXCell.BorderIndex إلى فهرس يبدأ من 1 داخل هذه المجموعة. راجع TXLSXBorder / TXLSXBorders
NumberFormatsلوحة تنسيقات أرقام مخصصة على مستوى المصنف. تختار الخلايا التنسيق عن طريق ضبط TXLSXCell.NumberFormatIndex إلى فهرس يبدأ من 1 داخل هذه المجموعة. راجع TXLSXNumberFormat / TXLSXNumberFormats
DefinedNamesنطاقات مسمّاة على مستوى المصنف (بنطاق المصنف أو نطاق الورقة). راجع TXLSXDefinedName / TXLSXDefinedNames
Calculateتُترجم وتُقيَّم سلسلة صيغة Excel على الورقة النشطة، ويُقبل = في البداية تُقيَّم عبر محرك صيغ HotXLS المشترك مراجع الخلايا والنطاقات والصيغ المخزنة في الخلايا المرجعية والمراجع بين الأوراق والأسماء المعرَّفة بصيغ متداخلة والمصفوفات البثّية ذات الأخطاء لكل خلية ومصفوفات الانحدار والتنبؤ متعددة المتغيرات، وكذلك دوال النص والتاريخ وأيام العمل والهندسة/تحويل القواعد والبتات والإحصاء والتجميع والرياضيات المدعومة راجع OnUserFunction للتعامل مع الدوال المخصصة أو غير المدعومة
CreateLoadedCellCursorتنشئ مؤشرًا بحالة ثابتة بترتيب الصفوف فوق قيم XLSX والصيغ المخزّنة، مع نسخة تُصدِر أيضًا الخلايا الفارغة ذات التنسيق المستقل بوصفها xlckBlank. تُجتاز الكتل المتناثرة والتخزين المعبَّأ دون تجسيد التمثيل المعبَّأ. راجع CreateLoadedCellCursor method
CreateReadOnlyViewتنشئ عرضًا للنموذج المشترك بزمن ثابت مع ورقة نشطة محلية ولقطات بالقيمة ونتائج صيغ مخزّنة مؤقتًا وتقييم صيغ معزول اختياري وقراءات مباشرة للخلايا المعبَّأة وعمر مرتبط بعدّ المراجع عبر IXLSXWorkbookOwner, and fail-fast write exclusion; the IXLSReadOnlyWorkbookView also reports SheetCount يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS. TXLSXFill / TXLSXFills
SaveSemanticSnapshot, ComputeSemanticHashيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS. TXLSXBorder / TXLSXBorders
RenderCalibration, CaptureRenderCalibration, ResetRenderCalibrationيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS TXLSXNumberFormat / TXLSXNumberFormats
CreateRenderGeometryيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS TXLSXDefinedName / TXLSXDefinedNames
OnUserFunction, OnUserFunctionExيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS. Calculate عندما تستدعي صيغة دالة مخصصة أو غير مدعومة. انظر OnUserFunction
AllowUnsafeFormulaCallbacksقيمتها الافتراضية false وتمنع أسماء الدوال الخارجية أو ذات النمط الماكروي الخطرة من الوصول إلى معالجات دوال المستخدم قبل تقييم الوسائط. راجع callback safety policy
GetSheetNames(FileName, AList), GetSheetNames(Stream, AList)Reads xl/workbook.xml وتضيف أسماء أوراق العمل إلى AList بترتيب المصنف دون تحميل XML أوراق العمل. ونسخة الدفق تتوقع دفق حزمة XLSX كاملًا. تعيد عدد الأسماء المقروءة، أو -1 إلى handle custom أو unsupported دوال
AlignmentsCallback مستخدم بواسطة TXLSXCell.AlignmentIndex عند صيغة calls custom أو unsupported دالة. See OnUserFunction / OnUserFunctionEx callback
Document propertiesيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: XML, XLSX docProps/core.xml + docProps/app.xml عند SaveAs (وإلا أبقى المصنف على الحد الأدنى من أجزاء الحزمة)
ProtectWorkbook / UnProtectWorkbookمفتاح تبديل لحماية المصنف مع تجزئة اختيارية لكلمة مرور قديمة بحجم 16 بت و LockStructure / LockWindows flags. Reflected as <workbookProtection> in xl/workbook.xml
LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefinedLoadVbaProjectFromFile imports a raw vbaProject.bin payload; VbaProject exposes the bytes; HasVbaProject and read-only VbaProjectDefined يعرض كلاهما ما إذا كان payload موجودًا. احفظ باستخدام .xlsm كامتداد عندما يُراد تمكين وحدات الماكرو في Excel
ParsedVBAProjectRead-only parsed view of the current vbaProject.bin للـ payload. وعندما يكون الـ payload تخزين OLE VBA صالحًا، تعيد TXLSVBAProject يكشف أسماء الوحدات والنص المصدر؛ وإلا تعيد nil. The raw VbaProject للـ payload تبقى البايتات المرجعية المستخدمة لجولات SaveAs/Open
AddChartSheet(Name, Type, Title)Creates a worksheet flagged IsChartSheet = True and seeds Charts[0] مع نقطة إرساء افتراضية معقولة لصفحة كاملة. تكتب SaveAs هذه الأوراق إلى xl/chartsheets/sheetN.xmlيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS TXLSXAlignment
ParallelParseيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: LastModifiedBy, AppVersion, SaveAs Open تمرر مدخلات ZIP لأوراق العمل مباشرة إلى inflaters وقراء XML خاصين بالـ worker. لا تُحتفظ بنسخ تجهيز من XML الأوراق بعد فك الضغط، ويُقفل مصدر الحزمة لكل قراءة موضعية فقط. اضبط False لتحليل ورقة عمل واحدة في كل مرة. الافتراضي هو True
ParallelParseThreadsتضبط الحد الأقصى لعدد تدفقات أوراق العمل التي تُحلل تزامنيًا أثناء Open. الصفر يختار عدد الـ workers التلقائي، والقيم الموجبة تضع حدًا صريحًا. ومجموعات عمل الـ inflater وقارئ XML النشطة محدودة بهذا العدد
StreamingWriteWhen True, SaveAs uses WriteWorksheetXmlStreaming لكل ورقة — لا يُحتفظ بأي كاش لـ sheetXmls، ويُصدَر sharedStrings.xml أخيرًا بعد أن تملأ كل ورقة الـ SST. وبالجمع مع TXLSWideStringBuilder يبقى استهلاك الذاكرة خطيًا على الأوراق الكبيرة. الافتراضي هو False (السلوك الحالي)
PreserveUnsupportedParts / ClearUnsupportedPartsPreserveUnsupportedParts قيمتها الافتراضية True وتحتفظ بأجزاء الحزمة غير المعروفة القابلة للوصول عبر العلاقات، إضافة إلى إعلانات مساحات الأسماء الأجنبية لجذر المصنف وسمات markup-compatibility وكل <extLst> مصنف protection toggle مع optional 16-bit legacy كلمة مرور hash و ClearUnsupportedParts/ UnsupportedPartCount flags. Reflected as UnsupportedPartBytes في xl/مصنف.xml
PreserveRawPartsيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS
SaveAsEncrypted / OpenEncrypted / CanReadEncryptedيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OLE, VBA, SaveAs SaveAsEncrypted AddChartSheet(Name, Type, Title) CanReadEncrypted يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: SaveAs OpenEncrypted TXLSXChart Open StreamingWrite EXlsxEncryptionNotImplemented يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: ECMA, AES, OLE, NI, OLE2
SaveAs(FileName)يكتب المصنف إلى الملف المعطى. يعيد 1 عند النجاح وقيمة سالبة عند الفشل. إذا كان المصنف بلا أوراق تُضاف ورقة Sheet1 افتراضية قبل الكتابة
هذا التحميل الزائد و SaveAs(FileName, FileFormat) يدرجان الإخراج مرحليًا قبل استبدال الوجهة إذا فشل الاستبدال فتكون قيمة الإرجاع -1 ويعلن LastDiagnostic عن xlsDiagnosticOutputCommitFailed (1005) ورمز NativeCodeالأصلي لـ Windows ورسالة خطأ النظام تبقى الوجهة القديمة و FileName الخاص بالمصنف دون تغيير؛ ويُحرَّر الإخراج المؤقت، ويمسح الحفظ اللاحق التشخيص السابق
SaveAs(FileName, FileFormat)يقبل xlsxOpenXMLWorkbook لإخراج OOXML العادي أو xlsxOpenDocumentSpreadsheet لـ ODS أو xlsxOpenXMLTemplate لقالب XLTX خالٍ من وحدات الماكرو أو xlsxOpenXMLMacroEnabledTemplate لقالب XLTM، مع دعم الإخراج المخزن والمتدفق لجميع خيارات OOXML
يكتب إخراج القالب application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml للملف /xl/workbook.xml؛ استخدم الامتداد .xltx للملفات و application/vnd.openxmlformats-officedocument.spreadsheetml.template عند تقديم الحزمة عبر HTTP
يجب اختيار التنسيق صراحة: لا امتداد الملف ولا القالب المستورد يغيّر إخراج SaveAs الافتراضي
إذا وُجد مشروع VBA يعيد إخراج XLTX القيمة -1 مع تشخيص تنسيق غير مدعوم قبل كتابة الوجهة؛ ويحفظ XLTM مشروعَ VBA القائم ويقبل أيضًا مصنفًا بلا وحدات ماكرو
SaveAsODS يبقى الاختصار المسمى لإخراج ODS مع تحكم اختياري عبر TODSExportOptions
GetConversionReport / SaveAsChecked يفحص تقرير تحويل ميزات معروفة مملوكًا للمستدعي وخاليًا من التعديل، أو يرفض الميزات المتدهورة والمسقطة قبل الكتابة بترك AllowLossy=False ويظل الحفظ الضائع الصريح يرفض التحويلات غير المدعومة؛ راجع دقة الحساب والتحويل لمعرفة حدود الهدف والملكية والتشخيص والحفظ
SaveAs(Stream) / SaveAs(Stream, FileFormat)يكتب المصنف مباشرة في أي TStream، ويقبل التحميل الزائد FileFormat ‏ xlsxOpenXMLWorkbook أو xlsxOpenDocumentSpreadsheet أو xlsxOpenXMLTemplate أو xlsxOpenXMLMacroEnabledTemplate لمصنفات OOXML أو جداول ODS أو قوالب XLTX أو قوالب XLTM في الذاكرة
يعيد 1 عند النجاح، وتحترم عمليات الحفظ إلى تدفق RecalcBeforeSave: يحفظ الوضع اليدوي ذاكرات الصيغ المؤقتة القائمة، بينما تُحدّث سياسات dirty وalways تلك الذواكر قبل التسلسل
يحتفظ المتصل بملكية التدفق؛ والإلغاء قبل بدء الكتابة يحفظ محتواه وموضعه، بينما قد يترك الفشل بعد بدء التسلسل مخرجات جزئية
Open(FileName)يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OOXML, xlsx Sheets collection with its contents. Returns 1 on success
Open(FileName, Password)Reserved لـ future encrypted XLSX دعم. Behaves like Open(FileName) today — كلمة مرور هو ignored
Open(Stream)يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OOXML, xlsx TStream. Returns 1 on success
OpenCSV(FileName) / OpenCSV(Stream)تستورد نص CSV أو TSV إلى المصنف مع كشف تلقائي للفاصل (,, ;، علامة جدولة، أو الشرطة العمودية)، وكشف ترميز UTF-8 / UTF-16 اعتمادًا على BOM، وحقول مقتبسة على نمط RFC 4180، واستنتاج اختياري لنوع القيمة عبر ADetectTypes overloads. Calling Open(FileName) on .csv or .tsv يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: CSV, TSV, BOM, UTF-8, UTF-16, RFC أسلوب OpenCSV
OpenODS(FileName) / OpenODS(Stream)يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OpenDocument, AutoFilter, OpenFormula, ODS.odsSaveAsODS(FileName) / SaveAsODS(Stream) content.xml, shared style information from styles.xmlيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OpenDocument, ODF, AutoFilter, HotXLS
SaveAsODS(FileName) / SaveAsODS(Stream), with optional TODSExportOptionsيحفظ المصنف بوصفه حزمة OpenDocument Spreadsheet صالحة. ويكتب mimetype الخاص بـ ODF وقائمة الحزم وmetadata والأنماط ومحتوى أوراق العمل مباشرةً، حاملًا القيم المُنمَّطة والصيغ والأنماط والنص الغني والأبعاد والدمجات والارتباطات التشعبية والصور والمخططات والأسماء المعرفة ونطاقات AutoFilter والتنسيقات الشرطية وعمليات التحقق من صحة البيانات وتثبيت الأجزاء وإعداد الصفحة والترويسات/التذييلات ونطاقات الطباعة وفواصل الصفحات اليدوية ومجموعات المخطط التفصيلي ولون علامة التبويب ورؤية ورقة العمل حيثما يمثلها نموذج مصنف HotXLS. وتمرير خيارات التصدير، بما فيها nil، يحافظ على سياسة إعادة الحساب وإلغاء التقدم والتشخيصات وحماية الكتابة العادية. ويجهّز الإخراج إلى ملف ملفًا شقيقًا ولا يستبدل الوجهة إلا بعد تسلسل ناجح؛ ويحفظ فشل التسلسل والإلغاء قبل الالتزام الوجهةَ السابقة. ويبلّغ تقدم الكتابة عن كل جدول مكتمل، وppsEnd إشعار نهائي لا يمكن لطلب Abort الخاص به إلغاء حفظ مكتمل بالفعل. ويحفظ الإخراج إلى تدفق ملكيةَ المتصل وسلوكَ الحفظ إلى تدفق العادي، الذي قد يترك مخرجات جزئية بعد بدء التسلسل
TODSExportOptionsيتحكم في إخراج ODS. يتجاوز Generator قيمة meta:generator في meta.xml؛ والقيمة الفارغة تستخدم سلسلة المولد المدمجة في HotXLS. وافتراض IncludeCharts و IncludeImages هو True، وعند ضبطهما على False تُزال أطر الرسم المطابقة وأجزاء الحزمة ومدخلات قائمة الحزم معًا فلا يبقى في الإخراج مرجع مخطط أو صورة يتيمة. ونسخة الخيارات مملوكة للمستدعي وعليه تحريرها
GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList)يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: ARGB, OOXML, SaveAs content.xml into AList دون إعادة تهيئة المصنف أو تعبئته. استخدمه عندما يحتاج منتقي ملفات أو سير عمل استيراد إلى أسماء الأوراق قبل تحميل المصنف
SaveAsCSV overloadsأربع نسخ (FileName أو Stream × الورقة النشطة الافتراضية / SheetIndex + Delimiter صريحين). تكتب الورقة المختارة كملف CSV بترميز UTF-8 مع BOM. وتُعرض قيم التواريخ yyyy-mm-dd hh:nn:ss؛ وتُحسب خلايا الصيغ قبل التصدير، ولا يُستخدم نص الصيغة إلا عندما يتعذر الحساب تعيد 0 عند النجاح
SaveAsHTML overloadsOptions overloads accept TXLSXHtmlExportOptions for Title, WriteDocument, IncludeStyles, IncludeBOM, and TableClass. Set WriteDocument to False for a table fragment; set IncludeBOM to False عند تضمين المخرجات في استجابة UTF-8 قائمة. وتحافظ المخرجات المصدَّرة الآن على الارتباطات التشعبية للخلايا كـ <a> anchors and anchored images as inline data: لعناوين URI للصور؛ ويشمل التصدير على مستوى المصنف نقاط الإرساء خارج الخلايا المعبأة. كما تُصدَر تعليقات الخلايا بشكل مهرَّب كـ <td>title سمات، ويشمل التصدير على مستوى المصنف نقاط إرساء التعليقات فقط. وعند IncludeStyles is enabled, explicit ColWidth values are emitted as <col> widths and explicit RowHeight values as <tr> كأنماط ارتفاع. وتُصدَر أجزاء النص المنسّق للخلايا بشكل مهرَّب كـ <span> عناصر مع أنماط خط ولون وتأكيد وتسطير مضمّنة عندما IncludeStyles مُمكَّن. وتُصدَر حدود الخلايا كـ CSS border-left, border-right, border-top, and border-bottom rules when IncludeStyles مُمكَّن. الصفوف والأعمدة المخفية المعلَّمة بـ RowHidden / ColHidden، بالإضافة إلى الأعمدة ذات العرض الصفري المعلَنة صراحةً، تُتخطى في الجدول المولَّد وفي <colgroup>. وتُصدَر إعدادات المحاذاة العمودية كـ CSS vertical-align rules when IncludeStyles is enabled
SaveAsRTF overloadsأربع نسخ (FileName أو Stream × الورقة النشطة الافتراضية / SheetIndex صريح). تكتب الورقة المختارة كمستند RTF 1.6 بجدول بسيط. وتُشتق أعرضية الأعمدة من ColWidth (وحدة الحرف الواحدة ≈ 96 twip؛ افتراضيًا 809 twip). تُطبَّق الغامق / المائل / حجم الخط لكل خلية؛ وتُرمَّز المحارف غير ASCII كـ \uN? تسلسلات هروب unicode في RTF ذات 16 بت إشارية. ولا تمتد الخلايا المدمجة. تعيد 0 عند النجاح
ActiveSheetفهرس يبدأ من 1 للورقة النشطة (المحددة) (0 عند عدم وجودها)، وهو يطابق ActiveSheetIndex. SaveAs writes activeTab="N" on <workbookView> (the OOXML activeTab نفسها تظل تبدأ من 0) عندما يلزم إصدار خيارات عرض المصنف، ويعلّم الورقة المطابقة بـ tabSelected="1"
Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScrollWorkbook-window chrome flags written to <workbookView>. Minimized writes minimized="1", WindowHidden writes visibility="hidden", and ShowHorizontalScroll / ShowVerticalScroll hide or show the workbook scrollbars. Open round-trips all four values
XWindow / YWindow / WindowWidth / WindowHeightWorkbook-window geometry written to <workbookView>. XWindow and YWindow store the window origin, while WindowWidth and WindowHeight يخزنان حجمها. وتُحصر القيم في 0..65535 وتُحفظ وتُستعاد عند التحميل
ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGroupingWorkbook-window view options written to <workbookView>. ShowSheetTabs hides or shows the sheet-tab bar, TabRatio يتحكم في تقسيم العرض بين شريط علامات التبويب وشريط التمرير، ويُحصر بين 0..1000، FirstSheet يختار أول علامة تبويب مرئية بوصفها فهرس ورقة يبدأ من 0، ويُحصر في ورقة موجودة، و AutoFilterDateGrouping يتحكم في تجميع التواريخ في Excel ضمن القوائم المنسدلة لـ AutoFilter. Open round-trips all four values
Date1904Workbook date base. False (الافتراضي) = عصر 1900 الخاص بـ Windows؛ True = عصر 1904 الخاص بـ Mac (يزيح كل رقم تسلسلي للتاريخ بمقدار 1462 يومًا). اضبط هذه before assigning TDateTime كقيم خلايا ليعرض Excel تاريخ التقويم نفسه
Iterate / IterateCount / IterateDeltaيتحكم في الحساب التكراري للمراجع الدائرية IterateCount يُحصر في 1..32767 وافتراضيه 100 IterateDelta يقبل قيمًا منتهية غير سالبة و افتراضيه 0.001 وتظل الحدود غير الافتراضية محفوظة حتى عندما Iterate is currently False
CalcMode / RefMode / CalcIdيتحكم في وضع حساب المصنف ونمط مراجع الصيغ وهوية محرك الحساب CalcMode accepts auto, manual, or autoNoTableRefMode accepts A1 or R1C1 مع إدخال لا يراعي حالة الأحرف وإخراج قياسي ويستخدم إخراجُ الأخطاء الحديثة الغنية قيمةَ CalcId صادرة لا تقل عن 191029 حتى يفسّر Excel الأخطاءَ الحديثة المخزنة مؤقتًا، محافظًا على القيم المطلوبة الأعلى وترك الخاصية في الذاكرة دون تغيير
FullCalcOnLoad / ForceFullCalc / CalcCompleted / CalcOnSave / FullPrecisionيتحكم في إعادة الحساب الكامل واكتمال الحساب المخزَّن مؤقتًا وإعادة الحساب قبل الحفظ وسياسة الدقة وكل قيمة غير افتراضية تُصدِر وتُحفظ وتُستعاد على حدة الـ <calcPr> attribute
ConcurrentCalc / ConcurrentManualCountيتحكم في الحساب المتزامن للمصنف وفي تلميح عدد الـ workers اليدوي ConcurrentManualCount is clamped to zero or greater
SourceFormatتعرض عائلة الحزمة التي حمّلها آخر استدعاء ناجح لـ Open أو OpenODS، معيدًا xlsxOpenXMLWorkbook لمصنفات وقوالب OOXML بما فيها XLTX و XLTM، و xlsxOpenDocumentSpreadsheet لـ ODS، و xlsxExcelBinaryWorkbook للمجموعة الفرعية المدعومة لقيم وأنماط XLSB
ويعرض المصنف المنشأ حديثًا xlsxOpenXMLWorkbook حتى يُفتح ملف، وهذه الخاصية لا تختار تنسيق الإخراج
IndexedColor[Index]قيمة ARGB لخانة لوحة الألوان المفهرسة في OOXML المحددة (0..63). تعيد القراءة تجاوز المستخدم إن وُجد، وإلا فالافتراضي المضمّن في OOXML (XlsxDefaultIndexedPalette) Writing overrides slot N; SaveAs then emits a full <indexedColors> block with all 64 slots
ResolveIndexedColorClassifies public color indexes, BIFF icv قيمًا، أو ألوان OOXML المفهرسة، ويحلّ قيمة ARGB مطبَّعة عندما توفرها لوحة ألوان المصنف أو callback صريح للون النظام
NearestIndexedColorتعيد أقرب مدخل فعلي في لوحة الألوان عبر أداة المطابقة OKLab المخزنة مؤقتًا والمشتركة، دون تغيير اللوحة أو حالة المصنف
ScanIndexedColorUsageتعيد جردًا حتميًا للخانات الـ 56 يضم ألوان لوحة الألوان وعدود التعريفات والمراجع وأنواع المستهلكين وأقفال الحفظ، دون تجسيد الخلايا أو تغيير حالة المصنف
BuildBiffPalettePlanتعيد خطة حتمية للقراءة فقط لخانات لوحة BIFF الـ 56 تشمل الخانات المقفلة وأهداف الألوان الحقيقية المجمعة والتعيّنات الحتمية وهوية المصدر وإحصاءات خطأ OKLab المرجّحة
ApplyBiffPalettePlanيتحقق من هوية المصدر وبيانات الخانات الوصفية والأقفال وأهداف الألوان المعتمة قبل تطبيق جميع مدخلات اللوحة المتغيرة تطبيقًا ذريًا وإعادة بناء أداة المطابقة المخزنة مؤقتًا مرة واحدة
HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColorsHasCustomIndexedColor(N) returns True when slot N was explicitly overridden CustomIndexedColorCount تعيد عدد الخانات المتجاوزة (0 = بلا <colors> block emitted by SaveAs) ResetIndexedColors يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: SaveAs
ExternalLinksيحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS TXLSXExternalLink entry holds a Target URL and a SheetNames list. SaveAs emits the <externalReferences> block in xl/workbook.xml and the corresponding xl/externalLinks/ أجزاء. يُبقي Open على Target و SheetNames عبر جولات الحفظ والاستعادة؛ أما قيم الخلايا المخزنة مؤقتًا داخل <sheetDataSet> are not preserved
CreateWorkspaceWorkbookReturns the revocable IXLSWorkspaceWorkbook adapter لهذا المصنف يحفظ الـ adapter هوية مصدر المصنف وتوليدَه وينقطع قبل تدمير نموذج المصنف
ExternalWorkspaceعند تمكين التحليل المتوازي للأوراق، تبقى callbacks التخطيط على الخيط المستدعي وتكتمل للأوراق المحددة قبل إفراغ طوابير الـ workers Live workbook workspace
RegisterExternalWorkbook / UnregisterExternalWorkbookCompatibility facade over ExternalWorkspace يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: URL, SaveAs, SheetNames

مثال

كتابة مصنف وإعادة فتحه:
uses lxHandleX;

var
  wb: TXLSXWorkbook;
begin
  wb := TXLSXWorkbook.Create;
  try
    wb.Sheets.Add('Demo').Cells.Item[1, 1].Value := 'Hello';
    wb.SaveAs('demo.xlsx');

    wb.Open('demo.xlsx');
    ShowMessage(wb.Sheets[0].Cells.Item[1, 1].Value);
  finally
    wb.Free;
  end;
end;
    

انظر أيضاً