Trieda TXLSForwardReader
TXLSForwardReader predstavuje jednu projektovanú, spätným volaním riadenú plochu pre klasický XLS, moderný XLSX, CSV a TSV vstup bez vytvárania kompletného objektového modelu zošita
Formát vstupu
TXLSForwardFormat vyberá automatickú detekciu alebo vynucuje parsovanie XLS, XLSX, CSV alebo TSV
ReadFile otvára pomenovaný zdroj a ReadStream číta z aktuálnej pozície toku volajúceho a po návrate túto pozíciu obnovuje
Projekcia a ohraničenia riadkov
IncludeColumn pridáva stĺpec od nuly do projektovanej množiny s konštantným časom, ClearColumnProjection obnovuje výstup všetkých stĺpcov a HasColumnProjection hlási, či je pushdown aktívny
FirstRow a LastRow aplikujú ohraničenia riadkov od jednotky pred odoslaním spätného volania, čo umožňuje parserom zastaviť po požadovanom intervale
Spätné volania a konverzia hodnôt
| OnSheet | Prijíma názov každého hárka a môže preskočiť hárok alebo prerušiť celé čítanie |
| OnCell | Prijíma riadok, stĺpec, index štýlu, normalizovaný typ, surovú hodnotu a text vzorca pre každú projektovanú bunku |
| DetectDates | Používa číselné formáty zošita na identifikáciu hodnôt dátumu a času |
| DetectTextTypes | Konvertuje polia CSV a TSV na podporované skalárne typy tam, kde je to jednoznačné |
| PreserveRichText | Zachováva formátované behy a fonetické dáta tam, kde ich zdrojový formát podporuje |
| ValueSeparator | Prepíše oddeľovač textových polí, keď detekcia formátu nie je vhodná |
Stav dokončenia
CellCount hlási odoslané bunky a Aborted rozlišuje zrušenie volajúcim od normálneho dokončenia
Príklad
Reader := TXLSForwardReader.Create;
try
Reader.FirstRow := 2;
Reader.IncludeColumn(0);
Reader.IncludeColumn(4);
Reader.OnSheet := ReadSheet;
Reader.OnCell := ReadCell;
Reader.ReadFile('large-input.xlsx', xffAuto);
finally
Reader.Free;
end;
Výber streamovacieho API
Použite TXLSForwardReader, keď jedna cesta aplikácie musí prijať viacero formátov, TXLSDirectReader pre XLSX špecifické rozloženie, bohatý text a paralelné udalosti hárkov, alebo TXLSRowCursor pre pull riadenú iteráciu riadkov XLSX