Documentação HotXLS

Classe TXLSForwardReader

TXLSForwardReader apresenta uma única superfície projetada e orientada a callbacks para entrada XLS clássico, XLSX moderno, ODS, CSV e TSV, sem construir um modelo de objetos completo da pasta de trabalho; ele adapta os mesmos backends de cursor de linha usados pelo TXLSRowCursor apresenta uma única superfície projetada e dirigida por callbacks para entrada XLS clássica, XLSX moderna, CSV e TSV, sem construir um modelo completo de objetos de pasta de trabalho

Formato de entrada

TXLSForwardFormat seleciona detecção automática ou força a análise de XLS, XLSX, CSV ou TSV

ReadFile abre uma origem nomeada e ReadStream lê da posição atual do fluxo do chamador, restaurando essa posição ao retornar

Projeção e limites de linhas

IncludeColumn adiciona uma coluna com base 0 ao conjunto de projeção de tempo constante, ClearColumnProjection restaura a saída de todas as colunas e HasColumnProjection informa se a projeção está ativa

FirstRow e LastRow aplicam limites de linhas com base 1 antes do despacho de callbacks, permitindo que os analisadores parem após o intervalo solicitado

Callbacks e conversão de valores

OnSheetRecebe o nome de cada planilha e pode ignorar uma planilha ou abortar a leitura completa
OnCellRecebe a linha, a coluna, o índice de estilo, o tipo normalizado, o valor bruto e o texto da fórmula para cada célula projetada
IncludeFormulaTextUsa formatos de número da pasta de trabalho para identificar valores de data e hora
DetectDatesConverte campos CSV e TSV em tipos escalares suportados quando não houver ambiguidade
DetectTextTypesMantém execuções formatadas e carga fonética onde o formato de origem as suporta
PreserveRichTextSubstitui o separador de campos de texto quando a detecção de formato não é apropriada
ValueSeparatorSobrescreve o separador de campos de texto quando a detecção de formato não é adequada

HasFormula is false for ordinary values, while FormulaTextAvailable is true only when Formula contém texto confiável; o XLS clássico informa resultados de fórmula em cache com o texto da fórmula indisponível, porque o caminho forward não descompila tokens BIFF

Estado de conclusão

CellCount reports dispatched cells and Aborted distingue o cancelamento pelo chamador da conclusão normal

ClassicBytesRead informa o total de bytes consumidos pelo parser XLS (BIFF) clássico e ClassicPeakBufferedBytes o pico de bytes em buffer que ele manteve de uma só vez; ambos são diagnósticos somente leitura para o caminho XLS clássico

PeakRowBufferedBytes informa o maior working set estimado de linhas lógicas retido pelo backend compartilhado, e SheetPassesStarted conta as passagens de planilha que se tornaram ativas; uma planilha rejeitada por OnSheet não abre sua parte de planilha nem incrementa a contagem

Sheet indexes delivered through OnSheet informa as células despachadas e OnCell distingue o cancelamento pelo chamador da conclusão normal

Exemplo

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;

Como escolher uma API de streaming

Use TXLSForwardReader quando um caminho do aplicativo precisar aceitar vários formatos, TXLSDirectReader para layout específico de XLSX, texto rico e eventos paralelos de planilha, ou TXLSRowCursor para iteração de linhas XLSX orientada por pull

Veja também