Docs HotXLS

Classe TXLSForwardReader

TXLSForwardReader présente une surface unique projetée et pilotée par rappels pour l'entrée XLS classique, XLSX moderne, ODS, CSV et TSV, sans construire un modèle objet de classeur complet ; elle s'adapte aux mêmes backends de curseur de lignes que ceux utilisés par TXLSRowCursor présente une surface unique projetée et pilotée par rappels pour les entrées XLS classiques, XLSX modernes, CSV et TSV, sans construire un modèle d'objet de classeur complet

Format d'entrée

TXLSForwardFormat sélectionne la détection automatique ou force l'analyse XLS, XLSX, CSV ou TSV

ReadFile ouvre une source nommée et ReadStream lit à partir de la position courante du flux de l'appelant, en restaurant cette position au retour

Projection et bornes de lignes

IncludeColumn ajoute une colonne basée sur zéro à l'ensemble de projection à temps constant, ClearColumnProjection restaure la sortie de toutes les colonnes et HasColumnProjection indique si la projection est active

FirstRow et LastRow appliquent des bornes de lignes basées sur un avant la distribution des rappels, ce qui permet aux analyseurs de s'arrêter après l'intervalle demandé

Rappels et conversion de valeurs

OnSheetReçoit le nom de chaque feuille de calcul et peut ignorer une feuille ou interrompre la lecture complète
OnCellReçoit la ligne, la colonne, l'index de style, le type normalisé, la valeur brute et le texte de formule pour chaque cellule projetée
IncludeFormulaTextUtilise les formats de nombres du classeur pour identifier les valeurs de date et d'heure
DetectDatesConvertit les champs CSV et TSV en types scalaires pris en charge lorsque cela est sans ambiguïté
DetectTextTypesConserve les segments formatés et les données phonétiques lorsque le format source les prend en charge
PreserveRichTextRemplace le séparateur de champs texte lorsque la détection de format n'est pas appropriée
ValueSeparatorRemplace le séparateur de champs texte lorsque la détection de format n'est pas appropriée

HasFormula is false for ordinary values, while FormulaTextAvailable is true only when Formula contient du texte fiable ; le XLS classique rapporte les résultats de formules en cache sans le texte de formule disponible, car le chemin forward ne décompile pas les tokens BIFF

État d'achèvement

CellCount reports dispatched cells and Aborted distingue l'annulation par l'appelant de l'achèvement normal

ClassicBytesRead indique le total d'octets consommés par l'analyseur XLS classique (BIFF) et ClassicPeakBufferedBytes le pic d'octets bufferisés détenus simultanément ; les deux sont des diagnostics en lecture seule pour le chemin XLS classique

PeakRowBufferedBytes indique le plus grand ensemble de travail estimé de lignes logiques retenu par le backend partagé, et SheetPassesStarted compte les passes de feuilles de calcul devenues actives ; une feuille rejetée par OnSheet n'ouvre pas sa partie feuille de calcul et n'incrémente pas le compteur

Sheet indexes delivered through OnSheet indique les cellules distribuées et OnCell distingue l'annulation par l'appelant de l'achèvement normal

Exemple

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;

Choix d'une API de streaming

Utilisez TXLSForwardReader lorsqu'un même chemin d'application doit accepter plusieurs formats, TXLSDirectReader pour la mise en page spécifique XLSX, le texte enrichi et les événements de feuille de calcul parallèles, ou TXLSRowCursor pour l'itération de lignes XLSX pilotée par extraction

Voir aussi