Documentación HotXLS

Clase TXLSForwardReader

TXLSForwardReader presenta una única superficie proyectada y controlada por devoluciones de llamada para entrada XLS clásica, XLSX moderna, ODS, CSV y TSV sin construir un modelo de objetos de libro completo; adapta los mismos backends de cursor de filas usados por TXLSRowCursor presenta una única superficie proyectada y controlada por devoluciones de llamada para entrada XLS clásica, XLSX moderna, 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 XLS, XLSX, CSV o TSV

ReadFile abre una fuente con nombre y ReadStream lee desde la posición actual del flujo del llamador mientras restaura esa posición al regresar

Proyección y límites de fila

IncludeColumn añade una columna basada en cero al conjunto de proyección de tiempo constante, ClearColumnProjection restaura la salida de todas las columnas y HasColumnProjection informa de si el pushdown está activo

FirstRow y LastRow aplican límites de fila basados en uno antes del envío de devoluciones de llamada, lo que permite a los analizadores detenerse 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
IncludeFormulaTextConserva la presencia de fórmulas y los valores cacheados mientras suprime opcionalmente la acumulación del texto de fórmulas
DetectDatesUsa los formatos de número del libro para identificar valores de fecha y hora
DetectTextTypesConvierte campos CSV y TSV a tipos escalares compatibles cuando no hay ambigüedad
PreserveRichTextConserva las ejecuciones con formato y la carga fonética cuando el formato de origen las admite
ValueSeparatorAnula 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 fiable; el XLS clásico informa de resultados de fórmulas en caché con el texto de la fórmula no 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 una finalización normal

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

PeakRowBufferedBytes informa del mayor conjunto de trabajo estimado de filas lógicas retenido por el backend compartido, y SheetPassesStarted cuenta las pasadas de hoja que llegaron a activarse; 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;

Elección de una API de streaming

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

Véase también