HotXLS-Dokumentation

Klasse TXLSForwardReader

TXLSForwardReader bietet eine einzige projizierte, callbackgesteuerte Oberfläche für klassisches XLS, modernes XLSX, ODS, CSV und TSV, ohne ein vollständiges Arbeitsmappen-Objektmodell aufzubauen; dabei adaptiert er dieselben Zeilencursor-Backends wie TXLSRowCursor, sodass Push- und Pull-Lesezugriffe Format-, Projektions- und Formelsemantik teilen

Eingabeformat

TXLSForwardFormat wählt die automatische Erkennung oder erzwingt das Parsen von XLS, XLSX, ODS, CSV oder TSV

ReadFile öffnet eine benannte Quelle, und ReadStream liest ab der aktuellen Streamposition des Aufrufers und stellt diese Position bei der Rückkehr wieder her

Projektion und Zeilengrenzen

IncludeColumn fügt der Projektionsmenge mit konstanter Zeit eine einsbasierte Spalte hinzu, ClearColumnProjection stellt die Ausgabe aller Spalten wieder her, und HasColumnProjection meldet, ob Pushdown aktiv ist

FirstRow und LastRow wenden vor der Callback-Verteilung 1-basierte Zeilengrenzen an, sodass Parser nach dem angeforderten Intervall anhalten können

Callbacks und Wertkonvertierung

OnSheetEmpfängt jeden Arbeitsblattnamen und kann ein Blatt überspringen oder den vollständigen Lesevorgang abbrechen
OnCellEmpfängt Zeile, Spalte, Stilindex, normalisierten Zwischenwert, Formelpräsenz und Formeltext-Verfügbarkeit für jede projizierte Zelle
IncludeFormulaTextBehält Formelpräsenz und zwischengespeicherte Werte bei und unterdrückt optional die Akkumulation von Formeltext
DetectDatesVerwendet Arbeitsmappen-Zahlenformate, um Datums- und Zeitwerte zu erkennen
DetectTextTypesKonvertiert CSV- und TSV-Felder, wo eindeutig, in unterstützte skalare Typen
PreserveRichTextBehält formatierte Läufe und phonetische Daten bei, wo das Quellformat diese unterstützt
ValueSeparatorÜberschreibt das Trennzeichen für Textfelder, wenn die Formaterkennung nicht geeignet ist

HasFormula ist bei gewöhnlichen Werten false, während FormulaTextAvailable nur dann true ist, wenn Formula verlässlichen Text enthält; klassisches XLS meldet zwischengespeicherte Formelergebnisse mit nicht verfügbarem Formeltext, da der Forward-Pfad BIFF-Token nicht dekompiliert

Abschlusszustand

CellCount meldet verteilte Zellen, und Aborted unterscheidet den Abbruch durch den Aufrufer vom normalen Abschluss

ClassicBytesRead meldet die vom klassischen XLS-BIFF-Parser konsumierten Gesamtbytes und ClassicPeakBufferedBytes die gleichzeitig vorgehaltenen Spitzen gepufferter Bytes; beide sind schreibgeschützte Diagnosen für den klassischen XLS-Pfad

PeakRowBufferedBytes meldet den größte geschätzte logische Zeilen-Arbeitssatz, den das gemeinsame Backend vorhält, und SheetPassesStarted zählt die Aktiv gewordenen Arbeitsblattdurchläufe; ein von OnSheet abgelehntes Blatt öffnet seinen Arbeitsblatt-Part nicht und erhöht den Zähler nicht

Über OnSheet und OnCell gelieferte Blattindizes sind für jedes unterstützte Format durchgängig einsbasiert

Beispiel

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;

Auswahl einer Streaming-API

Verwenden Sie TXLSForwardReader, wenn ein Anwendungspfad mehrere Formate akzeptieren muss, TXLSDirectReader für XLSX-spezifisches Layout und parallele Arbeitsblatt-Ereignisse oder TXLSRowCursor, wenn dieselben gemeinsamen Dekodierungssemantiken über pullgesteuerte Zeileniteration benötigt werden

Siehe auch