Třída TXLSForwardReader
TXLSForwardReader představuje jediný projektovaný povrch řízený zpětnými voláními pro klasický XLS, moderní XLSX, CSV a TSV bez sestavování kompletního objektového modelu sešitu
Formát vstupu
TXLSForwardFormat vybírá automatickou detekci nebo vynucuje analýzu XLS, XLSX, CSV nebo TSV
ReadFile otevře pojmenovaný zdroj a ReadStream čte z aktuální pozice streamu volajícího a po návratu tuto pozici obnovuje
Projekce a meze řádků
IncludeColumn přidává sloupec číslovaný od 0 do sady projekce s konstantním časem, ClearColumnProjection obnoví výstup všech sloupců a HasColumnProjection hlásí, zda je posun aktivní
FirstRow a LastRow uplatňují meze řádků číslované od 1 před odesláním zpětných volání, což analyzátorům umožňuje zastavit po požadovaném intervalu
Zpětná volání a převod hodnot
| OnSheet | Přijímá název každého listu a může přeskočit list nebo přerušit celé čtení |
| OnCell | Přijímá řádek, sloupec, index stylu, normalizovaný typ, surovou hodnotu a text vzorce pro každou projektovanou buňku |
| IncludeFormulaText | Zachovává přítomnost vzorce a hodnoty z mezipaměti a volitelně potlačuje akumulaci textu vzorce |
| DetectDates | Používá číselné formáty sešitu k identifikaci hodnot data a času |
| DetectTextTypes | Převádí pole CSV a TSV na podporované skalární typy tam, kde je to jednoznačné |
| PreserveRichText | Zachovává formátované běhy a fonetický obsah tam, kde je zdrojový formát podporuje |
| ValueSeparator | Přepíše oddělovač polí textu, když není vhodná detekce formátu |
Stav dokončení
CellCount hlásí odeslané buňky a Aborted rozlišuje zrušení volajícím od normálního dokončení
Příklad
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;
Volba streamovacího API
Použijte TXLSForwardReader, když jedna cesta aplikace musí přijmout několik formátů, TXLSDirectReader pro rozvržení specifické pro XLSX, formátovaný text a paralelní události listů, nebo TXLSRowCursor pro iteraci řádků XLSX řízenou tažením