These public members support integrations that inspect I/O, implement serializers, or coordinate calculation across workbooks, with workbook members declared in lxHandleX and the workspace graph declared in lxDepGraph
Ordinary applications should use cell formatting, SaveAs, Recalculate, and the external-workbook workspace APIs first; style-pool registration and graph scheduling require the same index and lifetime conventions as the library's serializers and calculation engine
TXLSXWorkbook.OnReadCell receives the sheet index, row, column, stored value, and formula for each materialized cell during XLSX parsing, with a writable Cancel flag; TXLSXWorkbook.OnWriteCell receives a writable output value plus Skip and Cancel flags before a cell is serialized, so a host can transform or omit output without replacing the workbook API with the direct stream API
Both callbacks use 1-based worksheet and cell coordinates, and their declared types are TXLSXCellReadEvent and TXLSXCellWriteEvent; callbacks execute inside the active I/O operation, so avoid starting another operation on the same workbook from a callback
TXLSXWorkbook.RecoveryMode defaults to False and allows supported worksheet-XML parsing failures to become warning diagnostics while opening continues, potentially leaving only partially recovered worksheet contents; it does not guarantee recovery from an unreadable ZIP package, so inspect diagnostics and recovered data before saving
TXLSXWorkbook.FireProgress dispatches a phase, state, current count, and total count to the assigned progress handlers, with the legacy handler receiving work notifications and the extended handler receiving all states; an extended handler can request cancellation, except that the writing-end notification cannot reverse an already committed output
TXLSXWorkbook.AddDiagnostic appends and returns a diagnostic owned by the workbook, records the supplied code, severity, operation, message, native code, sheet context, and package-part name, copies the exception class name when an exception is supplied, and invokes OnDiagnostic; it does not take ownership of the exception or raise it
function TXLSXWorkbook.AddDiagnostic(ACode: Integer; ASeverity: TXLSDiagnosticSeverity; AOperation: TXLSDiagnosticOperation; const AMessage: WideString; ANativeCode, ASheetIndex: Integer; const ASheetName, APartName: WideString; AException: Exception): TXLSDiagnostic;
TXLSXWorkbook.CSVEmitFormulas defaults to False and switches CSV output from formula results to formula text for formula cells; result output attempts formula evaluation and falls back to stored cell text or value when evaluation fails; TXLSXWorkbook.CSVQuoteAllStrings also defaults to False and forces quotes around text fields while numbers, dates, Booleans, Null, and Empty retain the normal quoting rules
TXLSXWorkbook.LastSaveUsedStreaming reports whether the most recent prepared save used worksheet streaming, while TXLSXWorkbook.LastSavePeakRowXmlChars reports the largest buffered row XML fragment, TXLSXWorkbook.LastSaveBufferedWorksheetXmlChars reports the combined buffered worksheet XML, and TXLSXWorkbook.LastSavePeakAuxiliaryXmlChars reports the largest tracked auxiliary XML fragment; these are character counts from serializer instrumentation rather than total process-memory measurements, and ODS output does not use the XLSX worksheet-streaming path
TXLSXWorkbook.TryCopyPreservedPart attempts to copy an eligible preserved source part, including its compressed representation, into a caller-supplied destination TZipArchive, returning True when copied or False when normal serialization is required; the source must remain available from a file-backed open, and missing or explicitly discarded parts cannot be copied
The caller owns the destination archive and must finish it normally; a compressed-copy rollback failure can still raise an exception, and this helper neither constructs a complete workbook package nor updates its relationships or content types
TXLSXWorkbook.SaveAsEncryptedAgile accepts a file name and nonempty password, serializes the XLSX package in memory, and writes the Agile encrypted container, returning 1 on success or -1 on a reported failure; optional VerifyEncryptedSave performs a reopen check after writing, and the method requires memory for the unencrypted package as well as its serialized bytes
TXLSXWorkbook.VerifyEncryptedFile opens the supplied file and password in a temporary workbook and returns True only when that open succeeds, converting exceptions to False; this checks readability rather than comparing every cell with the current workbook, and follows the normal OpenEncrypted behavior for an unencrypted XLSX input
TXLSXWorkbook.DocSecurity stores the extended document-property bit field: 1 denotes password protection, 2 read-only recommendation, 4 enforced read-only status, and 8 annotation locking; these metadata bits do not themselves apply encryption or access restrictions
TXLSXWorkbook.DocPropsTouched is the read-only flag used by the document-property writers to decide whether tracked properties have been configured; tracked property setters such as Title set it, whereas directly assigned extended metadata does not automatically set it
TXLSXWorkbook.WorkbookProtectHash exposes the loaded or generated legacy workbook-protection hash, normally four hexadecimal digits or an empty string when no password hash exists; use the workbook protection methods to change protection rather than assigning this read-only value, and keep workbook-structure protection separate from encrypted file storage
TXLSXWorkbook.ThemeMajorFont and TXLSXWorkbook.ThemeMinorFont expose the heading and body typefaces loaded from the theme and override the names when the default Office theme is generated; a verbatim preserved theme takes precedence over these font-name settings
TXLSXWorkbook.DefaultTableStyleName and TXLSXWorkbook.DefaultPivotStyleName round-trip the default names stored in the style table for newly inserted Excel tables and PivotTables; assigning them does not directly reformat every existing object
TXLSXWorkbook.ResolveTableStyle returns a workbook-owned custom style by name, otherwise resolves and caches supported built-in TableStyleLight1 through TableStyleLight21, TableStyleMedium1 through TableStyleMedium28, or TableStyleDark1 through TableStyleDark11, and returns nil for an unknown name; do not free the returned style
TXLSXWorkbook.FastStyleAppend defaults to False and lets bulk creation skip deduplication scans in the style pools and ordinary composite-style registration, trading a larger style table for faster insertion when many distinct styles are created
function TXLSXWorkbook.RegisterCompositeXf( AFont, AFill, ABorder, ANumFmt, AAlign, AProt: Integer): Integer; overload; function TXLSXWorkbook.RegisterCompositeXf( AFont, AFill, ABorder, ANumFmt, AAlign, AProt, ABuiltinNumFmt: Integer): Integer; overload; function TXLSXWorkbook.RegisterLinkedCompositeXf( AFont, AFill, ABorder, ANumFmt, AAlign, AProt, AParentXfId: Integer; ALinkedParts: TXLSXFormatParts): Integer;
TXLSXWorkbook.RegisterCompositeXf registers the combined font, fill, border, number-format, alignment, and protection indices and returns the absolute cellXfs index, not a composite-pool slot; the seven-argument overload accepts a built-in number-format ID that takes precedence over the supplied custom format index, with zero meaning no override
TXLSXWorkbook.RegisterLinkedCompositeXf additionally records the parent style-XF ID and the format parts linked to that parent, retaining separate entries for different parent or linkage combinations; it also returns an absolute cellXfs index
TXLSXWorkbook.CompositeXfBase returns the first absolute composite index, calculated from the current single-dimension style pools, while TXLSXWorkbook.CompositeXfCount counts registered composite entries; a pool slot used by GetCompositeXf is the absolute index minus the base, and the base can change when those pools grow, so these values belong to the current serialization state
TXLSXWorkbook.RegisterCondDxf registers a borrowed TXLSDxfStyle reference and returns its zero-based differential-style ID, reusing an existing ID for the same object reference; keep the object alive while serialization uses it
TXLSXWorkbook.ResetCondDxfs clears the active registry count without freeing borrowed styles, and TXLSXWorkbook.CondDxfCount reports that count; save preparation rebuilds this registry, so do not persist these IDs independently of the package being written
TXLSXWorkbook.PivotCaches is the workbook-owned TXLSPivotCaches collection shared by worksheet PivotTables; AddPivotTable reuses a matching source cache or creates one, and RefreshPivotCache refreshes the identified cache while preserving supported member identities
TXLSXWorkbook.RecalcThreads defaults to zero, with zero or one using serial recalculation and larger values enabling worker evaluation of independent formula frontiers; workbooks with dynamic arrays use a serial pass regardless of this setting, what-if data-table nodes remain serial, and user-function handlers used by workers must be thread-safe
TXLSXWorkbook.SolveCycleIteratively is an advanced entry point normally invoked by Recalculate when iteration is enabled, consuming node indices from that workbook's current dependency graph and evaluating cycle nodes in the supplied TList; indices from a workspace graph or another workbook are not interchangeable
The solver uses IterateCount and IterateDelta, retains the final values even if the iteration limit is reached, and returns lxOk without certifying convergence; dynamic-array cycle members return lxErrorCircumRef, and the signature's CycleCount argument does not replace cycle classification on the graph nodes
TXLSWorkspaceDepGraph stores formula dependencies across caller-supplied workbook identities and sheet identities without opening workbooks or evaluating formulas; construct a graph from the current formulas and resolved references, then rebuild it after structural or formula changes that invalidate those references
function TXLSWorkspaceDepGraph.AddNode( const AWorkbookIdentity, ASheetName: WideString; ASheetIndex, ARow, ACol, AOutRow2, AOutCol2: Integer; AVolatile: Boolean; AReferences: TXLSWorkspaceDepReferenceList; ARefUnstable: Boolean = False): Integer; procedure TXLSWorkspaceDepGraph.DirtyTopoOrder(AOrder: TList; out ACycleNodeCount, ABlockedNodeCount: Integer);
TXLSWorkspaceDepGraph.AddNode appends a formula node and returns its zero-based node index, copying the supplied references rather than owning their list; sheet indices are 1-based, while row and column coordinates, including the inclusive output rectangle's bottom-right corner, are zero-based calculator coordinates
TXLSWorkspaceDepReferenceList.Add appends a resolved cell, range, or defined-name reference record, TXLSWorkspaceDepReferenceList.Items reads those records by zero-based index, and TXLSWorkspaceDepReferenceList.Clear resets the list for reuse; the caller owns this input list and can clear or free it after AddNode has copied its entries
TXLSWorkspaceDepGraph.BuildEdges resolves stored cell and range references against formula output rectangles; references marked LookupScan propagate dirtiness but do not impose evaluation order or participate in cycle detection
TXLSWorkspaceDepGraph.NodeIndexOf resolves a workbook, sheet, row, and column to a zero-based node index or -1 when absent, using the sheet name when available and the declared sheet index as a fallback
TXLSWorkspaceDepGraph.FindDependentsOfDefinedName clears a supplied non-nil TList and fills it with the node indices that directly refer to the named symbol in the specified workbook and scope, with a negative scope index matching all scopes; entries are encoded as Pointer(NativeInt(NodeIndex)), so a nil list entry can represent node zero
TXLSWorkspaceDepGraph.BeginDirtyGeneration starts a new generation, resets the active dirty-node count and cycle-blocked flags, and makes earlier dirty stamps inactive; call it before marking the nodes for a new recalculation pass
TXLSWorkspaceDepGraph.MarkAllDirty marks every node in the current generation; TXLSWorkspaceDepGraph.MarkWorkbookDirty seeds nodes belonging to the identified workbook and nodes referring to it, then propagates to dependents, while TXLSWorkspaceDepGraph.MarkVolatileDirty seeds volatile nodes and TXLSWorkspaceDepGraph.MarkCyclesDirty seeds detected cycle components, also propagating their dirtiness
TXLSWorkspaceDepGraph.IsNodeDirty reports whether a valid node carries the current generation stamp and returns False for an invalid index; TXLSWorkspaceDepGraph.DirtyGeneration exposes that stamp and TXLSWorkspaceDepGraph.DirtyNodeCount counts the nodes marked in the active generation
TXLSWorkspaceDepGraph.DirtyTopoOrder requires a non-nil caller-owned TList, clears it, and fills it with dirty node indices in dependency order, excluding dirty cycle nodes and nodes blocked by those cycles; its two output counts distinguish cycle members from blocked downstream nodes, and list entries use the same pointer-encoded zero-based index convention
TXLSWorkspaceDepGraph.HasRefUnstable reports whether any node was added with the reference-unstable flag, which lets the caller avoid relying on a stale static schedule when formula references can change at evaluation time; the graph does not resolve those changing references by itself
TXLSWorkspaceDepGraph.NodeCount counts formula nodes, TXLSWorkspaceDepGraph.ReferenceCount counts copied references, and TXLSWorkspaceDepGraph.EdgeCount reports built dependency edges; call BuildEdges before consuming edge statistics
TXLSWorkspaceDepGraph.WorkbookCount counts interned workbook identities, including identities introduced by references, and TXLSWorkspaceDepGraph.WorkbookIdentities enumerates them by zero-based index; these identity strings are graph keys rather than evidence that an external file was loaded
TXLSWorkspaceDepGraph.ComponentCount reports the number of strongly connected components after component construction, which is triggered by MarkCyclesDirty, DirtyTopoOrder, or component access; each Components record supplies NodeStart, NodeCount, and IsCycle
TXLSWorkspaceDepGraph.ComponentNodes exposes the flattened zero-based node-index array for those components, indexed from a component's NodeStart through NodeStart + NodeCount - 1; counts and indexed records describe the current graph and should be reacquired after graph reconstruction
Continue with additional XLSX facade members and the XLSX facade overview for the ordinary workbook entry points