Diese öffentlichen Member unterstützen Integrationen, die I/O inspizieren, Serializer implementieren oder Berechnung über Arbeitsmappen hinweg koordinieren, mit Arbeitsmappen-Membern deklariert in lxHandleX und dem Workspace-Graph deklariert in lxDepGraph
Gewöhnliche Anwendungen sollten zuerst Zellformatierung, SaveAs, Recalculate und die externen Arbeitsmappen-Workspace-APIs verwenden; Style-Pool-Registrierung und Graph-Scheduling erfordern dieselbe Index- und Lebensdauerkonvention wie die Serializer und die Berechnungs-Engine der Bibliothek
TXLSXWorkbook.OnReadCell erhält den Blattindex, Zeile, Spalte, gespeicherten Wert und die Formel jeder materialisierten Zelle während des XLSX-Parsens, mit einem schreibbaren Cancel-Flag; TXLSXWorkbook.OnWriteCell erhält einen schreibbaren Ausgabewert plus Skip- und Cancel-Flags, bevor eine Zelle serialisiert wird, sodass ein Host die Ausgabe transformieren oder weglassen kann, ohne die Arbeitsmappen-API durch die direkte Stream-API zu ersetzen
Beide Callbacks nutzen 1-basierte Arbeitsblatt- und Zellkoordinaten, und ihre deklarierten Typen sind TXLSXCellReadEvent und TXLSXCellWriteEvent; Callbacks laufen innerhalb der aktiven I/O-Operation, vermeiden Sie also, aus einem Callback heraus eine weitere Operation auf derselben Arbeitsmappe zu starten
TXLSXWorkbook.RecoveryMode steht standardmäßig auf False und lässt unterstützte Fehler beim Parsen von Arbeitsblatt-XML als Warnungsdiagnosen durchlaufen, während das Öffnen fortgesetzt wird, was möglicherweise nur teilweise wiederhergestellte Arbeitsblattinhalte hinterlässt; sie garantiert keine Wiederherstellung aus einem unlesbaren ZIP-Paket, prüfen Sie Diagnosen und wiederhergestellte Daten also vor dem Speichern
TXLSXWorkbook.FireProgress sendet Phase, Zustand, aktuelle Anzahl und Gesamtanzahl an die zugewiesenen Progress-Handler, wobei der Legacy-Handler Arbeitsbenachrichtigungen und der erweiterte Handler alle Zustände erhält; ein erweiterter Handler kann einen Abbruch anfordern, außer dass die Schreibende-Benachrichtigung eine bereits committete Ausgabe nicht rückgängig machen kann
TXLSXWorkbook.AddDiagnostic hängt eine von der Arbeitsmappe besessene Diagnose an und liefert sie zurück, zeichnet den gelieferten Code, die Schwere, die Operation, die Nachricht, den nativen Code, den Blattkontext und den Paketteilnamen auf, kopiert den Exception-Klassennamen, wenn eine Exception geliefert wird, und ruft OnDiagnostic auf; sie übernimmt weder den Besitz der Exception noch wirft sie
function TXLSXWorkbook.AddDiagnostic(ACode: Integer; ASeverity: TXLSDiagnosticSeverity; AOperation: TXLSDiagnosticOperation; const AMessage: WideString; ANativeCode, ASheetIndex: Integer; const ASheetName, APartName: WideString; AException: Exception): TXLSDiagnostic;
TXLSXWorkbook.CSVEmitFormulas steht standardmäßig auf False und schaltet die CSV-Ausgabe für Formelzellen von Formelergebnissen auf Formeltext um; die Ergebnis-Ausgabe versucht eine Formelauswertung und fällt bei Fehlschlag auf gespeicherten Zellentext oder -wert zurück; TXLSXWorkbook.CSVQuoteAllStrings steht ebenfalls standardmäßig auf False und erzwingt Quotes um Textfelder, während Zahlen, Daten, Boolean-Werte, Null und Empty die normalen Quoting-Regeln behalten
TXLSXWorkbook.LastSaveUsedStreaming meldet, ob der letzte vorbereitete Speichervorgang Arbeitsblatt-Streaming nutzte, während TXLSXWorkbook.LastSavePeakRowXmlChars das größte gepufferte Zeilen-XML-Fragment meldet, TXLSXWorkbook.LastSaveBufferedWorksheetXmlChars das kombinierte gepufferte Arbeitsblatt-XML und TXLSXWorkbook.LastSavePeakAuxiliaryXmlChars das größte verfolgte Hilfs-XML-Fragment; dies sind Zeichenzählungen aus Serializer-Instrumentierung, keine Gesamtprozessspeicher-Messungen, und die ODS-Ausgabe nutzt nicht den XLSX-Arbeitsblatt-Streaming-Pfad
TXLSXWorkbook.TryCopyPreservedPart versucht, einen geeigneten erhaltenen Quellteil einschließlich seiner komprimierten Repräsentation in ein aufrufergeliefertes Ziel-TZipArchive zu kopieren, und liefert True bei Kopie oder False, wenn normale Serialisierung erforderlich ist; die Quelle muss aus einem dateibasierten Öffnen verfügbar bleiben, und fehlende oder explizit verworfene Teile können nicht kopiert werden
Der Aufrufer besitzt das Zielarchiv und muss es normal abschließen; ein Rollback-Fehler einer komprimierten Kopie kann weiterhin eine Exception auslösen, und dieser Helper konstruiert weder ein vollständiges Arbeitsmappenpaket noch aktualisiert er dessen Beziehungen oder Inhaltstypen
TXLSXWorkbook.SaveAsEncryptedAgile akzeptiert einen Dateinamen und ein nichtleeres Passwort, serialisiert das XLSX-Paket im Speicher und schreibt den Agile-verschlüsselten Container, mit Rückgabe von 1 bei Erfolg oder -1 bei einem gemeldeten Fehlschlag; optionales VerifyEncryptedSave führt nach dem Schreiben eine Neuöffnungsprüfung durch, und die Methode braucht Speicher sowohl für das unverschlüsselte Paket als auch für seine serialisierten Bytes
TXLSXWorkbook.VerifyEncryptedFile öffnet die gelieferte Datei und das Passwort in einer temporären Arbeitsmappe und liefert True nur, wenn dieses Öffnen gelingt, und konvertiert Exceptions zu False; dies prüft Lesbarkeit, statt jede Zelle mit der aktuellen Arbeitsmappe zu vergleichen, und folgt dem normalen OpenEncrypted-Verhalten für eine unverschlüsselte XLSX-Eingabe
TXLSXWorkbook.DocSecurity speichert das erweiterte Dokumenteigenschaften-Bitfeld: 1 bezeichnet Passwortschutz, 2 eine Nur-Lese-Empfehlung, 4 erzwungenen Nur-Lese-Status und 8 Annotationssperre; diese Metadaten-Bits wenden selbst keine Verschlüsselung oder Zugriffsbeschränkungen an
TXLSXWorkbook.DocPropsTouched ist das nur lesende Flag, das die Dokumenteigenschaften-Writer nutzen, um zu entscheiden, ob verfolgte Eigenschaften konfiguriert wurden; verfolgte Property-Setter wie Title setzen es, während direkt zugewiesene erweiterte Metadaten es nicht automatisch setzen
TXLSXWorkbook.WorkbookProtectHash legt den geladenen oder erzeugten Legacy-Hash des Arbeitsmappenschutzes offen, normalerweise vier hexadezimale Ziffern oder ein leerer String, wenn kein Passworthash existiert; verwenden Sie die Arbeitsmappenschutz-Methoden, um den Schutz zu ändern, statt diesen nur lesenden Wert zuzuweisen, und halten Sie den Arbeitsmappenstrukturschutz von verschlüsselter Dateispeicherung getrennt
TXLSXWorkbook.ThemeMajorFont und TXLSXWorkbook.ThemeMinorFont legen die aus dem Thema geladenen Überschriften- und Textschriften offen und überschreiben die Namen, wenn das Standard-Office-Thema erzeugt wird; ein wörtlich erhaltenes Thema hat Vorrang vor diesen Schriftnamen-Einstellungen
TXLSXWorkbook.DefaultTableStyleName und TXLSXWorkbook.DefaultPivotStyleName führen die im Stil-Table gespeicherten Standardnamen für neu eingefügte Excel-Tabellen und PivotTables als Roundtrip; das Zuweisen formatiert nicht direkt jedes vorhandene Objekt um
TXLSXWorkbook.ResolveTableStyle liefert einen arbeitsmappeneigenen eigenen Stil nach Name, löst und cached sonst unterstützte eingebaute Stile von TableStyleLight1 bis TableStyleLight21, TableStyleMedium1 bis TableStyleMedium28 oder TableStyleDark1 bis TableStyleDark11 und liefert nil für einen unbekannten Namen; geben Sie den zurückgelieferten Stil nicht frei
TXLSXWorkbook.FastStyleAppend steht standardmäßig auf False und lässt Massenerzeugung Deduplizierungs-Scans in den Style-Pools und die gewöhnliche Composite-Style-Registrierung überspringen, tauscht also eine größere Stil-Table gegen schnelleres Einfügen, wenn viele unterschiedliche Stile erzeugt werden
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 registriert die kombinierten Schrift-, Füll-, Rahmen-, Zahlenformat-, Ausrichtungs- und Schutzindizes und liefert den absoluten cellXfs-Index, keinen Composite-Pool-Slot; die Sieben-Argument-Überladung akzeptiert eine eingebaute Zahlenformat-ID, die Vorrang vor dem gelieferten eigenen Formatindex hat, wobei null keine Überschreibung bedeutet
TXLSXWorkbook.RegisterLinkedCompositeXf zeichnet zusätzlich die Eltern-Style-XF-ID und die mit diesem Eltern verknüpften Formatteile auf und behält separate Einträge für verschiedene Eltern- oder Verknüpfungskombinationen; sie liefert ebenfalls einen absoluten cellXfs-Index
TXLSXWorkbook.CompositeXfBase liefert den ersten absoluten Composite-Index, berechnet aus den aktuellen eindimensionalen Stil-Pools, während TXLSXWorkbook.CompositeXfCount registrierte Composite-Einträge zählt; ein von GetCompositeXf genutzter Pool-Slot ist der absolute Index minus die Basis, und die Basis kann sich ändern, wenn diese Pools wachsen, also gehören diese Werte zum aktuellen Serialisierungszustand
TXLSXWorkbook.RegisterCondDxf registriert eine geliehene TXLSDxfStyle-Referenz und liefert ihre nullbasierte Differentialstil-ID, wobei eine vorhandene ID für dieselbe Objektreferenz wiederverwendet wird; halten Sie das Objekt am Leben, solange die Serialisierung es nutzt
TXLSXWorkbook.ResetCondDxfs leert die aktive Registrierungsanzahl, ohne geliehene Stile freizugeben, und TXLSXWorkbook.CondDxfCount meldet diese Anzahl; die Speichervorbereitung baut diese Registrierung neu auf, persistieren Sie diese IDs also nicht unabhängig vom geschriebenen Paket
TXLSXWorkbook.PivotCaches ist die arbeitsmappeneigene TXLSPivotCaches-Sammlung, die von Arbeitsblatt-PivotTables geteilt wird; AddPivotTable verwendet einen passenden Quellcache wieder oder erzeugt einen, und RefreshPivotCache aktualisiert den identifizierten Cache und bewahrt dabei unterstützte Member-Identitäten
TXLSXWorkbook.RecalcThreads steht standardmäßig auf null, wobei null oder eins serielle Neuberechnung nutzt und größere Werte Worker-Auswertung unabhängiger Formelgrenzflächen aktiviert; Arbeitsmappen mit dynamischen Arrays nutzen einen seriellen Durchlauf unabhängig von dieser Einstellung, What-if-Datentabellen-Knoten bleiben serial, und von Workern genutzte User-Function-Handler müssen threadsicher sein
TXLSXWorkbook.SolveCycleIteratively ist ein erweiterter Einstiegspunkt, den Recalculate normalerweise aufruft, wenn Iteration aktiviert ist, der Knotenindizes aus dem aktuellen Abhängigkeitsgraph dieser Arbeitsmappe verbraucht und Zyklusknoten in der gelieferten TList auswertet; Indizes aus einem Workspace-Graph oder einer anderen Arbeitsmappe sind nicht austauschbar
Der Solver nutzt IterateCount und IterateDelta, behält die Endwerte, selbst wenn das Iterationslimit erreicht wird, und liefert lxOk, ohne Konvergenz zu zertifizieren; Dynamische-Array-Zyklusmember liefern lxErrorCircumRef, und das CycleCount-Argument der Signatur ersetzt keine Zyklusklassifikation auf den Graphknoten
TXLSWorkspaceDepGraph speichert Formelabhängigkeiten über aufrufergelieferte Arbeitsmappen- und Blattidentitäten hinweg, ohne Arbeitsmappen zu öffnen oder Formeln auszuwerten; konstruieren Sie einen Graph aus den aktuellen Formeln und aufgelösten Referenzen und bauen Sie ihn dann neu, nachdem strukturelle oder Formeländerungen diese Referenzen invalidiert haben
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 hängt einen Formelknoten an und liefert seinen nullbasierten Knotenindex, wobei die gelieferten Referenzen kopiert werden, statt deren Liste zu besitzen; Blattindizes sind 1-basiert, während Zeilen- und Spaltenkoordinaten, einschließlich der rechten unteren Ecke des inklusiven Ausgaberechtecks, nullbasierte Calculator-Koordinaten sind
TXLSWorkspaceDepReferenceList.Add hängt einen aufgelösten Zell-, Bereichs- oder definierten Namen-Referenzrecord an, TXLSWorkspaceDepReferenceList.Items liest diese Records per nullbasiertem Index, und TXLSWorkspaceDepReferenceList.Clear setzt die Liste zur Wiederverwendung zurück; der Aufrufer besitzt diese Eingabeliste und kann sie leeren oder freigeben, nachdem AddNode ihre Einträge kopiert hat
TXLSWorkspaceDepGraph.BuildEdges löst gespeicherte Zell- und Bereichsreferenzen gegen Formelausgaberechtecke auf; als LookupScan markierte Referenzen propagieren Verschmutzung, erzwingen aber keine Auswertungsreihenfolge und nehmen nicht an der Zykluserkennung teil
TXLSWorkspaceDepGraph.NodeIndexOf löst eine Arbeitsmappe, ein Blatt, eine Zeile und eine Spalte zu einem nullbasierten Knotenindex oder -1 bei Abwesenheit auf, mit dem Blattnamen, wenn verfügbar, und dem deklarierten Blattindex als Fallback
TXLSWorkspaceDepGraph.FindDependentsOfDefinedName leert eine gelieferte Nicht-nil-TList und füllt sie mit den Knotenindizes, die direkt auf das benannte Symbol in der angegebenen Arbeitsmappe und dem angegebenen Scope verweisen, wobei ein negativer Scope-Index alle Scopes matcht; Einträge sind als Pointer(NativeInt(NodeIndex)) codiert, daher kann ein nil-Listeneintrag Knoten null repräsentieren
TXLSWorkspaceDepGraph.BeginDirtyGeneration startet eine neue Generation, setzt die aktive Dirty-Knotenanzahl und die zyklusblockierten Flags zurück und macht frühere Dirty-Stempel inaktiv; rufen Sie es auf, bevor Sie die Knoten für einen neuen Neuberechnungsdurchlauf markieren
TXLSWorkspaceDepGraph.MarkAllDirty markiert jeden Knoten der aktuellen Generation; TXLSWorkspaceDepGraph.MarkWorkbookDirty startet mit Knoten der identifizierten Arbeitsmappe und Knoten, die auf sie verweisen, und propagiert dann zu abhängigen Knoten, während TXLSWorkspaceDepGraph.MarkVolatileDirty volatile Knoten startet und TXLSWorkspaceDepGraph.MarkCyclesDirty erkannte Zykluskomponenten startet, ebenfalls mit Propagation ihrer Verschmutzung
TXLSWorkspaceDepGraph.IsNodeDirty meldet, ob ein gültiger Knoten den Stempel der aktuellen Generation trägt, und liefert False für einen ungültigen Index; TXLSWorkspaceDepGraph.DirtyGeneration legt diesen Stempel offen und TXLSWorkspaceDepGraph.DirtyNodeCount zählt die in der aktiven Generation markierten Knoten
TXLSWorkspaceDepGraph.DirtyTopoOrder erfordert eine Nicht-nil-, aufruferbesessene TList, leert sie und füllt sie mit Dirty-Knotenindizes in Abhängigkeitsreihenfolge, ohne Dirty-Zyklusknoten und durch diese Zyklen blockierte Knoten; seine beiden Ausgabezählungen unterscheiden Zyklusmember von blockierten nachgelagerten Knoten, und Listeneinträge nutzen dieselbe zeigercodierte nullbasierte Indexkonvention
TXLSWorkspaceDepGraph.HasRefUnstable meldet, ob ein Knoten mit dem Referenz-instabil-Flag hinzugefügt wurde, sodass der Aufrufer vermeiden kann, sich auf einen veralteten statischen Plan zu verlassen, wenn sich Formelreferenzen zur Auswertungszeit ändern können; der Graph löst diese sich ändernden Referenzen nicht selbst auf
TXLSWorkspaceDepGraph.NodeCount zählt Formelknoten, TXLSWorkspaceDepGraph.ReferenceCount zählt kopierte Referenzen, und TXLSWorkspaceDepGraph.EdgeCount meldet gebaute Abhängigkeitskanten; rufen Sie BuildEdges auf, bevor Sie Kantenstatistiken verbrauchen
TXLSWorkspaceDepGraph.WorkbookCount zählt internierte Arbeitsmappenidentitäten, einschließlich durch Referenzen eingeführter Identitäten, und TXLSWorkspaceDepGraph.WorkbookIdentities enumeriert sie per nullbasiertem Index; diese Identitäts-Strings sind Graphschlüssel, kein Beleg dafür, dass eine externe Datei geladen wurde
TXLSWorkspaceDepGraph.ComponentCount meldet die Anzahl stark zusammenhängender Komponenten nach dem Komponentenaufbau, der durch MarkCyclesDirty, DirtyTopoOrder oder Komponentenzugriff ausgelöst wird; jeder Components-Record liefert NodeStart, NodeCount und IsCycle
TXLSWorkspaceDepGraph.ComponentNodes legt das abgeflachte nullbasierte Knotenindex-Array für diese Komponenten offen, indexiert vom NodeStart einer Komponente bis NodeStart + NodeCount - 1; Zählungen und indizierte Records beschreiben den aktuellen Graphen und sollten nach einer Graphrekonstruktion neu erfasst werden
Fahren Sie mit zusätzlichen XLSX-Fassaden-Membern und der XLSX-Fassaden-Übersicht für die gewöhnlichen Arbeitsmappen-Einstiegspunkte fort