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
| OnSheet | Recibe el nombre de cada hoja de cálculo y puede omitir una hoja o abortar la lectura completa |
| OnCell | Recibe 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 |
| IncludeFormulaText | Conserva la presencia de fórmulas y los valores cacheados mientras suprime opcionalmente la acumulación del texto de fórmulas |
| DetectDates | Usa los formatos de número del libro para identificar valores de fecha y hora |
| DetectTextTypes | Convierte campos CSV y TSV a tipos escalares compatibles cuando no hay ambigüedad |
| PreserveRichText | Conserva las ejecuciones con formato y la carga fonética cuando el formato de origen las admite |
| ValueSeparator | Anula 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