Klasa TXLSForwardReader
TXLSForwardReader nudi jednu projiciranu površinu vođenu pozivnim funkcijama za klasični XLS, moderni XLSX, CSV i TSV ulaz bez izgradnje cjelovitog objektnog modela radne knjige
Format ulaza
TXLSForwardFormat bira automatsko prepoznavanje ili prisiljava raščlanjivanje XLS, XLSX, CSV ili TSV formata
ReadFile otvara imenovani izvor, a ReadStream čita s trenutne pozicije toka pozivatelja i pri povratku vraća tu poziciju
Projekcija i granice redaka
IncludeColumn dodaje stupac koji počinje od nule u skup projekcija s konstantnim vremenom, ClearColumnProjection vraća izlaz svih stupaca, a HasColumnProjection izvještava je li projiciranje aktivno
FirstRow i LastRow primjenjuju granice redaka koje počinju od jedan prije slanja pozivnih funkcija, omogućujući raščlanjivačima da se zaustave nakon traženog intervala
Pozivne funkcije i pretvorba vrijednosti
| OnSheet | Prima naziv svakog radnog lista te može preskočiti list ili prekinuti cijelo čitanje |
| OnCell | Prima redak, stupac, indeks stila, normalizirani tip, neobrađenu vrijednost i tekst formule za svaku projiciranu ćeliju |
| DetectDates | Koristi brojčane formate radne knjige za prepoznavanje vrijednosti datuma i vremena |
| DetectTextTypes | Pretvara CSV i TSV polja u podržane skalarne tipove tamo gdje je to nedvojbeno |
| PreserveRichText | Zadržava oblikovane segmente i fonetski sadržaj tamo gdje ih izvorni format podržava |
| ValueSeparator | Nadjačava razdjelnik tekstualnih polja kada prepoznavanje formata nije prikladno |
| ValueSeparator | Nadjačava razdjelnik tekstnih polja kada detekcija formata nije prikladna |
HasFormula je false za obične vrijednosti, dok je FormulaTextAvailable true samo kada Formula sadrži pouzdani tekst; klasični XLS izvještava predmemorirane rezultate formula s nedostupnim tekstom formule jer forward put ne dekompilira BIFF tokene
Stanje završetka
CellCount izvještava otpremljene ćelije, a Aborted razlikuje otkazivanje pozivatelja od normalnog završetka
ClassicBytesRead izvještava ukupan broj bajtova koje je potrošio parser klasičnog XLS-a (BIFF), a ClassicPeakBufferedBytes vršni broj bajtova u predmemoriji koji je istodobno držao; oboje su dijagnostike samo za čitanje na putu klasičnog XLS-a
PeakRowBufferedBytes izvještava najveći procijenjeni radni skup logičkog retka koji je zadržao zajednički backend, a SheetPassesStarted broji prolaze radnih listova koji su postali aktivni; list odbijen u OnSheet ne otvara svoj dio radnog lista niti povećava brojač
CellCount izvještava o proslijeđenim ćelijama, a Aborted razlikuje otkazivanje od strane pozivatelja od normalnog završetka
Primjer
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;
Odabir API-ja za strujanje
Koristite TXLSForwardReader kada jedan put aplikacije mora prihvatiti više formata, TXLSDirectReader za XLSX specifičan izgled, obogaćeni tekst i paralelne događaje radnih listova, ili TXLSRowCursor za iteraciju XLSX redaka vođenu povlačenjem