HotXLS-documentatie

Klasse TXLSForwardReader

TXLSForwardReader presenteert één geprojecteerd, callbackgestuurd oppervlak voor klassieke XLS-, moderne XLSX-, ODS-, CSV- en TSV-invoer, zonder een compleet werkmapobjectmodel op te bouwen; de reader gebruikt dezelfde rij-cursorbackends als TXLSRowCursor , zodat push- en pull-reads dezelfde semantiek voor indeling, projectie en formules delen

Invoerformaat

TXLSForwardFormat selecteert automatische detectie of dwingt XLS-, XLSX-, CSV- of TSV-parsing af

ReadFile opent een benoemde bron en ReadStream leest vanaf de huidige stroompositie van de aanroeper, terwijl die positie bij terugkeer wordt hersteld

Projectie en rijgrenzen

IncludeColumn voegt een op 0 gebaseerde kolom toe aan de projectieset in constante tijd, ClearColumnProjection herstelt uitvoer van alle kolommen, en HasColumnProjection rapporteert of pushdown actief is

FirstRow en LastRow passen op 1 gebaseerde rijgrenzen toe vóór de callbackverzending, waardoor parsers na het gevraagde interval kunnen stoppen

Callbacks en waardeconversie

OnSheetOntvangt elke werkbladnaam en kan een blad overslaan of de volledige leesbewerking afbreken
OnCellOntvangt de rij, kolom, stijlindex, genormaliseerde type, ruwe waarde en formuletekst voor elke geprojecteerde cel
IncludeFormulaTextGebruikt werkmapgetalnotaties om datum- en tijdwaarden te identificeren
DetectDatesConverteert CSV- en TSV-velden naar ondersteunde scalaire typen waar ondubbelzinnig
DetectTextTypesBehoudt opgemaakte runs en fonetische lading waar het bronformaat deze ondersteunt
PreserveRichTextOverschrijft de tekstveldscheidingsteken wanneer formaatdetectie niet geschikt is
ValueSeparatorHoudt formuleaanwezigheid en gecachte waarden bij en onderdrukt optioneel de accumulatie van formuletekst

HasFormula is false voor gewone waarden, terwijl FormulaTextAvailable alleen true is wanneer Formula betrouwbare tekst bevat; klassieke XLS rapporteert gecachte formuleresultaten met onbeschikbare formuletekst, omdat het forward-pad BIFF-tokens niet decompileert

Voltooiingsstatus

CellCount rapporteert verzonden cellen en Aborted onderscheidt annulering door de aanroeper van normale voltooiing

ClassicBytesRead rapporteert het totale aantal bytes dat de klassieke XLS-parser (BIFF) heeft verbruikt, en ClassicPeakBufferedBytes het piekaantal tegelijk gebufferde bytes; beide zijn read-only diagnostische waarden voor het klassieke XLS-pad

PeakRowBufferedBytes rapporteert de grootste geschatte werkset per logische rij die de gedeelde backend vasthield, en SheetPassesStarted telt de werkbladpassen die actief zijn geworden; een sheet die door OnSheet wordt geweigerd, opent zijn worksheet-part niet en verhoogt de teller niet

Sheet-indexen die via OnSheet en OnCell worden doorgegeven, zijn voor elke ondersteunde indeling consistent op 1 gebaseerd

Voorbeeld

Reader := TXLSForwardReader.Create;
try
  Reader.FirstRow := 2;
  Reader.IncludeColumn(1);
  Reader.IncludeColumn(5);
  Reader.OnSheet := ReadSheet;
  Reader.OnCell := ReadCell;
  Reader.ReadFile('large-input.xlsx', xffAuto);
finally
  Reader.Free;
end;

Een streaming-API kiezen

Gebruik TXLSForwardReader wanneer één toepassingspad verschillende formaten moet accepteren, TXLSDirectReader voor XLSX-specifieke lay-out, rich-text en parallelle werkbladevents, of TXLSRowCursor voor pullgestuurde XLSX-rijiteratie

Zie ook