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
| OnSheet | Recebe o nome de cada planilha e pode ignorar uma planilha ou abortar a leitura completa |
| OnCell | Recebe 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 |
| IncludeFormulaText | Usa formatos de número da pasta de trabalho para identificar valores de data e hora |
| DetectDates | Converte campos CSV e TSV em tipos escalares suportados quando não houver ambiguidade |
| DetectTextTypes | Mantém execuções formatadas e carga fonética onde o formato de origem as suporta |
| PreserveRichText | Substitui o separador de campos de texto quando a detecção de formato não é apropriada |
| ValueSeparator | Sobrescreve 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