Documentación HotXLS

Clase TXLSForwardReader

TXLSForwardReader presenta una única superficie proyectada y controlada por devoluciones de llamada para la entrada de XLS clásico, XLSX moderno, ODS, CSV y TSV, sin construir un modelo de objetos de libro completo; adapta los mismos backends de cursor de filas que usa TXLSRowCursor presenta una superficie única proyectada y controlada por devoluciones de llamada para entradas XLS clásicas, XLSX modernas, CSV y TSV sin construir un modelo de objetos de libro completo

Formato de entrada

TXLSForwardFormat selecciona la detección automática o fuerza el análisis de XLS, XLSX, CSV o TSV

ReadFile abre un origen con nombre y ReadStream lee desde la posición actual del flujo del llamador, restaurando esa posición al regresar

Proyección y límites de filas

IncludeColumn agrega una columna basada en cero al conjunto de proyección de tiempo constante, ClearColumnProjection restaura la salida de todas las columnas y HasColumnProjection informa si la inserción está activa

FirstRow y LastRow aplican límites de filas basados en uno antes del envío de devoluciones de llamada, lo que permite que los analizadores se detengan después del intervalo solicitado

Devoluciones de llamada y conversión de valores

OnSheetRecibe el nombre de cada hoja de cálculo y puede omitir una hoja o abortar la lectura completa
OnCellRecibe la fila, la columna, el índice de estilo, el tipo normalizado, el valor sin procesar y el texto de la fórmula de cada celda proyectada
IncludeFormulaTextUsa los formatos de número del libro para identificar valores de fecha y hora
DetectDatesConvierte campos CSV y TSV a tipos escalares admitidos cuando no hay ambigüedad
DetectTextTypesConserva los tramos con formato y la carga fonética cuando el formato de origen los admite
PreserveRichTextSobrescribe el separador de campos de texto cuando la detección de formato no es adecuada
ValueSeparatorSobrescribe el separador de campos de texto cuando la detección de formato no es adecuada

HasFormula is false for ordinary values, while FormulaTextAvailable is true only when Formula contiene texto confiable; el XLS clásico informa los resultados de fórmula cacheados sin el texto de fórmula disponible, porque la ruta directa no descompila los tokens BIFF

Estado de finalización

CellCount reports dispatched cells and Aborted distingue la cancelación del llamador de la finalización normal

ClassicBytesRead informa el total de bytes consumidos por el analizador de XLS clásico (BIFF) y ClassicPeakBufferedBytes el máximo de bytes en búfer que mantuvo a la vez; ambos son diagnósticos de solo lectura para la ruta de XLS clásico

PeakRowBufferedBytes informa el mayor conjunto de trabajo estimado de filas lógicas retenido por el backend compartido, y SheetPassesStarted cuenta los pases de hojas de cálculo que se activaron; una hoja rechazada por OnSheet no abre su parte de hoja de cálculo ni incrementa el contador

Sheet indexes delivered through OnSheet informa de las celdas enviadas y OnCell distingue la cancelación del llamador de la finalización normal

Ejemplo

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;

Cómo elegir una API de streaming

Use TXLSForwardReader cuando una ruta de aplicación deba aceptar varios formatos, TXLSDirectReader para diseño específico de XLSX, texto enriquecido y eventos paralelos de hoja de cálculo, o TXLSRowCursor para iteración de filas XLSX impulsada por extracción

Véase también