Documentazione HotXLS

Classe TXLSForwardReader

TXLSForwardReader presenta un'unica superficie proiettata e basata su callback per l'input XLS classico, XLSX moderno, ODS, CSV e TSV senza costruire un modello completo di oggetti della cartella di lavoro; si adatta agli stessi backend di cursore di riga usati da TXLSRowCursor presenta una superficie proiettata e basata su callback per l'input XLS classico, XLSX moderno, CSV e TSV senza costruire un modello completo di oggetti della cartella di lavoro

Formato di input

TXLSForwardFormat seleziona il rilevamento automatico o forza l'analisi XLS, XLSX, CSV o TSV

ReadFile apre una sorgente denominata e ReadStream legge dalla posizione corrente del flusso del chiamante ripristinando quella posizione al ritorno

Proiezione e limiti delle righe

IncludeColumn aggiunge una colonna a base zero al set di proiezione a tempo costante, ClearColumnProjection ripristina l'output di tutte le colonne e HasColumnProjection segnala se il pushdown è attivo

FirstRow e LastRow applicano limiti di riga a base uno prima dell'invio dei callback, consentendo ai parser di fermarsi dopo l'intervallo richiesto

Callback e conversione dei valori

OnSheetRiceve il nome di ogni foglio di lavoro e può saltare un foglio o interrompere completamente la lettura
OnCellRiceve riga, colonna, indice di stile, tipo normalizzato, valore grezzo e testo della formula per ogni cella proiettata
IncludeFormulaTextUsa i formati numerici della cartella di lavoro per identificare valori di data e ora
DetectDatesConverte i campi CSV e TSV nei tipi scalari supportati quando non ambigui
DetectTextTypesConserva i run formattati e il payload fonetico dove il formato sorgente li supporta
PreserveRichTextSostituisce il separatore dei campi di testo quando il rilevamento del formato non è appropriato
ValueSeparatorSostituisce il separatore dei campi di testo quando il rilevamento del formato non è appropriato

HasFormula is false for ordinary values, while FormulaTextAvailable is true only when Formula contiene testo affidabile; l'XLS classico riporta i risultati delle formule in cache senza il testo della formula disponibile, perché il percorso forward non decompila i token BIFF

Stato di completamento

CellCount reports dispatched cells and Aborted distingue l'annullamento del chiamante dal completamento normale

ClassicBytesRead riporta il totale dei byte consumati dal parser XLS classico (BIFF) e ClassicPeakBufferedBytes il picco di byte bufferizzati trattenuti contemporaneamente; entrambi sono diagnostici di sola lettura per il percorso XLS classico

PeakRowBufferedBytes riporta il più ampio working set stimato di righe logiche trattenuto dal backend condiviso, e SheetPassesStarted conta i passaggi sui fogli di lavoro diventati attivi; un foglio rifiutato da OnSheet non apre la sua parte di foglio di lavoro né incrementa il contatore

Sheet indexes delivered through OnSheet riporta le celle inviate e OnCell distingue l'annullamento del chiamante dal completamento normale

Esempio

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;

Scelta di un'API di streaming

Usare TXLSForwardReader quando un percorso applicativo deve accettare più formati, TXLSDirectReader per il layout specifico XLSX, rich text ed eventi di foglio paralleli, oppure TXLSRowCursor per l'iterazione pull delle righe XLSX

Vedere anche