HotXLS-documentatie

Structuurgeneratie van geladen werkmappen

Structuurgeneraties laten een lezer goedkope momentopnames vasthouden en doorlopen verwerpen nadat de werkmaptopologie waarvan hij afhankelijk is, is gewijzigd

Generatiebronnen

EngineGeneratie van celopslagGeneratie van werkbladverzameling
Klassieke XLSTXLSWorksheet.CellStructureGenerationTXLSWorksheets.StructureGeneration
XLSXTXLSXWorksheet.CellStructureGeneration of TXLSXCells.StructureGenerationTXLSXSheets.StructureGeneration

Elke eigenschap is een alleen-lezen UInt64-waarde en de exacte mate waarin hij verandert is geen onderdeel van het contract

Ongeldig makende bewerkingen

Het aanmaken, verwijderen of leegmaken van opgeslagen cellen wijzigt de generatie van de celopslag wanneer de topologie daadwerkelijk verandert

Het invoegen of verwijderen van rijen of kolommen, coördinaatverschuivingen, packed toevoegen of materialiseren en expliciete herbouwingen van de celindex maken ook de doorloopstatus van de celopslag ongeldig

Het toevoegen, verwijderen, verplaatsen of leegmaken van werkbladen wijzigt de generatie van de werkbladverzameling wanneer de verzameling daadwerkelijk verandert

Bewerkingen die niet ongeldig maken

Het wijzigen van de waarde, formule, gecachte waarde of opmaak van een bestaande cel wijzigt zijn celopslaggeneratie niet

Het hernoemen of activeren van een werkblad wijzigt de generatie van de werkbladverzameling niet, en no-op-verplaatsingen, ontbrekende verwijderingen of het leegmaken van een al lege verzameling laten de huidige generatie onveranderd

Validatie

Roep XlsValidateStructureGeneration aan voordat u doorloopstatus opschuift of leest die voor een eerdere generatie is aangemaakt

Een mismatch veroorzaakt EXLSLoadedCellCursorInvalidated, zodat aanroepers structurele ongeldigverklaring kunnen onderscheiden van gegevens- of opmaakfouten

ExpectedGeneration := Worksheet.CellStructureGeneration;

{ Read or retain traversal state }

XlsValidateStructureGeneration(
  ExpectedGeneration,
  Worksheet.CellStructureGeneration);

Cursor van de klassieke werkmap

IXLSWorkbook.CreateLoadedCellCursor legt de geaggregeerde generatie van de klassieke werkmap vast en valideert die vóór elke aanroep van MoveNext en Current

De cursor doorloopt de toegewezen takken van de sparse-opslag rechtstreeks met constante cursorstatus en geeft eigen TXLSLoadedCellSnapshot-waarden terug

De booleaanse overload bevriest of onafhankelijk opgemaakte opgeslagen lege cellen worden opgenomen; overgeërfde rij-, kolom- en werkbladopmaak maakt geen lege cursoritems aan

Cursor van de XLSX-werkmap

TXLSXWorkbook.CreateLoadedCellCursor legt een lease voor de levensduur van de werkmap vast en een geaggregeerde topologiegeneratie die door de celopslag van elk werkblad en door de werkbladverzameling wordt gedeeld

Het gematerialiseerde pad leest sparse rijblokken rechtstreeks, terwijl het packed pad de packed-iterator hergebruikt zonder cellen te materialiseren of interne verwijzingen in momentopnames vast te houden

De booleaanse overload kan in beide opslagrepresentaties alleen op stijl gebaseerde opgeslagen lege cellen opnemen, terwijl onopgemaakte Empty- en Null-plaatshouders uitgesloten blijven

Het vrijgeven van de werkmap maakt zijn lease ongeldig voordat de werkbladopslag wordt vrijgegeven, zodat latere cursortoegang EXLSLoadedCellCursorInvalidated veroorzaakt

Grens voor gelijktijdigheid

Generatiecontroles bieden alleen fail-fast detectie en maken gelijktijdige werkmapmutatie en doorloop niet thread-veilig

Zie ook