Dokumentacja HotXLS

Klasa TXLSForwardReader

TXLSForwardReader przedstawia jedną projektowaną powierzchnię sterowaną wywołaniami zwrotnymi dla klasycznego XLS, nowoczesnego XLSX, ODS, CSV i TSV, bez budowania kompletnego modelu obiektowego skoroszytu; adaptuje te same backendowe kursory wierszy, z których korzysta TXLSRowCursor przedstawia jedną projektowaną, sterowaną wywołaniami zwrotnymi powierzchnię dla klasycznego XLS, nowoczesnego XLSX, CSV i TSV bez budowania kompletnego modelu obiektów skoroszytu

Format wejściowy

TXLSForwardFormat wybiera automatyczne wykrywanie lub wymusza parsowanie XLS, XLSX, CSV lub TSV

ReadFile otwiera nazwane źródło, a ReadStream czyta z bieżącej pozycji strumienia wywołującego, przywracając tę pozycję po powrocie

Projekcja i granice wierszy

IncludeColumn dodaje kolumnę o indeksie zerowym do zbioru projekcji o stałym czasie, ClearColumnProjection przywraca wyjście wszystkich kolumn, a HasColumnProjection raportuje, czy wypychanie jest aktywne

FirstRow i LastRow stosują jednobazowe granice wierszy przed wysyłką wywołań zwrotnych, pozwalając parserom zatrzymać się po żądanym przedziale

Wywołania zwrotne i konwersja wartości

OnSheetOdbiera nazwę każdego arkusza i może pominąć arkusz lub przerwać cały odczyt
OnCellOdbiera wiersz, kolumnę, indeks stylu, znormalizowany typ, surową wartość i tekst formuły dla każdej projektowanej komórki
IncludeFormulaTextUżywa formatów liczb skoroszytu do identyfikacji wartości dat i czasu
DetectDatesKonwertuje pola CSV i TSV na obsługiwane typy skalarne tam, gdzie jest to jednoznaczne
DetectTextTypesZachowuje sformatowane przebiegi i ładunek fonetyczny tam, gdzie format źródłowy je obsługuje
PreserveRichTextZastępuje separator pól tekstowych, gdy wykrywanie formatu nie jest odpowiednie
ValueSeparatorZastępuje separator pól tekstowych, gdy wykrywanie formatu nie jest odpowiednie

HasFormula is false for ordinary values, while FormulaTextAvailable is true only when Formula zawiera wiarygodny tekst; klasyczny XLS raportuje zcache'owane wyniki formuł bez dostępnego tekstu formuły, ponieważ ścieżka strumieniowa nie dekompiluje tokenów BIFF

Stan zakończenia

CellCount reports dispatched cells and Aborted odróżnia anulowanie przez wywołującego od normalnego zakończenia

ClassicBytesRead raportuje łączną liczbę bajtów skonsumowanych przez parser klasycznego XLS (BIFF), a ClassicPeakBufferedBytes szczytową liczbę bajtów trzymanych w buforze jednocześnie; obie to diagnostyki tylko do odczytu dla ścieżki klasycznego XLS

PeakRowBufferedBytes raportuje największy szacowany zestaw roboczy wierszy logicznych utrzymywany przez współdzielony backend, a SheetPassesStarted zlicza przejścia arkuszy, które się uaktywniły; arkusz odrzucony przez OnSheet nie otwiera swojej części arkusza ani nie zwiększa licznika

Sheet indexes delivered through OnSheet raportuje wysłane komórki, a OnCell odróżnia anulowanie przez wywołującego od normalnego zakończenia

Przykład

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;

Wybór interfejsu API strumieniowania

Użyj TXLSForwardReader , gdy jedna ścieżka aplikacji musi obsługiwać kilka formatów, TXLSDirectReader dla zdarzeń arkusza specyficznych dla XLSX, bogatego tekstu i równoległych, lub TXLSRowCursor do iteracji wierszy XLSX sterowanej wyciąganiem

Zobacz także