Notas de versión de HotXLS
Historial de versiones para funciones visibles, correcciones, mejoras de XLS/XLSX, exportación, compatibilidad y documentación de HotXLS
Última versión publicada
- Última versión: 2.384.120; Fecha de lanzamiento: 2026-10-09
Versión 2.384.120
Añadido
- La captura portátil de XLS clásico admite gráficos ordinarios de columnas, barras, líneas, dispersión, circulares, de anillo y de área de una sola serie, con valores almacenados locales validados, apariencia básica y límites de trazado, título y leyenda declarados por el llamador
- Las declaraciones de apariencia de gráficos de solo lectura conservan las identidades de la hoja de cálculo y del gráfico, las dimensiones explícitas del marco, los tamaños efectivos en puntos de la leyenda y la geometría nativa de fuentes para la salida PDF, SVG y PNG separada
- Los auxiliares acotados inspeccionan referencias de fórmulas almacenadas simples y celdas de gráficos en caché sin evaluar fórmulas ni expandir celdas dispersas
Corregido
- La captura de gráficos clásicos conserva los tamaños fraccionarios almacenados de fuentes y marcadores, la propiedad del origen y las concesiones de lectura, y rechaza registros mal formados, apariencias sin resolver y presupuestos de recursos agotados antes de la salida
- Las actualizaciones de propiedades de gráficos con valor doble rechazan los valores no finitos antes de compararlos o modificarlos
- La inicialización repetida de celdas portátiles nativas libera las cadenas administradas previas durante la captura
Versión 2.384.119
Corregido
- La inspección de gráficos clásicos valida el texto almacenado de las series, los nombres de las líneas de tendencia y los separadores de etiquetas de datos antes de aplicar el estado tipado, y libera los modelos parciales cuando un texto mal formado lanza un error
- Los separadores de etiquetas de datos en Unicode comprimido conservan sus caracteres almacenados completos
Versión 2.384.118
Añadido
- La inspección de gráficos clásicos expone los diámetros de marcadores en puntos, incluidos los tamaños fraccionarios, conservando las unidades almacenadas originales
Corregido
- Las tablas de relleno nativas de gráficos clásicos compatibles decodifican las propiedades después de las entradas complejas, y las tablas mal formadas conservan el relleno tipado anterior
Versión 2.384.117
Añadido
- Los auxiliares de codificación explícita de bytes conservan los nulos incrustados y rechazan el texto que no se puede representar en la página de códigos seleccionada
Cambiado
- El texto, las fórmulas y los metadatos de libros de trabajo BIFF5 clásicos usan su codificación declarada en Windows, Linux y macOS, con longitudes en bytes codificadas y fronteras de caracteres completos
- El texto heredado compatible de gráficos conserva su decodificación original después de ediciones y copias de la página de códigos, y se transcodifica de forma explícita antes de guardar con una codificación distinta
Corregido
- El Unicode comprimido de BIFF8 conserva las unidades de código exactas, y los estilos personalizados heredados, el texto de gráficos y las continuaciones de caché de fórmulas de doble byte usan sus diseños de registro reales
- El cálculo de texto Unicode nativo, los criterios, las claves de búsqueda, los enlaces locales de fórmulas y la búsqueda y el reemplazo clásicos conservan la coincidencia de mayúsculas y minúsculas compatible
- La búsqueda de estilos con nombre resuelve la primera entrada almacenada sin tratarla como un nombre ausente
- Las lecturas repetidas de entradas ZIP liberan los metadatos de encabezado previos conservando el comportamiento concurrente de streams almacenados y comprimidos con deflate
Versión 2.384.116
Añadido
- Los campos calculados SUM locales de tablas dinámicas evalúan las fórmulas a partir de las sumas de contexto de nivel hoja, de subtotal y de total general, incluidas las dependencias ausentes de las medidas mostradas
- Los elementos calculados propiedad de la caché conservan las identidades nativas de miembros, las dependencias ocultas y el orden global de resolución en los campos compatibles de miembros de cadena sin agrupar
- Los cálculos de visualización de elementos calculados y los filtros agregados compatibles conservan el orden visible de miembros, el orden original de filtros y las identidades inequívocas de las medidas mostradas
Corregido
- La proyección de fechas de fórmulas nativas de tablas dinámicas conserva el sistema de fechas del libro de trabajo durante la importación, clonación y cálculo de la caché
- La limpieza de cachés de elementos faltantes conserva la propiedad validada de los informes materializados en ambos sistemas de fechas del libro de trabajo y en los informes guardados heredados
- Los metadatos calculados de tablas dinámicas no compatibles y la salida nativa editada se rechazan antes de modificar los resultados de la hoja de cálculo
Versión 2.384.115
Añadido
- La salida nativa portátil de PDF, SVG y PNG admite texto enriquecido, formas modeladas, imágenes ordinarias, imágenes dentro de celdas, casillas de verificación booleanas y siete familias de gráficos XLSX en caché compatibles
- Los planes de impresión inmutables del libro de trabajo aplican áreas de impresión completas, títulos de filas y columnas repetidos, saltos de página, configuración de papel, márgenes, orientación, centrado, escala y orden de páginas en Linux y macOS
- La geometría nativa explícita de fuentes admite captura con verificación de generación sin cambiar el proveedor de geometría del libro de trabajo
Corregido
- El modo ajustar a página sobrevive a los ciclos de ida y vuelta del libro de trabajo e ignora el escalado porcentual obsoleto, incluidas las dimensiones de ajuste ilimitadas
- Las fuentes de títulos de gráficos compatibles, la apariencia de líneas y el relleno y los bordes de marcadores conservan los valores explícitos importados y creados, incluido el negro
- El texto enriquecido conserva las anulaciones explícitas en falso y distingue la apariencia efectiva de los tramos durante la reutilización de cadenas y la comparación semántica
Versión 2.384.114
Añadido
- Las aplicaciones nativas de Linux x64 y macOS ARM64 cargan, editan, calculan y guardan libros de trabajo BIFF8 clásicos, incluidas las propiedades de documento compatibles y el cifrado RC4
- El almacenamiento compuesto portátil admite ámbitos anidados, contenedores DIFAT encadenados grandes, metadatos y propiedad explícita de la interfaz de almacenamiento nativa
Corregido
- Los libros de trabajo CryptoAPI de 128 bits anuncian un proveedor criptográfico compatible y conservan legibles las propiedades de documento en texto plano
- Las marcas de tiempo nativas de documentos usan la época correcta de FILETIME y conservan los valores UTC entre plataformas
- Los nombres definidos clásicos comparten una identidad Unicode canónica en la búsqueda por ámbito, las fórmulas y la reapertura del libro de trabajo
- Los separadores de formato de fecha escapados y los literales entre comillas incrustados conservan el formato de fecha completo seleccionado
Versión 2.384.113
Añadido
- El borrado de rangos y el pegado de texto Unicode admiten deshacer y rehacer atómicos y acotados, con verificación previa de protección y de estructura
- Las imágenes locales tipadas dentro de celdas y los formatos Checkbox admiten ciclos de ida y vuelta XLSX, metadatos de accesibilidad y ediciones de contenido conscientes de la propiedad
- Los formatos Checkbox dispersos de filas y columnas conservan la precedencia, los borrados explícitos y las celdas ausentes a través de ediciones y ciclos de ida y vuelta XLSX
- La compatibilidad ampliada con XLSB incluye fórmulas y cachés, nombres, combinaciones de celdas, hipervínculos, paneles, tablas y filtros
- Las APIs nativas de libros de trabajo para Linux x64 y macOS ARM64 cargan, editan, calculan y guardan archivos XLSX, XLSB y ODS compatibles
- La salida nativa de tablas dinámicas admite la agrupación numérica, por fecha y manual, además de las once funciones de subtotal personalizadas
Corregido
- Los nombres con ámbito usan normalización Unicode y coincidencia de mayúsculas y minúsculas consistentes en Windows, Linux y macOS, sin descartar acentos ni símbolos
- Las fórmulas de agregación modernas compilan de forma consistente con Free Pascal en Windows
- Abrir otro libro de trabajo reemplaza los estilos con nombre en lugar de conservar las definiciones de estilo del archivo anterior
- El contenido moderno de imágenes y controles sobrevive al deshacer de rangos y al guardado sin materializar celdas ausentes
- Las cachés de fórmulas importadas conservan los metadatos originales de valores, y los metadatos ordinarios se distinguen del contenido de imágenes dentro de celdas
- La comparación semántica distingue el contenido de imágenes locales, los metadatos de accesibilidad y los formatos efectivos heredados de controles con un recorrido disperso acotado
Versión 2.384.112
Añadido
- Las pruebas, la extracción y el reemplazo con expresiones regulares admiten texto UTF-16, capturas, difusión de arreglos y evaluación acotada en Windows, Linux x64 y macOS ARM64
- GROUPBY y PIVOTBY admiten retrollamadas de agregación con ámbito, múltiples medidas, encabezados, filtros, totales jerárquicos, ordenamiento y porcentajes relativos
Corregido
- Los argumentos escalares de SUM conservan la coerción de booleanos y texto numérico, mientras que la agregación de rangos y arreglos mantiene sus reglas de ignorado existentes
- Los literales booleanos con ámbito y las fórmulas de retrollamadas de agregación sobreviven al almacenamiento de funciones futuras y a la reapertura del libro de trabajo
Versión 2.384.111
Añadido
- La salida nativa local de tablas dinámicas admite diferencias y porcentajes respecto del elemento base, totales acumulados, porcentajes de fila y de columna, índice, porcentajes del padre, porcentajes acumulados y ranking denso
Corregido
- Los cálculos de visualización conservan la semántica nativa de totales, valores faltantes, divisores en cero y miembros ordenados, incluidos los promedios no aditivos
- Los modos de visualización extendidos y las identidades de campos base sobreviven al guardado, la reapertura y la actualización explícita de Excel
Versión 2.384.110
Añadido
- La salida nativa local de tablas dinámicas admite diseños compacto, tabular y de esquema, etiquetas de ancestros repetidas, ubicación predeterminada de subtotales y múltiples medidas en cualquier eje de datos
Corregido
- Las configuraciones de etiquetas repetidas sobreviven a los alias de espacios de nombres importados y al ciclo de guardado y reapertura, mientras que la salida nativa distingue las intersecciones ausentes del cero numérico
- Los metadatos de diseño preparados por etapas mantienen consistentes los títulos de campos y de datos cuando Excel actualiza explícitamente los informes generados
Versión 2.384.109
Añadido
- La comparación de libros de trabajo distingue valores tipados y enteros grandes exactos, admite tolerancias numéricas finitas y comparación opcional de cachés de fórmulas almacenadas, estilos y geometría
- La comparación semántica acotada cubre nombres, reglas, tablas, orden de dibujo, regiones de estilo de blancos, tramos efectivos de texto enriquecido, modelos locales de tablas dinámicas, selecciones de segmentaciones y estado de escalas de tiempo compatibles
Cambiado
- La comparación conserva las celdas empaquetadas y ausentes, resuelve las identidades de recursos a valores efectivos y retiene el resultado exitoso anterior ante modelos no compatibles o agotamiento de recursos
Corregido
- La validación de precisión de parámetros REAL tipados de bases de datos compila con Delphi XE5 conservando las comprobaciones de valor exacto, desbordamiento y nulos
Versión 2.384.108
Añadido
- Los ciclos de ida y vuelta de ODS conservan el texto y los autores ordinarios de notas, los filtros de valor y personalizados representables, la protección explícita de celdas y la protección equivalente de hojas de cálculo sin contraseña
- Los informes de conversión conservan con precisión las pérdidas de metadatos a través de copias de hojas de cálculo y guardados posteriores, incluidas las expresiones de filtro no compatibles y la protección no equivalente
Corregido
- Los guardados de ODS a flujo cancelados o fallidos conservan los bytes, el tamaño y la posición del destino mediante una preparación acotada con archivos temporales
- Los guardados exitosos de ODS que comienzan en una posición de flujo distinta de cero conservan el prefijo y corrigen los offsets de las entradas ZIP
Versión 2.384.107
Añadido
- La inspección de fórmulas almacenadas y las fórmulas agregadas de tablas dinámicas conscientes de las referencias funcionan en contextos de evaluación XLS clásico, XLSX, de solo lectura y aislados, incluidos los resultados de arreglo disponibles y los errores tipados
- Las consultas agregadas de tablas dinámicas respetan los miembros visibles modelados, los filtros de informe y los subtotales compatibles mediante una evaluación de caché separada y acotada, sin actualizar los datos de origen
Corregido
- Las cachés nativas de tablas dinámicas XLS de Excel conservan los valores numéricos en línea sucesivos y los metadatos actuales de validez de caché en lugar de devolver totales incorrectos de valores repetidos
- Las referencias de tablas dinámicas incluyen el área de filtro de informe modelada encima de la ubicación de la tabla principal
Versión 2.384.106
Añadido
- Las consultas automáticas de bases de datos enlazan parámetros tipados de literales y de celdas almacenadas en orden posicional, conservando Unicode, texto vacío, cero, booleanos, fechas y nulos sin sustituir valores en el texto SQL
- Los parámetros de celda leen las cachés de fórmulas disponibles y los valores almacenados compactos sin recálculo ni materialización, con validación acotada de metadatos y aplicación transaccional de resultados
Corregido
- Los parámetros de fecha de Jet y ACE conservan los valores DATE, TIME y TIMESTAMP mediante enlaces tipados de OLE DATE, independientemente de las proyecciones de marcas de tiempo dependientes de la configuración regional
Versión 2.384.105
Añadido
- Los metadatos de fórmulas leen la identidad real del archivo referenciado, los formatos numéricos base compatibles, los colores para negativos, los paréntesis para positivos, la alineación de texto, el estado de bloqueo, el ancho de columna y el modo de cálculo en los contextos de evaluación XLS y XLSX
- La inspección separada de estilos base y de huella dispersa de ejes conserva las celdas almacenadas y empaquetadas, los valores predeterminados de la hoja de cálculo, los colores del tema y la propiedad prestada del libro de trabajo
Cambiado
- Los metadatos de ancho de columna devuelven el ancho en caracteres redondeado y el indicador de ancho predeterminado como un arreglo de dos columnas; la información no disponible del entorno de la aplicación Excel y los formatos no clasificables reportan errores explícitos
Versión 2.384.104
Añadido
- La validación de importación admite tipos escalares estrictos, límites numéricos y de fecha, sistemas de fechas Excel explícitos, unicidad compuesta y relaciones entre columnas
- Las violaciones se reportan de forma estructurada e identifican la hoja de cálculo, la celda, la regla, la columna relacionada y la primera fila duplicada, mientras que la validación de valores almacenados conserva las celdas empaquetadas y reporta las cachés de fórmulas no disponibles sin recálculo implícito
Versión 2.384.103
Añadido
- Las consultas automáticas de texto actualizan archivos de ancho fijo usando los inicios de campo declarados, codificaciones de caracteres compatibles, conversión tipada de campos, campos omitidos y selección de encabezado o de primera fila
- La actualización de ancho fijo conserva las comillas literales, recorta el relleno de campos y rechaza límites inválidos, entradas demasiado grandes y cancelaciones antes de aplicar cambios a la hoja de cálculo
Versión 2.384.102
Cambiado
- Las auditorías de símbolos de fórmulas clásicas escanean más rápido conservando los hallazgos de funciones y nombres, la deduplicación sin distinción de mayúsculas y minúsculas, el ámbito y el orden de hallazgos
Corregido
- Los guardados de libros de trabajo en Windows, el parcheo directo de paquetes, la salida PDF y la salida de imágenes de página pueden reemplazar atómicamente un archivo existente retenido por metadatos de uso compartido con eliminación o por manejadores de lectura en los sistemas de archivos compatibles, conservando las comprobaciones de bloqueo, la protección de solo lectura y la ruta heredada en los sistemas de archivos no compatibles
Versión 2.384.101
Añadido
- Los arreglos selectores de área de INDEX se difunden con selectores de fila y columna sobre arreglos calculados y uniones de referencias de la misma hoja compatibles, conservando la orientación, los tipos de valores seleccionados y los errores individuales
- Los nombres definidos y los enlaces LET conservan la identidad de referencias de múltiples áreas compatible, y el CHOOSE escalar retiene la referencia seleccionada para el cálculo posterior
Corregido
- INDEX acepta un argumento de área explícito de 1 para fuentes calculadas y distingue selectores de área inválidos, ausentes, fraccionarios y fuera de rango
- Las uniones entre hojas y las uniones de arreglos calculados se rechazan con su contrato de errores compatible en lugar de adquirir una identidad de referencia incorrecta
- Las referencias inválidas calificadas por hojas locales existentes conservan sus errores de referencia a través de fórmulas directas y nombres definidos, incluidos los nombres de hojas entre comillas, sin cambiar las cadenas de fórmulas ni interpretar los calificadores desconocidos como hojas locales
Versión 2.384.100
Añadido
- Salida portátil headless de PDF, SVG y PNG en Linux con archivos de fuentes explícitos, conformado de texto nativo, recursos acotados y publicación exclusiva de archivos por etapas
- Captura de solo lectura en Windows de rectángulos XLS clásicos y XLSX compatibles hacia instantáneas inmutables y transferibles, incluidos los resultados de fórmulas almacenadas, las tablas con ámbito y la apariencia condicional, las dimensiones físicas y las combinaciones completas
Corregido
- La validación portátil de apariencia rechaza de forma consistente las representaciones de enums inválidas en las compilaciones optimizadas del compilador
Versión 2.384.99
Añadido
- Actualización automática explícita de consultas para las conexiones Text, ADO, ODBC y Web de Windows compatibles, con registro de proveedores personalizados y resultados acotados
Corregido
- Las relaciones de resultados de consultas nativas y las identidades de columnas persisten a través del guardado y la reapertura compatibles respaldados en tablas o independientes
- Los tipos de conexión de proveedor inválidos se rechazan antes del despacho sin cambiar los resultados de la hoja de cálculo
Versión 2.384.98
Añadido
- Creación local de escalas de tiempo de tablas dinámicas, conexiones de vistas compartidas, filtrado inclusivo de días completos y eliminación protegida que borra la selección o la conserva
- Actualización nativa explícita de elementos sin datos de segmentaciones en las vistas conectadas, con límites acumulativos de recursos, cancelación y conservación de la selección y la identidad de los elementos
Corregido
- El manejo nativo de relaciones y propiedad de filtros de escalas de tiempo conserva las selecciones importadas compatibles durante la materialización, el guardado y la reapertura
- Las configuraciones de filtro cruzado de segmentaciones de tablas dinámicas persisten a través de su representación tabular nativa
- El descubrimiento de escalas de tiempo conserva la decodificación UTF-16 del libro de trabajo y de las partes vinculadas durante la carga de Open XML
Versión 2.384.97
Añadido
- Nombres definidos escalares y de arreglos calculados en los cálculos agregados numéricos y de conteo compatibles, con coerción nativa, seguimiento de dependencias y límites de recursos
Corregido
- La agregación numérica propaga los errores tipados de las referencias locales de hojas de cálculo, los promedios vacíos devuelven errores de división por cero, y las referencias con nombre fallidas conservan sus errores sin reiniciar el recorrido parcial
Versión 2.384.96
Añadido
- Argumentos de arreglos calculados para la unión de texto y los cálculos compatibles de mediana, estadísticas de orden, percentiles, cuartiles, rango porcentual, moda múltiple y covarianza poblacional
Cambiado
- La recolección de arreglos y referencias conserva la coerción escalar nativa, los errores tipados, el emparejamiento original de covarianza y los límites de recursos de cálculo
Corregido
- El cálculo finito del punto medio de la mediana evita el desbordamiento del mismo signo, y los percentiles exclusivos aceptan rangos válidos de extremo y de singleton
Versión 2.384.95
Añadido
- Salida nativa transaccional de informes compactos de tablas dinámicas con valores de hojas sincronizados, metadatos de diseño y propiedad de celdas persistida
- Disponibilidad de solo lectura de miembros de segmentaciones en las vistas conectadas bajo otros filtros activos
- Limpieza explícita de miembros históricos de cachés de tablas dinámicas con retención configurable y remapeo coordinado de selecciones vinculadas
Cambiado
- La salida nativa compatible de tablas dinámicas conserva los filtros manuales y títulos actuales mientras rechaza los diseños no compatibles o las celdas propias editadas antes de la modificación
Versión 2.384.94
Añadido
- Vistas de PivotTable con caché compartida y creación local de segmentaciones de tablas dinámicas con límites explícitos de hoja de cálculo
- Eliminación transaccional de segmentaciones que borra su restricción o conserva la selección como filtros ordinarios de tabla dinámica, incluida la política de miembros futuros
- Reconstrucción fija de cachés agrupadas numéricas, de fechas y discretas, con identidades de miembros estables
- Vistas previas separadas de metadatos de diseño compacto nativo de tablas dinámicas usando identidades exactas de miembros y agregados
Corregido
- Reabrir un libro de trabajo con datos ahora reemplaza las cachés tipadas previas de tablas dinámicas, y los enlaces nativos de segmentaciones creados por el usuario siguen siendo reconocidos por Excel
- La serialización de cachés agrupadas conserva los dominios nativos declarados de miembros y los atributos oficiales de total general y de eje de datos
Versión 2.384.93
Añadido
- Un lector y escritor XLSB validados para valores tipados de celdas, estilos básicos, vistas ordinarias de hojas de cálculo y dimensiones
- Salida binaria explícita al guardar libros de trabajo en archivo y en flujo, con detección automática de entrada binaria e informes de fidelidad de conversión
Cambiado
- La conversión XLSB prepara los paquetes completos por etapas y rechaza las funciones o configuraciones de cálculo no compatibles antes de la salida, incluidos los guardados sin verificación o con pérdida permitida
Corregido
- Los niveles de compresión ZIP configurados se aplican antes de inicializar el deflater
Versión 2.384.92
Añadido
- Actualización transaccional de cachés de tablas dinámicas y materialización segura de hojas de cálculo para fuentes locales compatibles de nombres definidos y tablas
- Búsqueda de nombres definidos con ámbito de hoja de cálculo y límites de origen resueltos por el llamador para la actualización de cachés
Corregido
- La identidad local de la fuente y el ámbito de los nombres definidos sobreviven a movimientos y renombrados de hojas de cálculo, incluidos los nombres entre comillas y Unicode
- El XML de fórmulas de nombres definidos omite el signo igual inicial opcional que solo requiere la sintaxis de fórmulas en memoria
- La pertenencia a los totales de la tabla sigue el conteo real de la fila de totales, conservando todas las filas de datos cuando solo está presente la pista de UI de totales
Versión 2.384.91
Añadido
- Entradas de arreglos calculados y resultados tipados para transposición, multiplicación de matrices, determinantes e inversión de matrices
- Vectores selectores ordenados, duplicados e índices negativos para la selección de filas y columnas
- Vectores de búsqueda calculados y solicitudes de búsqueda con valores de arreglo, incluidas porciones completas de búsqueda escalar y valores de respaldo tipados
Cambiado
- El trabajo con matrices, el escaneo de búsquedas, el recorrido de selectores, la copia y el relleno respetan los límites de pasos de evaluación y de memoria de arreglos a través de la composición
Corregido
- Las cachés de texto de fórmulas y de resultados de arreglos se muestran correctamente en Excel antes del recálculo
- Las cachés modernas de errores enriquecidos incluyen la versión del libro de trabajo y las declaraciones de funciones de cálculo requeridas para la visualización nativa en caché
- Las opciones de búsqueda y aplanado rechazan los valores fuera de rango antes del estrechamiento numérico, mientras que las opciones fraccionarias siguen la truncación nativa
- Los resultados vacíos de take, drop y flatten conservan sus errores de cálculo tipados
Versión 2.384.90
Añadido
- Las vistas previas aisladas de resultados de tablas dinámicas conservan las selecciones compartidas de segmentaciones y los filtros del llamador sin cambiar la caché calculada activa
- La materialización segura de hojas de cálculo para fuentes locales compatibles de tablas dinámicas prepara los resultados por etapas, rechaza el contenido y las estructuras en conflicto y conserva los objetos de celda, el formato y los comentarios existentes
- La propiedad exacta de valores tipados sobrevive al guardado y la reapertura de XLSX, lo que permite cambiar el tamaño y mover resultados de forma segura y adoptar explícitamente valores escalares existentes de tablas dinámicas
Corregido
- Eliminar la última vista vinculada de segmentación de tabla dinámica se rechaza antes de remover su dibujo, caché, nombre reservado o selección
- Limpiar las vistas de segmentaciones valida cada caché afectada antes de la modificación y limpia juntas las vistas, los dibujos y las cachés no vinculadas permitidas
Versión 2.384.89
Añadido
- INDEX acepta selectores de fila y columna con valores de arreglo sobre arreglos calculados y rangos de hojas de cálculo, incluidas las selecciones emparejadas y los productos cruzados fila-columna
Corregido
- Los resultados de selectores conservan los valores y errores tipados, rellenan las posiciones de selector faltantes con #N/A y respetan los límites de memoria de cálculo y de pasos de evaluación
- Los selectores escalares fraccionarios que se truncan a cero producen desbordamientos completos de fila o columna, mientras que los selectores negativos devuelven #VALUE! antes de la truncación
- La selección escalar de rangos conserva el comportamiento de referencia, y los desbordamientos de selectores se recuperan de las obstrucciones, cambian de tamaño y recalculan después de guardar y reabrir
Versión 2.384.88
Añadido
- Inspección tipada de miembros, selección de miembros compartidos y limpieza para las cachés importadas compatibles de segmentaciones de tablas dinámicas no OLAP
- Los cálculos conectados de PivotTable intersectan las selecciones de segmentaciones con restricciones independientes en otros campos y filtros de registros suministrados por el llamador
Cambiado
- Los cambios de selección validan cada conexión y miembro antes de confirmar, rechazan las máscaras importadas ambiguas del mismo campo y conservan las representaciones de caché no compatibles
- Los cambios en la colección de cachés de segmentaciones respetan la protección de escritura del libro de trabajo cuando afectan a cálculos conectados de PivotTable
- Eliminar cachés vinculadas de segmentaciones de tablas dinámicas no OLAP se rechaza de forma atómica para preservar la consistencia del estado de filtros en tiempo de ejecución y en el guardado
Corregido
- Las selecciones editadas de segmentaciones de tablas dinámicas y las máscaras de miembros de vistas conectadas se guardan juntas conservando los espacios de nombres importados y las extensiones desconocidas
- Las conexiones compatibles de segmentaciones siguen las identidades guardadas de hojas y resuelven los identificadores extendidos de caché independientemente de los identificadores ordinarios de caché del libro de trabajo
- Las definiciones importadas de PivotTable permanecen asociadas a sus vistas originales cuando se reordenan las hojas de cálculo
Versión 2.384.87
Cambiado
- La actualización local de cachés rectangulares de tablas dinámicas conserva las identidades existentes de campos y miembros, agrega al final los nuevos miembros tipados y mantiene los filtros y selecciones de vistas compartidas vinculados a sus miembros originales después de reordenar, remover o reintroducir el origen
- Los encabezados del origen coinciden con los campos de la base de datos por nombre, lo que permite reordenar columnas mientras los campos calculados conservan sus fórmulas y reciben marcadores de posición nuevos y vacíos de registros para la evaluación posterior
- La actualización valida y prepara por etapas el origen completo antes de actualizar la caché, rechazando esquemas, tipos de origen y agrupaciones derivadas no compatibles, así como los nuevos miembros de grupos discretos sin mapear, sin cambios parciales
Corregido
- Los valores de error de tablas dinámicas conservan sus tipos y códigos en elementos compartidos y registros durante el guardado y la reapertura de XLSX
- Los dominios de elementos compartidos actualizados recalculan los indicadores de tipo y los límites representables, y los metadatos de caché XLSX describen con precisión los valores mixtos, fechas, errores, booleanos y blancos
- La actualización del origen lee las celdas ausentes sin crear celdas de hoja de cálculo y compara los encabezados Unicode de campos sin estrechar su texto
- Las vistas de PivotTable actualizadas y guardadas incluyen los nuevos miembros de caché antes de los elementos de subtotal conservando el orden existente de miembros, los indicadores de oculto y las extensiones de diseño importadas
- Las selecciones de página permanecen vinculadas al miembro correcto cuando el orden de la vista difiere del orden de la caché, los campos calculados ya no desplazan los registros guardados del origen, y las marcas de tiempo de actualización usan la representación numérica XLSX
Versión 2.384.86
Añadido
- INDEX acepta arreglos calculados y constantes con selección escalar, selección del arreglo completo y extracción de fila o de columna, conservando el comportamiento de referencia para fuentes de rango
- SORT y UNIQUE aceptan arreglos calculados y constantes, lo que permite componerlos directamente con FILTER, SEQUENCE, LET y otras expresiones que producen arreglos
Cambiado
- Las expresiones de arreglos compuestas conservan el cambio de tamaño automático del desbordamiento XLSX, el cálculo de arreglos de rango fijo, los errores tipados y el recálculo después de guardar y reabrir
Corregido
- La selección y el ordenamiento de arreglos truncan las opciones numéricas fraccionarias, el texto inválido de opciones booleanas devuelve #VALUE!, y las operaciones de arreglos calculados respetan los límites de memoria y de pasos de evaluación
Versión 2.384.85
Añadido
- Los arreglos dinámicos de XLSX ahora calculan hacia rangos de desbordamiento con cambio de tamaño automático, conservan las obstrucciones del usuario con #SPILL!, admiten referencias de desbordamiento e intersección implícita explícita, y recuperan la propiedad del desbordamiento en caché después de reabrir
- La verificación previa de conversión reporta las pérdidas conocidas del formato de destino, y el guardado verificado puede rechazar esas pérdidas antes de escribir un archivo o flujo existente
- La salida explícita de plantillas con macros conserva los proyectos VBA existentes en paquetes XLTM
- La actualización de tablas de consulta proporcionada por el llamador admite resultados acotados de esquema fijo, rangos sincronizados de tablas y filtros, progreso, cancelación y reversión transaccional
Cambiado
- Las bandas de informes repetidas clonan conversaciones completas de hilos con identidades remapeadas y conservan la reversión cuando un destino falla
- La validación booleana personalizada de ODS, los límites con valores de fórmula compatibles, las fuentes de listas y las referencias calificadas se traducen con reanclaje respecto de la celda base; las definiciones no compatibles y las referencias de celda se omiten juntas
Corregido
- Las fórmulas de arreglo de rango fijo evalúan la aritmética de rangos sin procesar elemento por elemento, el MAP de múltiples arreglos acepta parámetros lambda coincidentes, y FILTER evalúa arreglos calculados y máscaras
- Los errores modernos #SPILL! y #CALC! conservan los metadatos tipados de valores enriquecidos XLSX mientras preservan los metadatos importados no relacionados y los grupos de valores enriquecidos
- Las fórmulas XLSX recién creadas se guardan con separadores de argumentos canónicos y prefijos de funciones futuras para interoperar con Excel; el guardado conserva la expresión en memoria y la reapertura devuelve la sintaxis canónica de la fórmula
- Las series locales compatibles de gráficos actualizan las cachés numéricas, de texto, de fechas, de errores, de burbujas y de categorías jerárquicas después de editar y recalcular
- La paginación nativa renderiza los tramos combinados a través de su ancla original, recorta los fragmentos de página y suprime los bordes interiores y las líneas de cuadrícula
Versión 2.384.84
Cambiado
- Los ejemplos de introducción de Delphi y C++Builder ahora incluyen un pedido de ventas práctico con fechas tipadas, precios, descuentos y totales calculados, y verifican los libros de trabajo XLS y XLSX guardados después de reabrirlos
- El ejemplo de factura ahora conecta una factura imprimible con condiciones de pago editables y un registro de recibos, calculando descuentos, impuestos, pagos y el saldo pendiente
- El ejemplo de diseño de hojas de cálculo ahora demuestra la creación, enumeración, eliminación y conservación de encabezados combinados después de reabrir
- Nueve familias más de ejemplos enfocados de API se movieron a Miscellaneous, manteniendo el catálogo principal centrado en flujos de trabajo completos de negocio y herramientas interactivas
Eliminado
- Los ejemplos mínimos independientes de celdas combinadas y texto enriquecido se consolidaron en los ejemplos de diseño de hojas de cálculo y de paneles
Versión 2.384.83
Cambiado
- El catálogo de demos ahora separa las experiencias completas y los flujos de trabajo sustanciales de las recetas enfocadas de API en la carpeta Miscellaneous de cada plataforma, con navegación directa y proyectos listos para compilar en ambos niveles
Eliminado
- Se eliminaron tres demos redundantes de rangos y diseño de hojas de cálculo; sus escenarios completos siguen disponibles en RangeOps y SheetLayout
Versión 2.384.82
Cambiado
- Las galerías de paneles de Delphi y C++Builder se abren directamente sobre un libro de trabajo con datos, con totales en vivo, gráficos renderizados, detalles editables, escenarios de precios y exportaciones del resultado actual
- El tour de API ofrece navegación directa a paneles, datos de ventas, vista previa de gráficos y recetas de API, con un conjunto de datos repetible que cubre los doce meses
- Los ejemplos llevan localmente sus unidades de escenario y recursos de manifest requeridos, lo que permite copiar cada proyecto sin un directorio común separado
Corregido
- El tour de API crea sus datos de ventas antes de entrar a las fórmulas de los paneles, lo que permite que su demostración en vivo se inicialice correctamente
- Los gráficos de la demostración en vivo actualizan sus valores y etiquetas en caché después del recálculo, y las exportaciones repetidas de la galería de C++Builder conservan las ediciones actuales sin acumular hojas de informes generados
Versión 2.384.81
Cambiado
- Los ejemplos de copia de hojas de cálculo verifican el contenido independiente, los formatos remapeados, las fórmulas y los objetos incrustados después de reabrir su salida
- Los ejemplos de sistemas de fechas, búsqueda, agrupación, fórmulas de arreglo e imágenes verifican su comportamiento específico y reportan la salida fallida mediante un código de salida distinto de cero
Corregido
- Los rangos de AutoFilter de XLS clásico conservan sus límites completos de filas y columnas después de guardar y reabrir, incluidos los filtros copiados con criterios activos
- Las galerías de paneles crean las hojas de cálculo referenciadas antes de entrar a las fórmulas, calculan los totales antes de exportar y generan todos los formatos complementarios solicitados incluso cuando otra salida falla
- La galería de paneles de C++Builder produce los archivos complementarios CSV, HTML y RTF documentados
- Los informes compilados conservan el reporte ordinario de fallas en las compilaciones estáticas clásicas de C++Builder Win64 cuando no se puede reemplazar un destino
- Los ejemplos interactivos de API reportan las fallas de exportación a PDF, HTML y CSV en lugar de afirmar que los archivos fueron escritos
- La muestra de funciones completa su demostración del hash semántico compatible y valida sus libros de trabajo guardados sin invocar instantáneas de dibujo modernas no compatibles
Versión 2.384.80
Cambiado
- El catálogo de ejemplos agrupa los proyectos por tarea de aprendizaje e identifica los puntos de entrada recomendados, las lecciones específicas por formato y los nombres de proyecto compatibles
- Los ejemplos de diseño de hojas de cálculo y de reubicación de rangos comparten escenarios completos conservando sus nombres existentes de proyecto y de salida
- Los ejemplos de memoria, CSV avanzado, impresión, propiedades de documento, cuadros de texto y protección de hojas de cálculo demuestran flujos de trabajo completos con verificación de datos guardados y reporte explícito de fallas
Corregido
- Los cuadros de texto XLSX reabiertos conservan sus relaciones de dibujo al volver a guardarse, así que las anotaciones siguen disponibles a través de ciclos repetidos de guardado y reapertura sin declaraciones duplicadas de espacios de nombres XML
- Los ejemplos de conversión por lotes respetan Skip existing antes de abrir fuentes o invocar escritores, y verifican los códigos de éxito del libro de trabajo antes de reportar la finalización
- El ejemplo de factura incluye las condiciones de pago y su título completo en el área imprimible
- El ejemplo de consola de configuración de página inicia con privilegios de usuario ordinarios en lugar de activar la detección del instalador de Windows
Versión 2.384.79
Corregido
- Los guardados de archivos ODS con opciones de exportación conservan el destino existente cuando la serialización falla o el guardado se cancela, y reportan los errores de reemplazo del destino de forma consistente
- Las opciones de exportación de ODS usan el ciclo de vida normal de guardado, incluidos la política de recálculo, la cancelación del progreso, el diagnóstico y la protección de escritura del libro de trabajo, tanto para salida a archivo como a flujo
- Los guardados de XLSX a flujo respetan la política de recálculo configurada: conservan los valores en caché en modo manual y actualizan las fórmulas dirty cuando se pide
- Las notificaciones de guardado de XLSX y ODS ya completadas no convierten una salida ya confirmada en un fallo por cancelación
- La inicialización y la finalización fallidas del parcheo de hojas en streaming liberan los manejadores del archivo fuente, lo que permite al llamador limpiar sus fuentes temporales y reutilizar el escritor después de un fallo de inicialización
Versión 2.384.78
Corregido
- Las copias y los clones de rangos conservan el formato virtual que se intersecta y reemplazan el formato de superposición previo solo dentro del destino, incluidas las copias con solapamiento y el formato entre libros de trabajo
- Los restablecimientos explícitos de formato siguen surtiendo efecto después de guardar y reabrir libros de trabajo con formato predeterminado de fila o de columna
- Las celdas XLSX que usan explícitamente el formato predeterminado del libro de trabajo conservan sus fuentes personalizadas, rellenos y formatos de número
Versión 2.384.77
Corregido
- Los objetivos de formato condicional y de validación de datos de fila completa y de columna completa siguen las ediciones de filas y columnas y la clonación de rangos cuando quedan completamente contenidos en el origen, con una geometría de objetivos acotada y las anclas de fórmulas relativas preservadas
- Los estilos de blancos repetidos finitos importados de ODS conservan toda su extensión del rango usado, y los libros de trabajo recién creados o restablecidos reportan la versión actual de la biblioteca en las propiedades del documento
- Las copias de celdas de fila completa, de columna completa y de hoja completa conservan el almacenamiento disperso, limpian el contenido reemplazado del destino sin expandir coordenadas en blanco y preservan los datos del origen con solapamiento y el formato entre libros de trabajo
Versión 2.384.76
Corregido
- Las reglas de formato condicional y de validación de datos ahora aplican de forma consistente a objetivos absolutos, invertidos, de fila completa, de columna completa y separados por espacios en blanco durante la búsqueda, la eliminación, el cálculo condicional y las comprobaciones de validación
- Las áreas objetivo mal formadas o fuera de la cuadrícula ya no coinciden con celdas, mientras que las áreas válidas de la misma regla siguen activas; las estadísticas condicionales de cuadrícula completa conservan el almacenamiento disperso de celdas
- Los objetivos de validación de ODS usan anclas de celda válidas para filas y columnas completas, y los objetivos condicionales superpuestos equivalentes ya no crean reglas duplicadas al reabrir
Versión 2.384.75
Corregido
- Las reglas de comparación de celdas y de expresión de ODS conservan sus rangos objetivo completos de fila completa, de columna completa y anchos en la salida compatible con Excel; los portadores de blancos repetidos mantienen los rangos dispersos compactos y preservan las reglas superpuestas y los metadatos de la hoja de cálculo
- Reabrir regiones de blancos con estilo repetidos de ODS mantiene compacto su formato base, y las reglas condicionales estándar conservan la precedencia y la cobertura superpuestas dentro de las regiones combinadas
Versión 2.384.74
Corregido
- El formato condicional de ODS conserva las anulaciones admitidas de fuente, fondo y formato de número al guardar y reabrir, incluidos los restablecimientos explícitos; las reglas con resaltados o rangos objetivo distintos se mantienen separadas
- El formato condicional de XLSX conserva los formatos de número integrados y personalizados, incluidos los formatos que usa solo una regla condicional; guardar ya no elimina esos formatos personalizados ni apunta las reglas a un formato diferente
- Los estilos de porcentaje de ODS incluyen el símbolo de porcentaje que otras aplicaciones de hojas de cálculo requieren y se reabren sin duplicar ese símbolo
Versión 2.384.73
Corregido
- Copiar texto al portapapeles, leer texto del portapapeles y pegar texto o datos XML Spreadsheet ya no fallan al azar en Windows 10 y 11. Después de cada cambio del portapapeles, el Explorador y el Clipboard User Service (historial del portapapeles) abren el portapapeles durante unos milisegundos para leerlo; las operaciones de texto intentaban abrirlo una sola vez y podían fallar con «acceso denegado» en ese momento
- Todas las operaciones del portapapeles usan ahora la misma política que copiar y pegar en BIFF8 (formato Excel): siguen intentando abrir el portapapeles durante unos 500 milisegundos. Cuando otra aplicación lo retiene por más tiempo, la operación sigue fallando y el contenido existente del portapapeles se deja sin cambios
Versión 2.384.72
Corregido
- Abrir un archivo ODS lee correctamente el formato de número General. Excel y LibreOffice escriben General como un estilo numérico sin cantidad de decimales, lo que se leía como dos decimales fijos, así que un valor como 1.5 se mostraba como 1.50; esas celdas ahora no llevan ningún formato de número, como en la aplicación de origen
- El texto alrededor de un número General se conserva, por ejemplo
General" kg"
Versión 2.384.71
Corregido
- Los archivos ODS guardados por Excel o LibreOffice ya no reportan un rango usado que cubre toda la hoja. Ambos dan a cada fila y columna un tamaño hasta la fila 1048576 y la columna 16384; las filas vacías cuya altura es automática ahora conservan la altura predeterminada, y los tamaños de columna que llegan hasta la última columna se convierten en el ancho de columna estándar de la hoja. Un archivo de Excel de 10 filas, abierto y guardado de nuevo, se reduce de unos 2.8 MB a unos pocos KB
- Las alturas de fila fijadas a mano, y las alturas automáticas de las filas con contenido (por ejemplo, filas que crecieron para acomodar texto con ajuste de línea), se siguen conservando
- Guardar en ODS escribe el ancho de columna estándar de la hoja (
StandardWidth) en las columnas que no tienen ancho propio; antes se perdía, ya que ODS no tiene un ancho de columna predeterminado para toda la hoja
Versión 2.384.70
Corregido
- Los archivos ODS guardados por Excel o LibreOffice vuelven a abrirse en milisegundos. Ambos rellenan cada fila hasta la columna 16384 y agregan un bloque de relleno hasta la fila 1048576; un archivo de 10 filas de Excel llegaba a tardar más de 5 minutos en abrirse, y uno de LibreOffice tampoco terminaba
- Las celdas de relleno vacías que se ven exactamente igual que el estilo de celda Default del documento ya no se convierten en celdas en blanco con formato; una hoja de Excel de 10 filas llegaba a ganar unas 180,000 de ellas. Las celdas vacías con relleno, borde, fuente, alineación, formato de número o protección propios se siguen conservando
Versión 2.384.69
Corregido
- Los formatos condicionales guardados en ODS ahora aparecen en Excel. Las reglas de valor (igual, entre, mayor que, etc.) y las reglas de fórmula también se escriben como condiciones
style:mapestándar de ODF sobre las celdas que cubren, la única forma que Excel lee; antes Excel abría los archivos ODS de HotXLS sin ninguna de estas reglas - LibreOffice ahora importa las reglas de valor de ODS escritas por HotXLS con su operador y sus límites reales; antes convertía cada una de ellas en «igual a 0»
- Abrir un archivo ODS lee los formatos condicionales almacenados como condiciones
style:map, tal como los escriben Excel y otros productores ODF. Cuando un archivo también lleva las mismas reglas en la forma propia de LibreOffice, cada regla se lee una sola vez - Abrir un archivo ODS lee la grafía de LibreOffice para las reglas de valor (
=5,between(1,10),!="x"); los archivos de versiones anteriores de HotXLS se siguen abriendo como antes
Versión 2.384.68
Corregido
- Las fórmulas que aplican un operador a un rango de varias celdas o a una matriz en línea, como
=SUM(A1:B1*{10,100}),=SUM((A1:B2>2)*1)o=MAX(A1:B2-1), se almacenan de la forma en que las almacena Excel 365, así que Excel muestra el mismo resultado que HotXLS: en XLSX como fórmulas de matriz dinámica de una sola celda, y en XLS como fórmulas de matriz de una celda. Antes Excel las abría con intersección implícita (=SUM(@A1:B1*@{10,100})) y mostraba #VALUE! o un valor incorrecto - Las fórmulas de matriz de XLS escriben sus referencias y constantes de matriz en forma de matriz, como hace Excel; antes Excel evaluaba las fórmulas de matriz escritas por HotXLS con intersección implícita
- Los archivos XLSX con fórmulas de matriz dinámica (incluidas las creadas con
SetDynamicArrayFormula) se abren en Excel; antes Excel rechazaba el archivo completo porque los metadatos de matriz dinámica usaban un identificador de extensión con un uso de mayúsculas y minúsculas diferente
Versión 2.384.67
Corregido
- Las comparaciones de texto siguen el orden de Excel en ambos motores: ignoran mayúsculas y minúsculas y usan el ordenamiento de palabras de la configuración regional del sistema, así que los guiones y los apóstrofos solo sirven para desempatar (
"a-b">"ab"es TRUE) y el resto de la puntuación se ordena antes que los números y las letras ("a~b">"ab"y"a_b">"ab"son FALSE). Esto aplica a los operadores de comparación, a los criterios>text/<texten COUNTIF, SUMIF, la familia *IFS y las funciones de base de datos, a las comparaciones de matrices, a las búsquedas, a las funciones tipo SORT y al ordenamiento de rangos - VLOOKUP y HLOOKUP comparan texto sin distinguir mayúsculas de minúsculas, así que
VLOOKUP("ABC",...)encuentra «abc», igual que en Excel
Versión 2.384.66
Corregido
- LibreOffice ahora reconoce el formato condicional basado en fórmulas escrito en ODS: la regla se guarda como
formula-is(...)con su celda base, que es la forma en que el propio LibreOffice la escribe. Antes, LibreOffice leía todas estas reglas como una regla simple de «el valor de la celda es igual a 0» - Las fórmulas del formato condicional escritas en ODS traducen matrices en línea, uniones, referencias de columnas enteras y de filas enteras, y conservan los marcadores
$de la misma manera que las fórmulas de celda (COUNTIF($A:$A,A1)>1se convierte enCOUNTIF([.$A:.$A];[.A1])>1) - Al abrir un archivo ODS se lee el formato condicional basado en fórmulas escrito por LibreOffice (
formula-is), así como el de los archivos de versiones anteriores de HotXLS
Versión 2.384.65
Corregido
- Las referencias de columnas enteras y de filas enteras (
A:A,$A:$B,1:1,$1:$2) en las fórmulas escritas en ODS usan la forma de referencia de OpenFormula ([.A:.A]). Antes Excel abría esas celdas como=SUM(A:(A))con #NAME?, o directamente descartaba la fórmula; los archivos ODS de HotXLS ahora muestran las mismas fórmulas y valores en Excel y LibreOffice
Versión 2.384.64
Corregido
- Las funciones de base de datos (DSUM, DCOUNT, DCOUNTA, DAVERAGE, DGET y las demás) tratan un criterio de texto sin operador como «empieza con», como hace Excel:
aben el rango de criterios coincide con abc, ab y AB, y los comodines siguen aplicándose (a?coincide con cualquier entrada de dos o más caracteres que empiece con a).=aby<>absiguen comparando la entrada completa
Versión 2.384.63
Añadido
- Las fórmulas pueden contener constantes de matriz en línea como
{1,2;3,4}(columnas separadas por comas, filas por puntos y coma, con números, texto, TRUE / FALSE y valores de error) y uniones de referencias como(A1:B2,D4), tanto en el motor XLS como en el XLSX; escribirlas antes fallaba con «invalid formula syntax» - Las constantes de matriz se evalúan como matrices (
=SUM({1,2}*{3,4}),=ROWS({1,2,3;4,5,6}),=SUMPRODUCT(A1:A2,{1;10})), y las uniones funcionan en SUM, COUNT, AVERAGE, MIN, MAX y COUNTA, en AREAS, en ISREF y en el argumento area_num de INDEX
Corregido
- Los archivos XLS almacenan las constantes de matriz de modo que Excel las lea: la constante se escribía como una referencia, y Excel la mostraba como
=#N/A; las fórmulas XLS que contienen constantes de matriz o uniones también se leen de regreso con su texto de fórmula
Versión 2.384.62
Corregido
- El operador de intersección (un espacio entre dos referencias) regresa las celdas que cubren ambas referencias, como en Excel:
=SUM(A1:B2 B1:B2)da 6 en lugar de 2, las referencias sin una celda en común dan #NULL!, y una intersección se puede pasar a funciones que aceptan referencias como ROWS, COLUMNS o INDEX. Esto aplica a ambos motores, a las fórmulas calculadas y a las fórmulas guardadas en celdas - Los archivos XLS mantienen las fórmulas de intersección utilizables en Excel: los rangos referenciados ahora se escriben como referencias, así que Excel ya no lee
=SUM(A1:B2 B1:B2)como=SUM(@A1:B2 @B1:B2)ni muestra #VALUE! - Una intersección usada como valor único con más de una celda en común elige la celda que está en la fila o la columna de la fórmula, igual que cualquier referencia de varias celdas
Versión 2.384.61
Corregido
- SUMPRODUCT acepta expresiones de matriz como
(B1:B2>0)*1,--(B1:B2>0),B1:B2*C1:C2y un único argumento, en los motores XLS y XLSX; antes regresaban #N/A. Los argumentos de formas distintas regresan #VALUE!, un error dentro de cualquier argumento se regresa tal cual, y el texto y los valores lógicos cuentan como 0, como en Excel - Las expresiones de operador sobre rangos dentro de SUM, COUNT, AVERAGE, MIN, MAX y COUNTA se evalúan elemento por elemento, como con las matrices dinámicas de Excel:
=SUM((B1:B2>0)*1)cuenta las dos filas en lugar de usar solo la primera celda - TRUE cuenta como 1 en la aritmética:
=TRUE*1regresaba -1 - Las comparaciones elemento por elemento tratan un elemento vacío como 0, "" o FALSE para igualarse al otro lado, y comparan los valores lógicos como valores lógicos; unir un valor lógico con
&en una matriz da TRUE / FALSE
Versión 2.384.60
Corregido
- La búsqueda y el reemplazo con comodines y coincidencia de celda completa (
FindText,ReplaceText,FindTextIn,ReplaceTextInen ambos motores) coinciden con la celda completa tal como hace Excel:a*bahora encuentraabcb, que antes se rechazaba porque la coincidencia se detenía en la primerab - En la búsqueda y el reemplazo con comodines,
~hace que el carácter que le sigue se tome literal y un~final se ignora, como en Excel:a~bencuentraab, ya~~bencuentraa~b
Versión 2.384.59
Corregido
- Los horarios de creación y modificación de documentos XLSX (
Created,Modified) y las propiedades personalizadas con valor de fecha se leen correctamente cuando la marca de tiempo trae fracciones de segundo (2026-03-15T08:30:00.123Z) o un desfase de zona horaria (+08:00,-05:00): la hora se convierte a hora local en lugar de tomarse tal cual como hora local - Las marcas de tiempo solo de fecha (
2026-07-01) se leen como esa fecha; las que traen hora pero sin zona, que el formato W3CDTF no permite, se siguen leyendo como hora local
Versión 2.384.58
Corregido
- El AutoFit de XLSX vía
TXLSAutoFit(FitXlsxSheet,FitXlsxSheetColumns,FitXlsxSheetRows,MarkSheet) mide cada celda con la fuente con la que se muestra; desde 2.384.46 tomaba la siguiente fuente de la lista de fuentes del libro de trabajo, así que un encabezado en negrita podía medirse con la fuente pequeña de otra celda y salir demasiado angosto - El AutoFit también usa la fuente que una celda hereda del estilo de su fila o de su columna
Versión 2.384.57
Corregido
- Con "precisión como se muestra" (
FullPrecision = False), el motor XLSX ahora redondea como lo hacen Excel y el motor XLS: los formatos de porcentaje conservan dos decimales extra (0.1234 mostrado como0.0%almacena 0.123, no 0.1), los valores negativos y el cero usan su propia sección de formato, y los puntos medios se redondean lejos de cero (2.5 mostrado como0almacena 3, no 2) - Ambos motores respetan las comas de escala por miles bajo "precisión como se muestra": 12345.678 mostrado como
0.0,(12.3) almacena 12300, como en Excel - Un resultado lógico de fórmula en una celda con formato de número ya no se convierte en -1 por la "precisión como se muestra" del motor XLS
Versión 2.384.56
Corregido
- Los archivos ODS escritos por HotXLS declaran los espacios de nombres de sus prefijos de fórmula, así que LibreOffice evalúa las fórmulas en lugar de mostrar #VALUE! en cada celda con fórmula
Versión 2.384.55
Corregido
- Las fórmulas escritas en ODS conservan su significado: las matrices en línea usan el separador de filas de OpenFormula (
{1,2;3,4}se convierte en{1;2|3;4}en lugar de una sola fila), una unión de referencias como(A1,B2)se convierte en el operador~en lugar de dos argumentos de función, y las referencias absolutas conservan sus marcas$ - Leer de regreso una unión así desde ODS ya no agrega un segundo par de paréntesis, así que estas fórmulas sobreviven sin cambios a una ida y vuelta de XLSX a ODS y de vuelta a XLSX
Versión 2.384.54
Corregido
- Los archivos XLS protegidos por contraseña guardados en el formato Excel 5.0/95 (ofuscación XOR) ya se abren en Excel. La clave guardada en el archivo se deriva de la contraseña en lugar de ser aleatoria, y la matriz de ofuscación usa la rotación de bits que Excel espera; antes Excel reportaba una contraseña incorrecta para cada uno de estos archivos, y con solo la clave corregida reportaba el archivo como dañado
- Los libros de trabajo con ofuscación XOR se leen con la misma matriz corregida, así que los archivos cuya clave coincide con la contraseña se descifran tal como Excel los cifra; los archivos XOR escritos por versiones anteriores de HotXLS siguen abriéndose
Versión 2.384.53
Corregido
- Comparar una celda vacía con un valor lógico trata la vacía como FALSE en ambos motores, XLS y XLSX, igual que Excel: con A1 vacía,
=A1=FALSEy=A1<TRUEahora regresan TRUE y=A1=TRUEregresa FALSE. Antes la celda vacía se comparaba como 0, que queda por debajo de cualquier valor lógico
Versión 2.384.52
Corregido
- COUNTIF, COUNTIFS, SUMIF, SUMIFS, AVERAGEIF, AVERAGEIFS y las funciones de base de datos aplican los criterios de texto con las reglas de comodines de Excel tanto en el motor XLS como en el XLSX:
~*y~?coinciden con un asterisco o un signo de interrogación literal, los corchetes son caracteres ordinarios, y un criterio sin*ni?es una comparación simple sin distinción entre mayúsculas y minúsculas. Antes un criterio como"[x]"se leía como un conjunto de caracteres,"~*"no coincidía con un asterisco, y un patrón mal formado no coincidía con nada, sin avisar - Los criterios
"<>text"cuentan números, valores lógicos y celdas vacías como no iguales, y un"<>"sin nada más cuenta todas las celdas no vacías, como en Excel; la comparación de texto bajo<>ahora no distingue entre mayúsculas y minúsculas - La coincidencia con comodines de MATCH y XLOOKUP trata
~como un escape del carácter que le sigue e ignora un~final, como hace Excel
Versión 2.384.51
Cambiado
- Las instantáneas de celdas de solo lectura conservan los nombres de hoja en almacenamiento UnicodeString compartido; SheetName es ahora una propiedad WideString de lectura y escritura con la misma sintaxis ordinaria de lectura y asignación de antes, pero ni la dirección cruda del campo ni el anterior layout de registros están soportados; el código que llama debe recompilar contra esta versión
- La salida de reportes a un flujo de destino vacío se salta la instantánea de respaldo innecesaria, conservando la reversión del contenido y la posición del destino si la salida falla
- Las auditorías profundas de fórmulas procesan las cachés numéricas de forma más eficiente conservando los valores Variant en caché, los resultados de evaluación y los hallazgos reportados
Corregido
- El pegado del portapapeles en XLS y XLSX captura los datos BIFF8 y el texto de respaldo juntos bajo un solo bloqueo del portapapeles, así que ambos formatos salen del mismo estado del portapapeles; el BIFF8 legible sigue siendo utilizable cuando su texto compañero no se puede recuperar, un texto no disponible por sí solo no inserta celdas, y la política existente de reintentos para abrir el portapapeles no cambia
- La publicación fallida del texto requerido o del BIFF8 al portapapeles preserva el código de error Win32 original durante la limpieza, así que el código que llama puede obtener el diagnóstico del fallo justo después de la llamada
- El lector de texto del portapapeles de un solo intento preserva los fallos nativos de recuperación de datos durante la limpieza del portapapeles sin cambiar su comportamiento de reintento
Versión 2.384.50
Cambiado
- Las auditorías de símbolos de fórmula van más rápido en libros de trabajo XLS dispersos, conservando los hallazgos reportados y su orden
Versión 2.384.49
Corregido
- Demos WorkbookAudit (Delphi y C++Builder):
AuditReport.jsonse escribe sin el BOM UTF-8 para que los parsers JSON estrictos lo acepten; las hojas XLS reportan su rango de AutoFilter; los nombres definidos XLSX que apuntan a otro libro de trabajo muestran el archivo vinculado en lugar de su índice; las ejecuciones desde la línea de comandos ya no sobrescriben la configuración guardada; un cuadro de carpeta vacío recurre a la carpeta del programa en lugar de la raíz de la unidad; un guardado fallido de la muestra se registra en el log en lugar de reportarse como creada - Demos ApiTour: al reconstruir el libro de trabajo de demostración, si la reconstrucción falla se conserva el anterior, así que los botones de exportación ya no provocan un crash; los libros de trabajo se liberan cuando la construcción lanza una excepción; la exportación HTML registra sus errores en el log; el log reporta los cinco formatos condicionales que realmente se crean
- Demos ExcelGraphics: un tipo de imagen no soportado se reporta en lugar de guardar una hoja vacía, y el diálogo de apertura lista solo los formatos soportados
- Los demos OdsExport comparan el tamaño de fuente en la verificación de ida y vuelta y regresan un código de salida distinto de cero cuando la verificación o el guardado fallan; el demo OdsImport de C++Builder verifica el resultado del guardado y ya no crea celdas vacías mientras reporta
- Los demos DataExport / ExportWithColoring reducen el ancho solo de la primera columna, como dicen sus comentarios, y los demos de exportación de C++Builder abren el diálogo de guardado en la carpeta del programa
- Los readmes de los demos listan las APIs y los archivos de salida que los demos realmente usan
Versión 2.384.48
Corregido
- Las horas de creación y de último guardado de los documentos ahora se escriben en UTC, como requieren los formatos de archivo, y se leen de vuelta como hora local:
Created/Modifiedde XLSX y las propiedades de fecha personalizadas, yCreatedDate/LastSavedDatede XLS. Antes la hora local se guardaba como si fuera UTC, así que Excel y el Explorador de Windows mostraban las marcas de tiempo desplazadas por el desfase de la zona horaria; los valores que el propio HotXLS escribe y lee no cambian
Versión 2.384.47
Corregido
- Archivos XLS con ofuscación XOR (la protección por contraseña de los libros de trabajo de Excel 5.0/95,
EncryptionType = xletXor): la posición de la clave usada para cada registro ahora sigue la especificación del formato de archivo, igual que la leen y la escriben las demás aplicaciones de hojas de cálculo. Antes HotXLS solo podía leer sus propios archivos XOR, y cualquier registro cuya longitud no fuera múltiplo de 16 se decodificaba como basura en las demás aplicaciones
Versión 2.384.46
Corregido
- El AutoFit de XLSX (
FitXlsxSheet,FitXlsxSheetColumns,FitXlsxSheetRows,MarkSheet) mide cada celda con su propia fuente, tamaño, negrita y cursiva en lugar de medir todo siempre como Arial 10, así que el texto en Calibri 11, los encabezados en negrita y los títulos grandes ya no salen demasiado angostos - El AutoFit de XLSX mide el texto tal como se muestra a través del formato numérico (fechas, moneda, porcentajes), y no el valor crudo guardado
- El AutoFit de XLSX mantiene los anchos de columna ajustados dentro de
MaxWidth; antes el margen de celda se sumaba después de aplicar el límite - El AutoFit de XLSX dimensiona las filas de las celdas con ajuste de texto (wrap) en columnas sin ancho explícito contra el ancho predeterminado de la hoja; antes esas celdas se medían como una sola línea y la fila salía demasiado corta
Versión 2.384.45
Corregido
- Libros de trabajo XLS: los criterios de
ApplyAutoFiltercomo'>=100'o'=2.5'ahora se guardan como condiciones numéricas; se guardaban como texto, que Excel compara como texto, así que el filtro ocultaba todas las filas numéricas. Un valor sin operador de comparación (como'North'o'100') sigue guardándose como texto, igual que Excel guarda un elemento elegido de una lista Criteria1.DataTypereporta 4 (número) para estos criterios en lugar de 6 (texto);Criteria1.Valuesigue leyéndose como 100
Versión 2.384.44
Corregido
INDIRECTcon un texto de referencia A1 leía la celda una fila abajo y una columna a la derecha (INDIRECT("D1")regresaba E2), en los libros de trabajo XLS y XLSX; el texto R1C1 ya era correcto. Una referencia más allá de la última fila o columna ahora regresa#REF!
Versión 2.384.43
Corregido
- Libros de trabajo XLSX: las fórmulas ya pueden referenciar la hoja completa de 1,048,576 × 16,384. Las referencias más allá de la columna IV o de la fila 65,536 (
=XFD1,=A100000,=SUM(XFC1:XFD1),Data!C1048576) antes se rechazaban como nombres desconocidos al introducirlas o se evaluaban a un error; ahora se parsean, se calculan, se desplazan con las filas y columnas insertadas y se guardan tal como se escribieron - Libros de trabajo XLSX: las referencias de columna completa y de fila completa (
A:A,1:1) cubren la hoja entera, así queROWS(A:A)regresa 1048576 ySUM(A:A)incluye los valores debajo de la fila 65,536;ADDRESSregresa columnas de tres letras como$XFD$1 - Libros de trabajo XLS: se aceptan las referencias a la última fila y columna de la hoja de 65,536 × 256 (
=A65536,=IV1); antes se rechazaban como nombres desconocidos
Versión 2.384.42
Corregido
- Las unidades heredadas
lxRows/lxCols(se conservan por compatibilidad de código fuente; las clases de libro de trabajo no las usan): un índice de fila mayor que 1,048,575 lanzaERangeErroren lugar de dar la vuelta hasta la fila 1, el registro ROW ya no marca cada cambio de nivel de esquema como contraído, y escribir COLINFO para una columna sin configuración propia usa los valores predeterminados en lugar de provocar un crash
Versión 2.384.41
Corregido
- Compilaciones de Lazarus / Free Pascal en modo de cadenas ANSI: los archivos temporales de trabajo cuya ruta contiene caracteres fuera de la página de código del sistema ahora se eliminan al limpiar; antes sus nombres se almacenaban con pérdida y los archivos quedaban tirados en la carpeta temporal
Versión 2.384.40
Corregido
TlxCellMMU(el almacén de celdas empaquetadas) lanzaEInvalidOperationcuando se escribe una celda fuera del orden de filas dentro de un bloque de 256 filas o sobre una celda existente, yERangeErrorpara una posición negativa o una columna mayor que 65,534; antes, una escritura así corrompía silenciosamente la fila vecina. Las escrituras masivas de la propia librería ya conservan el orden de filas y no se ven afectadas
Versión 2.384.39
Cambiado
- Libros de trabajo XLSX: asignar
TXLSXWorksheet.TabColorahora también poneTabColorIsAutoen False, así que el color de la pestaña se muestra sin una segunda asignación, igual que las propiedades de color de fuente, relleno y borde. PonerTabColorIsAutoen True después sigue eliminando el color de la pestaña
Versión 2.384.38
Cambiado
- Libros de trabajo XLS:
TXLSWorksheet.AddPivotTableahora trataDestRowyDestColcomo 1-based, igual queCells[Row, Col], la documentación y el motor XLSX;AddPivotTable('Data!A1:C9', 3, 1, ...)ancla la tabla dinámica en A3. El código que pasaba posiciones 0-based debe sumar 1, y un anclaje en 0 o fuera de la hoja ahora regresanil - Libros de trabajo XLS: las posiciones de
TXLSPivotTable(deFirstRowaFirstDataCol) y el rango de origen deTXLSPivotCache(deSourceFirstRowaSourceLastCol) ahora son 1-based en tablas dinámicas nuevas y abiertas, así que el mismo código lee las mismas celdas en ambos motores y una tabla dinámica copiada entre ellos conserva su lugar
Versión 2.384.37
Corregido
- Libros de trabajo XLSX: una tabla dinámica colocada debajo de la fila 65,535, o una empujada hasta ahí al insertar filas, conservaba su posición real; antes el anclaje se recortaba a 16 bits y la tabla dinámica guardada aterrizaba en las filas equivocadas
- Las propiedades de posición de la tabla dinámica (
FirstRow,FirstCol,LastRow,LastCol,FirstHeaderRow,FirstDataRow,FirstDataCol) ahora sonIntegeren lugar deWord - Libros de trabajo XLSX:
AddPivotTableyAddPivotTableCopyregresannilcuando el anclaje queda fuera de la hoja o el bloque copiado rebasaría la última fila o columna, en lugar de escribir una tabla dinámica que Excel rechaza
Versión 2.384.36
Corregido
- Los demos de C++Builder XlsTables, XlsCondFormat12, XlsCreateChart e InteractiveFeatures escriben sus columnas de texto como texto; pasar un
const wchar_t*a unOleVariantelegía el constructorbooly cada encabezado y etiqueta salía como TRUE - El demo DefinedNames lista los nombres XLS desde el índice 1 en lugar de hacer crash en el índice 0, WorkbookAudit cuenta las referencias externas en los nombres de los libros de trabajo XLS, y FileMonitor escribe
Monitored.xlsxen lugar del.xlsxxmal escrito que hacía fallar cada lectura de nombre de hoja - Los demos Pictures y OdsExport incrustan un PNG válido; el literal de bytes se corrompía con la conversión de cadena y las longitudes de los chunks de Pictures estaban mal
- ApiTour evalúa su paso
DEMOADDen la hoja API Tour en lugar de la hoja Dashboard activa, donde un argumento de texto podía abortar el arranque; el tour clásico de C++Builder ahora muestra el resultado del paso - FreezePanes, QuickStart y ApiTour congelan exactamente sus filas y columnas de encabezado;
FreezePanesrecibe cantidades, no la primera celda desplazable - Los colores de formato condicional en ApiTour, CondFormatGallery, OdsExport y WorkbookAudit se dan en BGR como espera la API, así que las barras de datos y las escalas de color muestran los colores previstos; CondFormatGallery da un resaltado visible a sus reglas top-N, de duplicados y de superior al promedio
- MemoryDataExport y HtmlExport ya no reportan exportaciones CSV, HTML y RTF exitosas como fallidas (estos writers regresan 0 en caso de éxito), y MemoryDataExport escribe los tres archivos incluso si uno falla
- Los demos que guardan y luego reportan o abren el archivo (QuickStart, ExcelGraphics, HotXLSInMemory, OrderCalc, PurchaseOrder y varios demos de consola) verifican el resultado del guardado en lugar de anunciar éxito cuando el archivo está bloqueado
- ConversionWorkbench trata cualquier resultado negativo del writer como un fallo y primero elimina la salida anterior, así que un archivo viejo ya no oculta una conversión fallida; la versión de C++Builder exporta cada hoja a HTML
- InvoiceTemplate, OrderCalc y DataExport ya no dependen del formato de números y fechas de Windows: las fórmulas de impuestos, los precios y los umbrales de fecha funcionan en sistemas que usan coma decimal o fecha con el año primero
- Correcciones menores: los totales de QuickStart usan texto oscuro sobre su relleno claro, DateSystems muestra los números de serie crudos y una fecha válida de la época 1904, CrossWorkbookCopy mantiene sus celdas combinadas fuera de la tabla, CrossWorkbookCopyXls usa una lista separada por comas y un azul claro real, Hyperlinks muestra el texto de hipervínculo previsto, SheetProtection describe y configura correctamente las acciones permitidas, OdsImport ya no crea celdas vacías mientras escanea, InteractiveFeatures guarda un libro de trabajo sin contenido VBA como .xlsx, WorkbookAudit reporta los archivos XLS cifrados y sus proyectos VBA, ChartTypes mantiene sus gráficos fuera de los datos, los demos de exportación de datos de C++Builder encuentran Demos.mdb desde la carpeta de salida del IDE, y FormulaFunctions verifica la celda reabierta y cuenta los fallos de reapertura
Versión 2.384.35
Corregido
- Asignar un color a una fuente, un relleno, un borde o un run de texto enriquecido de XLSX ahora surte efecto por sí solo. Estos objetos empiezan con el color automático, y un
Color,ForegroundColoroBackgroundColorexplícito se descartaba silenciosamente a menos que también se limpiara el flagColorIsAuto/ForegroundIsAuto/BackgroundIsAutocorrespondiente - Asignar un color RGB también limpia un origen de color de tema o indexado anterior que, de lo contrario, ganaría sobre él; asignar una ranura de tema o indexada de 0 o más limpia el flag automático
- Los colores de borde pegados en un libro de trabajo XLSX desde el portapapeles, los colores de borde de los libros de trabajo clásicos exportados a XLSX y el color de fuente pasado a
TXLSXComment.SetFontahora se escriben en lugar de perderse ante el color automático
Versión 2.384.34
Corregido
- Los elementos de subtotal, total general y en blanco de la lista de elementos de un campo dinámico ya no se leen como elementos de datos; copiar una tabla dinámica así solía escribir un elemento que apuntaba al índice -1 de la caché
- Los campos dinámicos de archivos de Excel conservan su subtotal predeterminado: Excel omite
defaultSubtotalcuando está activado, y HotXLS trataba el atributo ausente como desactivado - Los campos de caché dinámica cuyos elementos compartidos omiten
containsStringse leen como campos de texto, siguiendo el valor predeterminado del esquema, en lugar de campos mixtos
Versión 2.384.33
Corregido
- Las tablas dinámicas escritas por el motor XLSX usan los valores de eje del esquema (
axisRow,axisCol,axisPage); versiones anteriores escribíanrowAxis/colAxis/pageAxis, que no son OOXML válidos. HotXLS sigue leyendo los archivos que contienen los valores viejos - Los campos dinámicos usados en el área de valores se marcan con
dataField="1", y los campos sin elementos ya no reciben una lista<items>vacía que el esquema no permite - Los elementos dinámicos ocultos y contraídos conservan su estado cuando la tabla dinámica se copia o se reconstruye, y la lista de elementos de cada campo termina con los elementos de subtotal que Excel espera para sus funciones de subtotal
- Los campos de la caché dinámica llevan un
numFmtIdnumérico en lugar del textoGeneral
Versión 2.384.32
Corregido
- La importación de ODS convierte correctamente las filas de un array inline:
{1;2|3;4}se convierte en{1,2;3,4}y no en una fórmula que Excel no puede parsear - La importación de ODS convierte el operador de unión de referencias:
SUM([.A1:.B2]~[.C3])se convierte enSUM((A1:B2,C3))
Versión 2.384.31
Corregido
- La importación de ODS lee las celdas de tiempo cuya duración lleva una parte de fecha, como
P0Y0M0DT12H30M15S, y las duraciones en semanas comoP1W, en lugar de recurrir al texto mostrado - Una
Mantes del separadorTde una duración ODS es un mes, no un minuto; los años y meses distintos de cero, que no tienen longitud fija, ahora recurren al texto mostrado en lugar de convertirP1Men un minuto
Versión 2.384.30
Corregido
TGWmfEmfReadcierra el metarchivo cuando el archivo es demasiado corto o está dañado, en lugar de mantenerlo bloqueado hasta que el proceso terminaTGWmfEmfReadtrata un WMF placeable cuyo encabezado indica cero unidades por pulgada como sin tamaño en lugar de dividir entre ceroTGWmfEmfReadguarda tamaños y límites de 32 bits enBSEWMF, en consonancia con el encabezado de imagen que describe
Versión 2.384.29
Corregido
- Las imágenes WMF y EMF de 64 KB o más en libros de trabajo XLS clásicos sobreviven a la apertura y al guardado; su tamaño guardado y su tamaño descomprimido se recortaban a 16 bits, así que Excel no podía decodificar la imagen en el archivo guardado
- Los límites de las imágenes de metarchivo fuera del rango -32768..32767 se conservan en lugar de dar la vuelta
Versión 2.384.28
Corregido
TXMLWriterya no produce XML malformado cuando los valores de texto o de atributos contienen caracteres de control, surrogates sin pareja o U+FFFE / U+FFFF; los caracteres que XML 1.0 no puede representar se omitenTXMLWriterescribe un retorno de carro en el texto de un elemento como referencia de carácter, así que el texto se lee de vuelta sin cambios en lugar de convertir CR en LFTXMLWriterlanza un error cuando el stream de destino acepta menos bytes de los escritos, por ejemplo con un disco lleno, en lugar de dejar un archivo truncado en silencio
Versión 2.384.27
Corregido
- Copiar un rango cuyas fórmulas apuntan por encima o a la izquierda del bloque copiado, como
=B4+1copiado desde B5, ahora se pega con la referencia todavía una fila arriba; antes se quedaba clavada a la celda original y una fórmula podía acabar refiriéndose a sí misma - Los datos de portapapeles de Excel que publica HotXLS mantienen las celdas copiadas en su posición dentro de la hoja, así que las aplicaciones que los leen ven las direcciones originales
Versión 2.384.26
Corregido
- Los helpers de cadenas de zlib (
ZCompressStr,ZDecompressStry las variantes in-place) ahora procesan la cadena completa; con cadenas Unicode solo se comprimía la primera mitad del texto, así que una ida y vuelta perdía datos
Versión 2.384.25
Corregido
- Los hipervínculos de libros de trabajo clásicos cuyo texto mostrado está marcado sin el flag de sitio se leen correctamente, y los hipervínculos con un tipo de destino inusual ya no hacen fallar toda la apertura ni regresan una subdirección corrupta
Versión 2.384.24
Corregido
- Una excepción lanzada por el manejador de cambios del monitor de archivos ya no detiene el monitor en silencio; este sigue vigilando y reporta los cambios posteriores
Versión 2.384.23
Corregido
- Los colores de tema con un tint menor que -1 en un archivo malformado se acotan a negro en lugar de producir colores aleatorios al exportar o imprimir
Versión 2.384.22
Corregido
- Las conexiones de datos creadas mediante la API se guardan con el atributo de versión de refresh que requiere el formato de archivo
- Una conexión con un nombre o id ausente o repetido ya no hace que todo el libro de trabajo falle al abrir; la entrada se conserva tal como estaba y se guarda de nuevo sin cambios
Versión 2.384.21
Corregido
- Cambiar el código fuente de un módulo VBA ahora surte efecto en Excel: el proyecto se guarda de forma que Office compile el código nuevo en lugar de ejecutar el código compilado que tenía en caché del viejo
- El código fuente de los módulos VBA ahora se guarda en la forma comprimida que define el formato; el último bloque de cada módulo se almacenaba de una manera que Office considera dañada
- Un stream de directorio VBA malformado ya no deja colgada la apertura del libro de trabajo, y una entrada de módulo sin su información de stream ya no deja un módulo vacío en el proyecto
Versión 2.384.20
Corregido
- Los nombres definidos cargados de un libro de trabajo clásico conservan sus referencias desplazadas después de insertar o eliminar filas o columnas y de guardar el libro de trabajo; antes el archivo seguía conteniendo la referencia original
Versión 2.384.19
Corregido
- Ajustar solo las filas o solo las columnas de una hoja XLSX ya no pone en cero el ancho de cada columna medida ni el alto de cada fila medida cuando estas no tienen un tamaño explícito
Versión 2.384.18
Corregido
- Los criterios de AutoFilter en libros de trabajo clásicos se combinan tal como se establecieron: las condiciones AND se guardaban como OR y al revés, así que Excel mostraba las filas equivocadas
- Los criterios booleanos de AutoFilter se guardan como TRUE o FALSE; se almacenaban en una forma que Excel lee como valor de error
Versión 2.384.17
Corregido
- Las fechas de creación y de último guardado de los libros de trabajo clásicos ahora coinciden con Excel; se escribían un día tarde y se leían un día antes
- La fecha de último guardado se guarda bajo su propiedad de documento correspondiente; se guardaba en la ranura del conteo de páginas, donde Excel y Windows no la mostraban como fecha
- El tiempo total de edición se guarda como duración, así que Excel y Windows muestran la cantidad real de minutos en lugar de unos 299 años; las horas escritas por versiones anteriores todavía se leen correctamente
Versión 2.384.16
Corregido
- La regla de valores únicos de la verificación de importación ahora compara los valores de las celdas; antes se reportaba como duplicado todo valor posterior al primero en una columna
- Agregar una segunda regla para la misma columna reemplaza limpiamente a la primera; la regla vieja se liberaba pero seguía verificándose, y liberar el verificador lanzaba un error de puntero inválido
- Verificar una hoja ya no crea celdas vacías por los blancos que lee
- Conservar solo las filas con violaciones ya no escribe más allá de su tabla de filas cuando una violación queda debajo del rango usado, y la fila de títulos se inserta encima de los datos en lugar de sobrescribir la primera violación
Versión 2.384.15
Corregido
- Leer una entrada ZIP en piezas pequeñas ya no pierde los últimos bytes de la entrada cuando los datos comprimidos terminan a mitad de una secuencia repetida, lo que podía hacer que un XLSX válido fallara con un error de tamaño de entrada
- Descomprimir datos que se expanden más allá de 2 GB ahora lanza un error en lugar de provocar un crash del proceso de 64 bits
- El stream de descompresión regresa todos los datos restantes una vez agotada su entrada en lugar de detenerse antes de tiempo
Versión 2.384.14
Corregido
- Las imágenes PNG entrelazadas de 1, 2 o 4 bits por píxel ya no escriben más allá del buffer de imagen, lo que podía provocar un crash o corromper píxeles vecinos al exportar o imprimir un libro de trabajo que las contenga
- Las imágenes PNG entrelazadas se decodifican correctamente cuando un pase empieza con el filtro Average o Paeth
- Las imágenes PNG en escala de grises de 2 bits ahora renderizan sus niveles de gris reales, y leer píxeles individuales de imágenes en escala de grises de 2 bits y de imágenes con paleta regresa los colores correctos
- Las imágenes PNG cuyos datos comprimidos llevan bytes sobrantes ya no dejan colgado el decodificador, y las imágenes válidas con un chunk grande de datos de imagen ya no se rechazan con un error de CRC
- Las imágenes con una profundidad de bits inválida o una longitud de chunk más allá del final del archivo se rechazan de forma limpia en lugar de provocar un crash o asignar gigabytes de memoria
- Los chunks de texto guardados en imágenes PNG ya no se truncan ni se corrompen
Versión 2.384.13
Corregido
- Los libros de trabajo clásicos cifrados con RC4 ahora usan el hash de contraseña correcto para contraseñas de 28 caracteres o más, así que abren en Excel; las contraseñas de 32 caracteres o más antes producían archivos que ni el propio HotXLS podía abrir
- Al abrir se aceptan contraseñas RC4 de hasta 255 caracteres, y los archivos con contraseñas de 28 a 31 caracteres guardados por versiones anteriores siguen abriendo
- Un encabezado RC4 CryptoAPI malformado con una longitud excesiva se reporta como archivo corrupto en lugar de lanzar un error genérico
Versión 2.384.12
Corregido
- Los libros de trabajo con cifrado Agile que declaran SHA-256 ahora se descifran correctamente; los segmentos de datos siempre se descifraban con vectores de inicialización SHA-512, así que el libro de trabajo no abría ni con la contraseña correcta
- Los archivos Agile cuyo key data y password key encryptor usan algoritmos de hash distintos ya no se reportan como contraseña incorrecta
- Un spin count por encima del límite de 10,000,000 del formato se rechaza de inmediato en lugar de mantener la CPU ocupada durante horas
- Un password verifier truncado ya no lee más allá de su buffer, y la clave de integridad que escribe
SaveAsEncryptedAgileahora tiene la longitud que requiere el formato
Versión 2.384.11
Corregido
- Los libros de trabajo guardados con
SaveAsEncryptedahora abren en Excel. La clave de ECMA-376 Standard Encryption se derivaba sin su paso final y el tamaño del paquete se cifraba junto con los datos, así que Excel rechazaba la contraseña; los libros de trabajo que Excel 2007 cifró de esa manera también pueden abrirse ahora - Los libros de trabajo cifrados guardados por versiones anteriores de HotXLS siguen abriendo con la contraseña correcta
- Un encabezado de cifrado malformado con una longitud excesiva ya no provoca una access violation durante la apertura
Versión 2.384.10
Corregido
- Copiar y pegar fórmulas entre celdas, y ordenar con las fórmulas copiadas junto con los datos, ya no mueve las referencias absolutas:
$A$1se queda quieto,A$1mueve solo su columna y$A1solo su fila, igual que Excel - Los nombres de función que parecen direcciones de celda, como
LOG10(, ya no se desplazan como referencias al pegar una fórmula, así que la fórmula pegada ya no se convierte enLOG11(con su#NAME? - Las referencias calificadas con nombre de hoja, como
Sheet2!A1o'My Sheet'!B3, ahora se desplazan al pegar igual que las no calificadas - Pegar texto que empieza con
=o un apóstrofe en un libro de trabajo clásico lo conserva como texto; antes se convertía en fórmula o perdía su primer carácter
Versión 2.384.9
Corregido
- Los formatos numéricos de tiempo transcurrido como
[h],[mm]y[ss].00ahora se reconocen como formatos de tiempo en lugar de confundirse con nombres de colores; con la precisión tal como se muestra desactivada (FullPrecisionenFalse), una duración con formato[ss].00ya no se redondea como si fuera un número común de dos decimales, lo que antes convertía en cero los valores de unos pocos segundos - Los tokens de minuto separados de la hora o del segundo por un literal, como en
h:mmymm:ss, ahora se leen como minutos y no como meses cuando se analiza un formato numérico
Versión 2.384.8
Corregido
- Copiar texto, HTML o datos de hoja de cálculo al portapapeles de Windows ahora usa un propietario temporal válido, incluso en programas de consola y worker threads sin ventana de aplicación; los datos copiados siguen disponibles después de que ese propietario se destruye
- Una publicación fallida en el portapapeles ahora libera cada bloque de datos asignado que Windows no aceptó, incluidos los bloques de texto y HTML complementarios cuando falla la publicación de los datos de hoja de cálculo
Versión 2.384.7
Corregido
- Compilar la librería desde el código fuente con RAD Studio XE5 hasta RAD Studio 12 Athens fallaba después de que entraran el soporte de Free Pascal y el arreglo del día bisiesto de
DATE: esos compiladores parsean la verificación de versión de Free Pascal aunque luego se la salten, y rechazan el cast numérico que hay detrás del caso especialDATE(1900,2,29). Ambos puntos ahora usan formas que todos los compiladores soportados aceptan, así que todo el rango de RAD Studio vuelve a compilar
Versión 2.384.6
Corregido
- Copiar celdas que tienen un comentario en un libro de trabajo .xls clásico, ya sea dentro del mismo libro de trabajo, hacia otro libro de trabajo o al desplazar filas y columnas, conservaba el texto del comentario pero perdía sus runs con formato, así que cada copia mostraba toda la nota en una sola fuente; ahora los runs viajan con el texto, y entre libros de trabajo sus fuentes se agregan al libro de trabajo de destino
- Copiar una hoja completa con
Sheets.AddCopyen un libro de trabajo .xls clásico perdía los comentarios de las celdas sin valor ni formato; ahora esos comentarios también se copian - Los comentarios en libros de trabajo .xlsx se reabrían sin el nombre de la fuente, el tachado y el color de sus runs con formato, y los runs guardados nunca llevaban subrayado ni superíndice/subíndice; todo esto ahora sobrevive a un guardado y reapertura, incluidos los runs copiados de otro libro de trabajo con
CloneRangeTo
Versión 2.384.5
Corregido
- Los runs con formato en comentarios y cuadros de texto de libros de trabajo .xls clásicos ya no pierden sus fuentes al guardar. Una fuente usada únicamente por ese tipo de run podía eliminarse de la lista de fuentes guardada, la mayoría de las veces cuando HotXLS volvía a guardar un libro de trabajo que ya había guardado una vez, y el run mostraba entonces en Excel la fuente predeterminada o tomaba una fuente agregada mientras tanto; esas fuentes ahora se conservan, y los runs se renumeran junto con el resto de la lista de fuentes
TextRuns.FontIndexen comentarios y cuadros de texto sigue la numeración de fuentes del archivo, en la que el índice 4 nunca se usa y la quinta fuente es el índice 5; la reserva de paleta para los colores de fuente indexados ahora lee estos índices de la misma forma
Versión 2.384.4
Corregido
- El cambio de numeración de fuentes de 2.384.1 era en sí mismo el bug: los archivos .xls clásicos numeran las fuentes como lo hace Excel ([MS-XLS] §2.5.129), donde el índice 4 nunca se usa y la quinta fuente es el índice 5, pero 2.384.1 cambió a un conteo simple de base cero; los libros de trabajo guardados mostraban entonces en Excel cada fuente personalizada una posición antes (la primera caía en la fuente predeterminada), y los libros de trabajo creados en Excel se abrían con cada fuente personalizada desplazada una posición después. Guardar y abrir siguen otra vez la numeración de Excel, verificado contra libros de trabajo escritos y leídos por el propio Excel
- Las celdas de texto enriquecido conservan la fuente de cada run con formato en aperturas, guardados y copias de hojas entre libros de trabajo, incluidos los runs cuya fuente no usa directamente ninguna celda
- Los libros de trabajo guardados por 2.384.1 a 2.384.3 con cinco o más fuentes ya traen la numeración desplazada, que ni Excel ni HotXLS pueden distinguir de datos válidos; regenérelos desde su origen, o vuelva a aplicar las fuentes afectadas y guarde de nuevo
Versión 2.384.3
Corregido
- Las fechas entre 1900-01-01 y 1900-02-28 tenían un desfase de un día respecto a Excel en los dos motores de libros de trabajo, ya que el calendario 1900 de Excel considera un 1900-02-29 fantasma; la lectura y la escritura aplican la corrección documentada,
DATE(1900,2,29)regresa 1900-02-28 en vez de#VALUE!, y la tabla de cadenas compartidas sobrevive a caracteres NUL incrustados y a páginas de código de doble byte a través de los límites de registro sin desincronizarse - Las comparaciones se evalúan en cadena de izquierda a derecha como hace Excel, así que
=1<2<3ahora se lee como(1<2)<3y regresa FALSE como Excel (TRUE va por encima de cualquier número en una comparación), mientras que antes se agrupaba como1<(2<3)y regresaba TRUE; un operando en blanco equivale a 0 y también a una cadena vacía en las comparaciones; los criterios con comodines funcionan con "distinto de" enCOUNTIFySUMIFtal como ya lo hacían con "igual a"; el rango de suma deSUMIFy funciones hermanas se redimensiona desde su celda superior izquierda hasta la forma del rango de criterios en lugar de recortarse; yINDIRECTtoma en cuenta su segundo argumento (texto R1C1 absoluto) y rechaza cualquier dato sobrante después de la referencia YEARFRACcon base 0 aplica los ajustes de NASD para el cierre de febrero queDAYS360ya implementaba, de modo que los periodos que tocan el final de febrero se calculan correctamente- Un texto que contenga "endstream" dentro de una celda ya no trunca una página PDF durante la compresión de streams; el parche del token de páginas totales mantiene la longitud del stream consistente cuando se omite la compresión, los offsets de objetos mayores de 32 bits fallan de forma explícita en lugar de corromper la tabla de referencias cruzadas, y los JPEG en escala de grises o CMYK se etiquetan con su espacio de color real en lugar de
/DeviceRGB - Un libro de trabajo al que se le quitó o truncó el almacenamiento de cachés de tablas dinámicas se abre con las cachés afectadas marcadas como incompletas en vez de fallar por completo la carga, y vuelve a guardar esas cachés con el layout en línea heredado en lugar de marcar error
- Una tabla de cadenas compartidas cuyo número declarado de cadenas es mayor que el que entrega la cadena de registros ahora falla la apertura en lugar de resolver silenciosamente las celdas sobrantes como cadenas vacías
Versión 2.384.2
Corregido
- Al convertir un libro de trabajo .xls clásico a .xlsx se descartaban silenciosamente las celdas combinadas que quedaban a la izquierda de una combinación previa en una fila más baja; el barrido ya no reutiliza su variable de rango usado para el área de combinación
- Un comentario XML dentro de la lista de extensiones del libro se reemitía con marcadores
<!--duplicados en cada guardado, generando un archivo que Excel tiene que reparar; los nodos de comentario ahora sobreviven a la ida y vuelta byte a byte - Los registros de hoja no reconocidos capturados de un .xls abierto se perdían en todos los guardados posteriores aunque se conservaban para reproducirlos, y provocaban fugas de memoria en cada apertura; ahora persisten y se reproducen textualmente mediante el escritor de registros estándar
- Los nombres definidos de más de 255 caracteres y los comentarios de nombre de más de 65535 caracteres dañaban el entramado del registro NAME al guardar; ahora ambos se rechazan desde el inicio
- Un guardado abortado perdía los buffers de registros del libro y de la hoja cuando un desfase de cifrado se presentaba a mitad de escritura; el guardado libera sus buffers en todas las rutas de salida
- El escritor de parcheo in situ borraba el archivo original antes de renombrar el reemplazo, de modo que un renombrado fallido destruía el libro de trabajo; el intercambio ahora es un solo reemplazo atómico que conserva ambos archivos cuando falla
- Las referencias de celda del lector directo aplican los límites de 16384 columnas y 1048576 filas en vez de aceptar coordenadas desbordadas, los atributos enteros malformados caen a sus valores predeterminados en vez de abortar toda la lectura, y las fechas entre 1900-01-01 y 1900-02-28 se convierten tomando en cuenta el día bisiesto fantasma de Excel en ambas direcciones
- Los valores de atributo con tabulador, salto de línea o retorno de carro sobreviven a la ida y vuelta sin cambios en lugar de convertirse en espacios, y una entidad sin cerrar en el texto de un elemento ahora se rechaza igual que en la rama de atributos
- Las copias textuales de entradas ZIP de 4 GiB o más, que la ruta de copia no puede encuadrar correctamente, ahora se rechazan como hace el escritor de streaming en lugar de generar un archivo corrupto
- El corredor del corpus escribe sus resultados de forma atómica para que una ejecución interrumpida no pueda destruir la evidencia conservada, registra los timeouts de compilación en vez de crashear y tolera líneas de stage-trace malformadas; el verificador de LibreOffice escribe su evidencia de forma atómica y la sonda de reemplazo de archivos vuelve a recolectar la lista de productos antivirus
Versión 2.384.1
Corregido
- Todas las fuentes a partir de la quinta se escribían con un índice de registro una posición más allá del final de la lista de fuentes, así que Excel reparaba el libro de trabajo y las fuentes personalizadas regresaban como la predeterminada; tanto el guardado como la apertura usan ahora el índice basado en cero documentado, de modo que las fuentes personalizadas sobreviven a una ida y vuelta y los archivos creados en Excel conservan sus fuentes al abrirlos en HotXLS
- Evaluar
=0^-1o una base negativa con exponente fraccionario provocaba un crash del recálculo con una excepción de punto flotante en lugar de regresar#DIV/0!o#NUM! - Las reglas de formato condicional basadas en expresiones leídas de un .xls existente se guardaban de nuevo como un registro CF12 huérfano bajo el encabezado heredado simple, que Excel descarta; ahora conservan la forma de registro heredada y su formato de resaltado
- El operador de intersección de referencias y la intersección implícita de resultados de
OFFSETredimensionado y deINDIRECTde varias celdas iban tras el eje equivocado o rechazaban rangos válidos de una sola fila o columna, regresando la celda equivocada o#REF! - El lector de filas en streaming reportaba cada booleano de fórmula en caché como FALSE y cada error en caché como
#NULL!al leer archivos .xls clásicos - Los archivos .xls grandes cuyo contenedor de archivo compuesto rebasa los 109 sectores FAT residentes en el encabezado no se podían abrir con el lector de archivos compuestos autocontenido, porque la cadena de extensión DIFAT nunca se recorría
- Los estilos de tabla personalizados recargaban sus colores de relleno y fuente con los canales rojo y azul intercambiados, de modo que un estilo guardado regresaba con el color equivocado
- Las imágenes PNG malformadas incrustadas en un libro de trabajo podían provocar un crash del proceso mediante una escritura fuera de límites durante la incrustación de imágenes PDF o un escaneo de chunks de texto sin acotar; las PNG incrustadas ahora se validan por dimensiones y los chunks malformados se rechazan
- Las regiones EMF de varios rectángulos se renderizaban como su bounding box, las imágenes EMF sin extensión de viewport explícita se escalaban mal y el texto en superíndice se dibujaba debajo de la línea base en la salida de canvas, impresión y metarchivo
- Las reglas de formato condicional BIFF con prioridad automática cargaban todas prioridad 1, lo que Excel marca como reparación; las prioridades automáticas ahora son únicas por hoja, como sus equivalentes en XLSX
- El estilo de borde
xlSlantDashDotse escribía comoxlDashDotDoten la salida de bordes .xls clásicos - Un registro de encabezado de libro cifrado truncado lanzaba una excepción a través de
Openen lugar de regresar el código de error de contraseña, y varias rutas de error perdían memoria al procesar archivos de imagen o de libro malformados
Versión 2.384.0
Cambiado
- Las cachés de tablas dinámicas de XLS clásico se guardan como Excel las guarda: los registros de cada caché van a su propio stream de almacenamiento, mientras que el identificador de stream, el alcance de la caché y la definición del origen de hoja o rango con nombre se escriben una vez en los globales del libro; las cachés creadas por versiones anteriores de HotXLS conservan su layout en línea anterior, salvo que se habilite la actualización opcional del encuadre
- Los libros protegidos por contraseña cifran el stream de cada caché de tabla dinámica como su propio stream de registros que inicia de cero al principio del stream en lugar de continuar la posición de cifrado del stream del libro
Corregido
- Una tabla dinámica podía apuntar a la caché equivocada después de guardar un libro de trabajo que mezclaba cachés leídas de un archivo existente con cachés creadas por código; la referencia de vista a caché ahora sigue el orden real de guardado
- Todos los paquetes de HotXLS seguían cargando el recurso de versión 2.379.7, y reconstruir un paquete en C++Builder podía eliminar por completo el recurso de versión; todos los paquetes ahora cargan la versión actual
Versión 2.383.4
Corregido
- Las auditorías profundas de fórmulas ahora mantienen los resultados modificados disponibles para las fórmulas dependientes incluso cuando los cambios quedan dentro de la tolerancia de reporte, y la aplicación explícita refresca esos resultados no reportados
- La tolerancia relativa ahora se respeta para los resultados en caché de doble precisión en ambos motores de libros de trabajo, mientras que los resultados sin cambios evitan una comparación duplicada
Versión 2.383.3
Corregido
- Los guardados de libros de trabajo basados en archivo ahora preservan el error nativo de Windows cuando una salida XLSX, XLTX u ODS ya completada no puede reemplazar su destino, incluso cuando la limpieza o un callback de progreso cambian el estado de error del hilo
Versión 2.383.2
Corregido
- Las copias repetidas de bandas de reporte y de rangos reutilizan las búsquedas de sufijos de nombres definidos en lugar de reescanear cada copia anterior, preservando el primer nombre disponible, el alcance de hoja y la reutilización de nombres liberados por ediciones posteriores
Versión 2.383.1
Corregido
- La reconstrucción de dependencias de fórmulas evita escanear repetidamente las filas de fórmulas previas, lo que reduce el costo de las cadenas de cálculo grandes mientras conserva las referencias de salida de matriz, las dependencias entre hojas y el orden de búsqueda
Versión 2.383.0
Añadido
- Las plantillas de Excel sin macros pueden guardarse como XLTX mediante una selección explícita del formato de salida, usando archivos o streams y salida con buffer o en streaming
- La salida de plantilla preserva fórmulas, nombres definidos, áreas de impresión y metadatos de hoja sin cambiar el comportamiento de guardado predeterminado del libro de trabajo; los libros que contienen VBA se rechazan antes de escribir el destino
Versión 2.382.5
Corregido
- La configuración fonética conserva el índice de fuente predeterminado requerido, lo que evita que Excel rechace los libros de trabajo guardados cuando el índice es cero
- Las fórmulas dinámicas de área de impresión y las uniones de rangos calificados por hoja sobreviven a un round trip sin agregar un prefijo de hoja a una función ni truncar referencias dentro de una expresión
- Las partes del paquete generadas y preservadas comparten declaraciones de content-type únicas, y las propiedades personalizadas ya no colisionan con identificadores opacos de las relaciones raíz
Versión 2.382.4
Corregido
- Las referencias escalares a nombres definidos usan la intersección con la fila o columna actual, mientras que los argumentos de rango conservan sus rangos completos, evitando ciclos de dependencia falsos en plantillas de préstamos
- La aritmética de fórmulas que mezcla enteros y punto flotante conserva la precisión de punto flotante en lugar de truncarse a cuatro decimales
- El recálculo prioriza los precedentes de búsqueda disponibles antes de leer sus cachés, evitando recuentos de pagos desactualizados y resultados de búsqueda similares
Versión 2.382.3
Corregido
- AGGREGATE maneja errores no calculados y agregación anidada con configuraciones de selección independientes, conserva los cálculos de matriz y propaga los tipos de error originales
- Al guardar en XLS clásico se conservan las cachés de fórmulas existentes hasta el recálculo explícito, incluidas las raíces de fórmulas compartidas y de matriz; las fórmulas compartidas traducen las referencias relativas para sus celdas de destino
- Las referencias estructuradas admiten barras invertidas y puntos en los nombres de tabla, sintaxis anidada de fila actual y nombres de columna con escape, sin cambiar texto similar dentro de las cadenas de fórmulas
- El formato condicional de XLSX conserva los colores RGB, los flags de fuente explícitos, los estilos de subrayado y los nombres, tamaños y esquemas de fuente
- Los gráficos sin modificar conservan sus definiciones originales y los desplazamientos de anclaje distintos de cero, evitando cambios en los colores, posiciones y tamaños de las series
- Establecer los márgenes de página ya no escribe una orientación de página no especificada, y el XLS clásico conserva los márgenes de página importados ausentes en lugar de agregar valores predeterminados que cambien la ubicación de impresión
Versión 2.382.2
Corregido
- Los libros de trabajo ODS que contienen grandes rangos repetidos de filas en blanco se abren y guardan sin expandir cada alto de fila y el estilo heredado de celdas en blanco en objetos individuales
- La salida ODS conserva los altos de fila explícitos y las filas con estilo repetidas de forma compacta, incluidos los ajustes de una sola fila y los altos borrados; los rangos de alto de fila también sobreviven a la copia de hojas, a la inserción y eliminación de filas, al tiling y a la exportación a XLSX
Versión 2.382.1
Corregido
- Abrir y guardar libros de trabajo XLSX con configuraciones de columna de ancho completo ya no escanea repetidamente los metadatos de columna ni copia el XML de columna en constante crecimiento, lo que elimina los timeouts de round-trip en libros de trabajo de fechas y plantillas, manteniendo las configuraciones de columna
- Las definiciones de pivot de ODS conservan las declaraciones de espacio de nombres XML heredadas, incluidas las extensiones del productor, de modo que su XML guardado sigue estando bien formado
Versión 2.382.0
Corregido
- Al guardar un libro de trabajo XLS clásico, las celdas anidadas con
SUBTOTALahora se mantienen fuera de los resultados de subtotales que las envuelven, conservando los totales en caché originales en lugar de contar dos veces las filas de grupo - Los gráficos XLSX se cargan únicamente a través de la relación de dibujo a la que hace referencia cada hoja, de modo que una parte de dibujo convencional sin vincular ya no puede duplicar un gráfico durante un round-trip
- Las definiciones de tablas data-pilot de OpenDocument sobreviven a un guardado en ODS, incluidos sus rangos de origen, campos, rangos de destino, botones y atributos de extensión del productor
- Las opciones 0-7 de
AGGREGATEahora siguen las reglas de selección documentadas para filas ocultas, errores ySUBTOTAL/AGGREGATEanidados, tanto en la forma de referencia como en la de matriz
Versión 2.381.0
Añadido
- Slicers de tabla (Excel 2013+):
Worksheet.Slicers.Add(Table, ColumnName)crea una vista de slicer para cualquier columna de una tabla de principio a fin: la caché de slicer que la respalda, con el nombreSlicer_<column>, el nombre definido reservado#N/A, la extensiónslicerListde la hoja y un ancla de dibujo con compatibilidad de marcado que lleva un aviso de fallback para versiones anteriores de Excel se escriben de forma automática, y a la vista se le puede cambiar la posición, ponerle título y aplicar estilo medianteCaption,ColumnCount,StartItem,StyleName,RowHeightySetBounds - Modelo de round-trip para slicers: las vistas y las cachés de slicer se vuelven a interpretar al abrir (las cachés compartidas se reutilizan entre vistas, y al eliminar la última vista se elimina también su caché), las partes y anclas de slicer sin modificar se reproducen byte a byte, y la caché de una tabla mantiene válida su vinculación con la tabla incluso cuando el guardado renumera los identificadores de tabla
Corregido
- Las cachés de slicer escritas por versiones anteriores hacían referencia al identificador de tabla que el archivo traía al momento de abrirse; cuando el guardado renumeraba los identificadores de tabla en todo el libro de trabajo, un
tableIdobsoleto podía hacer que Excel entrara en modo de reparación. Ahora la vinculación sigue a la tabla durante la renumeración
Versión 2.380.0
Añadido
- Gráficos Waterfall y Treemap: los tipos de gráfico extendidos de Excel 2016 ya se pueden crear, guardar y reabrir. Se serializan como partes dedicadas de gráfico extendido, cada una con su propio tipo de contenido, su vinculación de datos a la hoja y un ancla de dibujo con compatibilidad de marcado que incluye un aviso de fallback para lectores más antiguos
- Los gráficos Treemap admiten categorías jerárquicas: cada nivel de categoría de la serie se escribe y se lee de vuelta como su propio nivel dentro de la dimensión de categorías, conservando las etiquetas de los niveles hoja y padre
Versión 2.379.4
Corregido
- Un contenedor XLS clásico dañado u hostil ya no corrompe la memoria al abrirse. El lector de archivos compuestos copiaba un sector completo al ministream aun cuando solo una parte le pertenecía, seguía la tabla de asignación del ministream más allá del final de ese flujo, aceptaba tamaños de sector que el formato no define y dimensionaba su tabla de asignación con base en un conteo sin verificar. Las cadenas de sectores y de minisectores ahora cuentan con protección contra ciclos, y un nombre de flujo que llena su campo sin terminador queda acotado
- Un registro de estilo que nombra un índice de formato de celda fuera de la tabla de formatos ya no escribe a través de ese índice. Los contadores de referencias de las listas compartidas de formatos y de llaves únicamente revisaban el límite inferior, así que un índice de 12 bits proveniente del archivo podía llegar más allá del arreglo
- Un encabezado local de archivo escrito con información extendida ZIP64 ya no desborda su búfer: el tamaño de encabezado declarado ahora toma en cuenta el campo extra de 28 bytes que el escritor agrega. Los desfases de entradas y las posiciones de flujo se registran como valores de 64 bits, una entrada ZIP64 se lee utilizando la longitud de su campo extra en lugar del valor centinela, y una entrada mayor de 4 GiB se rechaza en lugar de registrarse como su residuo
- Un nombre de entrada ZIP que contiene un separador de Windows se normaliza. Una sola barra invertida nunca se convertía en diagonal, de modo que
..\..\namepasaba la verificación de cruce de directorios, que divide por diagonales - Un rango de máscara sin límite superior, como
[a-, ya no lee más allá del final de la máscara, y construir una máscara que inicia con un conjunto de caracteres ya no fuga un conjunto por cada máscara. Ambos casos son alcanzables desde los criterios de COUNTIF y SUMIF - La búsqueda de celda completa con comodines ahora requiere que el patrón coincida con toda la celda, en línea con el comportamiento documentado y con la comparación de celda completa sin comodines.
FindTextcon el patrónabcantes también coincidía con una celda que contuvieraabcdef - La precisión según se muestra ya no redondea celdas cuyo formato de número carece de marcador de posición de dígitos. Una celda con formato
Generalpor nombre, como texto con@o con un formato de solo literales se redondeaba a un número entero - La tabla de cadenas compartidas ya no reporta más cadenas únicas de las que escribe, ya no adjunta los fragmentos de texto enriquecido de una cadena eliminada a la cadena que reutilice su ranura, y ya no emite un registro de continuación que no contiene más que su byte de opciones cuando una cadena se desborda únicamente por su cola de formato
- La importación de RTF deja de duplicar los caracteres que no son ASCII. Una secuencia de escape
\\uNva seguida de caracteres de respaldo escritos como\\'hh, que la lógica de omisión no reconocía, así que cada uno también se emitía como texto. Los grupos omitidos ahora respetan las cargas útiles en bruto de\binN, y una tabla más ancha o más alta que la cuadrícula de la hoja de cálculo se detiene en el borde en lugar de generar una excepción - Una referencia numérica fuera del rango de caracteres que define XML se rechaza al leer, en lugar de producir un NUL incrustado, un suplente aislado o un punto de código ajustado. La tabulación, el salto de línea y el retorno de carro sobreviven a un ciclo de guardado y reapertura de OPC como referencias de caracteres en lugar de normalizarse a espacios
- La importación de CSV conserva el valor de
SkipRowsentre análisis; se decrementaba en su propio lugar, de modo que la segunda lectura de un archivo con el mismo cargador no omitía nada - Una parte
xl/tables/se reconoce al decidir qué partes se preservan; la comparación de prefijo se quedaba un carácter corta y nunca coincidía
Versión 2.379.3
Corregido
- La importación de HTML decodifica las referencias de caracteres decimales.
éy todas las demás formas&#NNN;producían un carácter NUL en lugar del propio carácter, porque la conversión escribía su resultado y su posición de error en la misma variable y el código de éxito sobrescribía el valor. Las referencias hexadecimales no tenían problema; ambas formas ahora rechazan los valores fuera del rango representable en lugar de emitir un carácter suelto - La exportación de HTML preserva la subdirección completa de un hipervínculo interno al construir su destino de ancla. Una subdirección de más de 255 caracteres se truncaba, de modo que el ancla generada ya no coincidía con el vínculo
Versión 2.379.2
Corregido
- Un GIF insertado mediante
AddPictureoImages.AddFromFileahora toma su tamaño del descriptor de pantalla lógica. Todos los GIF antes reportaban 100 por 100 puntos sin importar sus dimensiones reales, de modo que la imagen llegaba estirada o aplastada - El dimensionamiento de BMP lee el encabezado de mapa de bits que el archivo realmente declara: se entiende una
BITMAPCOREHEADERcon sus dimensiones de 16 bits en lugar de leerse como campos de 32 bits, y un BMP de arriba hacia abajo con altura negativa ya no produce una altura de imagen negativa - El dimensionamiento de JPEG acepta todos los marcadores de fotograma SOFn, y no únicamente línea base, secuencial extendido y progresivo. Los JPEG sin pérdida, con codificación aritmética y jerárquicos antes caían en el valor predeterminado de 100 por 100
Versión 2.379.1
Corregido
- Las imágenes WMF ahora se decodifican como escenas vectoriales para SVG, PDF y la salida paginada. Desde la versión 2.363.0 el decodificador leía cada registro como un tamaño de 16 bits seguido del código de función, pero un registro de metarchivo comienza con un tamaño de 32 bits, de modo que todo WMF escrito por Windows u Office se detenía en su primer registro y la imagen recurría a un marcador de posición de trama. Los registros ahora se enmarcan conforme a
[MS-WMF] §2.3, y los parámetros de pluma, pincel, fuente, texto, forma y polígono se leen en sus desfases especificados META_STRETCHDIBesperaba el DIB antes del rectángulo de destino y asumía un encabezado de mapa de bits de 40 bytes; el rectángulo ahora precede al DIB como lo especifica el formato, se respetanBITMAPV4HEADER/BITMAPV5HEADERy las tablas de colores al localizar los bits de píxel, y el registro aporta un comando de imagen enXDest,YDestcon tamañoDestWidthporDestHeightMETA_EXTTEXTOUTomite su rectángulo opcional cuando se estableceETO_OPAQUEoETO_CLIPPED, de modo que el texto dibujado con un fondo opaco ya no se lee desde un desfase equivocado- Las imágenes de metarchivo incrustadas en un renderizado de página leen sus píxeles en el desfase que indica el encabezado del mapa de bits y no en 40 bytes fijos, de modo que una imagen con
BITMAPV4HEADERoBITMAPV5HEADERya no se renderiza como ruido de color desplazado
Versión 2.379.0
Añadido
TGridToXLSahora forma parte del paquete de tiempo de ejecución de Free Pascal, de modo que unaTDBGridde Lazarus se exporta tal como lo hace bajo la VCL: las columnas explícitas conservan sus títulos, fuentes, colores, alineación, anchos y visibilidad, una cuadrícula sin columnas explícitas exporta una columna por campo del dataset, y el resultado se guarda como XLS, XLSX, HTML o RTF por medio de la misma llamadaSaveAs
Versión 2.378.4
Corregido
- TEXTBEFORE y TEXTAFTER leían su conteo de argumentos de una variable local que nunca se asignaba, de modo que los argumentos opcionales de instancia, modo de coincidencia, final de coincidencia y valor si no se encuentra podían ignorarse, o una llamada válida podía rechazarse con #VALUE!, dependiendo de lo que quedara en la pila; el conteo ahora proviene de la propia llamada
- Un OFFSET redimensionado, es decir, uno con un alto o un ancho distintos de 1, al evaluarse en una sola celda comparaba la celda de la fórmula con un ancla que todavía no se había calculado, de modo que la intersección implícita podía regresar #REF! o la celda equivocada; el ancla desplazada ahora se calcula antes de la prueba de intersección
Versión 2.378.3
Corregido
- Bajo Free Pascal, buscar coincidencias o reemplazar una cadena vacía generaba el error de expresión regular, de modo que una expresión de informe como
regexreplace(Code,"[^0-9]","")fallaba conREPORT_EXPRESSION_INVALID_REGEXcada vez que el campo estaba en blanco. El backend de FPC ahora responde como respondeTRegExbajo Delphi: un patrón que acepta una cadena vacía, como^$o.*, encuentra la coincidencia y produce su texto de reemplazo, mientras que[0-9]+o\s+reportan que no hay coincidencia
Versión 2.378.0
Añadido
- HotXLS ahora compila con Free Pascal 3.2.2 y Lazarus/LCL en Windows, Win32 y Win64. Las API de libros de trabajo XLS y XLSX, las fórmulas, los estilos, el lector y el escritor directos, la exportación de datasets y las utilidades de renderizado funcionan todas desde código FPC con la semántica de cadenas Unicode de Delphi; el tema Soporte de Free Pascal y Lazarus cubre la configuración de la aplicación y las diferencias entre backends
- El paquete de tiempo de ejecución
Lib/FPC/HotXLSLaz.lpkse abre en Lazarus o se compila por arquitectura desde la línea de comandos mediantebuild-FPC-Lib.cmd, y las suites de prueba de humo de Lazarus enTests/Lazaruscubren ciclos de guardado y reapertura de libros de trabajo, compresión, cifrado, flujos COM, gráficos, lectura de texto, expresiones regulares, exportación de datasets y expresiones de informe - Las compilaciones FPC usan backends de Pascal incluidos para ZIP, flujos de compresión y AES, de modo que los archivos XLSX, incluidos los protegidos con contraseña, no necesitan ni una DLL de zlib ni los archivos de objeto precompilados que Delphi enlaza; PNG preserva su canal alfa, el dibujo y la reproducción de EMF pasan por metarchivos de Windows, y la exportación TIFF multipágina usa el runtime de GDI+
Versión 2.377.2
Añadido
- Una PivotCache de XLS clásico escrita por HotXLS ahora lleva los registros contra los que el formato define el encabezado de la caché. El identificador de flujo y el tipo de datos de origen del encabezado nombraban antes un SXStreamID y un SXVS que nunca se escribían, de modo que ningún lector podía verificar ninguno de los dos; ahora ambos registros se escriben y ambos campos del encabezado se toman de los mismos valores, de manera que coinciden por construcción
- Los subflujos de la caché también llevan SXDBEx, el registro que sigue al encabezado de la caché en cada caché que escribe Excel. Registra cuándo se actualizó la caché por última vez, de modo que
TXLSPivotCache.RefreshedDateahora sobrevive a un guardado y reapertura de XLS clásico igual que ya lo hacía en XLSX TXLSPivotCache.StreamIdyTXLSPivotCache.SourceDataTypeexponen los dos valores: se leen de un archivo que los declara y se escriben en el par de registros más el encabezado de la caché. Una caché construida conAddPivotTablereporta el flujo 0 y un origen de rango de hoja de cálculo
Cambiado
- La reescritura opcional de la estructuración antigua de cachés (
UpgradeLegacyPivotCacheFraming) ahora también produce estos tres registros, de modo que una caché actualizada no solo queda correctamente estructurada, sino completa al igual que las recién escritas. Una caché que ya llevaba un SXStreamID, un SXVS o un SXDBEx conserva lo que llevaba; una cuyo SXDBEx declare registros de fórmula que HotXLS no escribe continúa con la reproducción en bruto - La lectura no se ve afectada: los archivos escritos antes de esta versión se cargan exactamente igual que antes, y los registros de caché para los que HotXLS todavía no tiene modelo —entre ellos el DConRef o el DConName que nombran un rango de origen— siguen preservándose byte a byte en un ciclo de guardado y reapertura
Versión 2.377.1
Añadido
- Un libro de trabajo ahora puede pedir que sus subflujos de PivotCache antiguos se reescriban al guardar.
TXLSWorkbook.UpgradeLegacyPivotCacheFramingestá desactivado de manera predeterminada; al activarlo, un archivo XLS clásico cuyas cachés fueron escritas por HotXLS antes de v2.377.0 se guarda con esas cachés reemitidas a través de los escritores corregidos de SXDB / SXFDB / SXDBB, de modo que la racha de correcciones de cachés de tabla dinámica de v2.376.1 a v2.376.7 también alcanza a los archivos ya existentes y no únicamente a la salida nueva - La actualización se aplica únicamente donde se puede demostrar que no cuesta nada. Una caché leída de un archivo se reemite solo cuando todo su subflujo contenía registros que HotXLS modela y su estructuración es una de las que el propio HotXLS escribió mal; cualquier otra cosa —todas las cachés que produjo Excel y cualquier caché que lleve un registro como SXDBEx que HotXLS conserva únicamente como bytes opacos— sigue reproduciendo sus propios bytes con la opción activada.
TXLSPivotCache.CanUpgradeFramingreporta el veredicto de una caché, yRawFramingIsLegacy/RawModelIsCompletereportan las dos mitades en las que se apoya - Una caché actualizada se escribe donde estaba su subflujo en lugar de moverse adelante de las demás, de modo que una vista de tabla dinámica sigue resolviéndose a la caché que nombraba antes del guardado
Corregido
- Una PivotCache de XLS clásico leída de un archivo y luego entregada al escritor con su indicador de reproducción en bruto despejado producía dos subflujos de caché, el del modelo y el del archivo. Ahora produce uno
Versión 2.377.0
Añadido
- Las hojas de cálculo de XLS clásico aceptan objetos de gráfico incrustados:
AddChartObjectsobre una hoja de cálculo ancla un marco de gráfico en la cuadrícula de la hoja (forma de control hospedado OBJ de tipo 5 más el ancla de cliente MSODRAWING), construye el subflujo del gráfico por medio del constructor de gráficos compartido y viaja en la lista de registros de la hoja, de modo que la distribución del archivo coincide con lo que el lector vuelve a adjuntar al abrir; un ciclo de guardado y reapertura regresa el marco con su modelo de gráfico —series, título y referencias de rango intactos
Corregido
- Los registros SeriesText decodifican su carga útil de cadena con el ancho correcto: el lector pasaba el conteo de caracteres donde se esperaba un conteo de bytes, de modo que las leyendas de 16 bits y las etiquetas de serie regresaban truncadas a la mitad de su longitud (un título de cinco caracteres se leía como dos)
Versión 2.376.7
Corregido
- Las filas en caché que están detrás de una tabla dinámica en un archivo XLS clásico se escriben como las describe [MS-XLS] 2.4.276: un registro por fila de datos en caché, con un índice por campo de caché de un solo byte de ancho, o dos bytes para un campo con más de 255 valores distintos. HotXLS antes escribía un esquema propio, apretando cada campo en los bits justos para contar sus valores y empaquetando muchas filas en un registro, que ningún otro programa podía decodificar y que contradecía el indicador de más de 255 valores que la definición del campo ya llevaba
- Excel ahora puede leer los valores que contiene una PivotCache de HotXLS en lugar de tener que reconstruirlos desde el rango de origen al abrir el libro de trabajo, que era de lo que dependía un libro cuyos datos de origen se hubieran movido, cambiado o eliminado mientras tanto
- Las filas en caché también se vuelven a leer. HotXLS antes ignoraba el registro por completo, de modo que una caché cargada de un archivo regresaba con cada fila apuntando al primer valor de cada campo, y todo lo calculado a partir de esa caché seguía esos valores equivocados. Esto aplica lo mismo a un libro de trabajo escrito por Excel que a uno escrito por HotXLS
- Un campo de caché sin valores no aporta nada a una fila en caché, y un campo con más de 255 valores se almacena y se lee con el tamaño más ancho que exige el formato
- Los libros de trabajo escritos por HotXLS v2.376.6 y anteriores siguen cargando con sus filas en caché intactas
Versión 2.376.6
Corregido
- El registro de encabezado de la PivotCache en un archivo XLS clásico se distribuye como lo describe [MS-XLS] 2.4.275. El conteo de registros es allí un campo de cuatro bytes y HotXLS lo escribía en dos, de modo que cada campo situado detrás salía una posición antes y el registro quedaba cuatro bytes más largo: el número de campos de caché terminaba dentro del conteo de registros, la palabra de indicadores caía sobre el identificador de flujo y el conteo de campos caía sobre la longitud del nombre de quien actualizó la caché por última vez, prometiendo un nombre que el registro era demasiado corto para contener
- Los indicadores del encabezado ahora dicen lo que la caché realmente es: si sus registros se almacenan en el archivo, si se actualiza al abrir el libro de trabajo, si se permite la actualización y si la consulta de actualización corre en segundo plano. Esas cuatro opciones ya aparecían en la salida XLSX y ahora viajan también con un archivo XLS clásico, junto con el nombre de quien actualizó la caché por última vez
- El tipo de datos de origen del encabezado se escribe como un rango de hoja de cálculo en lugar de dejarse en un valor que el formato no define, y los conteos de campos y el conteo de registros usados llevan los totales reales de la caché
- El nombre de quien actualizó se recorta a los 255 caracteres que el registro permite, y una caché sin nombre no escribe ninguno en lugar de un marcador de posición vacío
- Los libros de trabajo escritos por HotXLS v2.376.5 y anteriores siguen cargando y siguen entregando su conteo de registros de caché. Nunca se almacenó nada más en el encabezado antiguo —el escritor rellenaba cada campo detrás del conteo de registros con valores fijos que nunca leía de la caché—, de modo que los indicadores y el nombre de quien actualizó de tal archivo regresan como valores predeterminados y no como valores recuperados
Versión 2.376.5
Corregido
- Los nombres de campos de la PivotCache sobreviven a un guardado y reapertura de un archivo XLS clásico. La longitud del nombre se leía del lugar equivocado de la definición de campo de caché —un índice que siempre vale $FFFF—, de modo que el nombre se descartaba cada vez y todo campo de caché regresaba sin nombre
- El registro de definición de campo de caché se distribuye como lo describe [MS-XLS] 2.4.283: grbit, ifdbParent, ifdbBase, citmUnq, csxoper, cisxoper, catm y después el nombre del campo. HotXLS antes escribía tres campos que el registro no tiene —un índice de elemento de subtipo, un formato de número y un segundo conteo de elementos— y ponía $FFFF en índices que la especificación acota por el número de campos de la caché
- La palabra de indicadores del registro ahora describe el campo al que pertenece: si el campo contiene elementos de caché, si esos elementos incluyen números, fechas o texto, si se pueden calcular un mínimo y un máximo, si algún elemento no es una fecha y si hay más de 255. El conteo de elementos del registro ahora coincide con el número de registros de elementos de caché que realmente le siguen
- Los nombres de campos de caché más largos que los 255 caracteres que el registro permite se recortan a 255 en lugar de escribirse con su longitud completa
- Los libros de trabajo escritos por HotXLS v2.376.4 y anteriores siguen cargando con sus nombres de campos de caché intactos —el nombre ocupaba la misma posición en la distribución antigua, de modo que nada que llevara un nombre lo pierde
Versión 2.376.4
Corregido
- Las cachés de tabla dinámica en archivos XLS clásicos ahora usan los números de registro que les da [MS-XLS]. Siete registros del subflujo de caché salían antes con el número de otro registro: la definición de campo de caché como $00C8 (SXDBB), el tipo de campo como $00FB (SxFormat), los índices de elemento por registro como $00C5 (SXDI) y los valores de caché numéricos, booleanos, de error, de fecha y en blanco como $00CE, $00CF, $00D0, $00CC y $00CB (SXDtr, SxNil, SXTbl, SXInt, SxErr). Ahora son SXFDB $00C7, SXFDBType $01BB, SXDBB $00C8, SXNum $00C9, SxBool $00CA, SxErr $00CB, SXDtr $00CE y SxNil $00CF, de modo que Excel puede leer una caché de tabla dinámica escrita por HotXLS y HotXLS puede leer una escrita por Excel
- Los valores en blanco de un campo de caché de tabla dinámica sobreviven a un ciclo de guardado y reapertura. El escritor siempre los emitía, pero el lector no tenía ningún caso para ellos, de modo que cada blanco se perdía al cargar y cada valor posterior de ese campo se desplazaba una posición, dejando las referencias de elementos de la tabla dinámica apuntando a valores equivocados
- Los libros de trabajo escritos por HotXLS v2.376.3 y anteriores siguen cargando con sus valores de caché intactos. Cada subflujo de caché de tabla dinámica se lee con la numeración con la que fue escrito, decidida a partir de su propio registro de definición de campo, y una caché leída de un archivo existente se vuelve a escribir con los números con los que llegó, de modo que reabrir y guardar un libro antiguo no cambia sus bytes sin avisar
Versión 2.376.3
Corregido
- Las vistas de tabla dinámica en archivos XLS clásicos ahora escriben su registro de extensión SXEx con el número que le da [MS-XLS], $00F1; el escritor venía usando $00C6, que es SXDB, el registro de encabezado de la caché de tabla dinámica —Excel, al buscar la extensión de la vista, no encontraba nada, y un registro que decía ser un encabezado de caché quedaba a media hoja de cálculo—, de modo que las propiedades de vista que transporta SXEx se perdían incluso después de la corrección del diseño de campos de v2.376.1
- Los libros de trabajo escritos por HotXLS v2.376.2 y anteriores siguen abriendo con sus vistas de tabla dinámica intactas: dentro de una hoja de cálculo el antiguo $00C6 se sigue aceptando como la extensión de vista que se pretendía que fuera, y dentro de un subflujo de caché de tabla dinámica $00C6 se sigue leyendo como encabezado de caché, de modo que nada que antes cargaba deja de cargar
Versión 2.376.2
Corregido
- Las hojas de gráficos 3-D de XLS clásico creadas sin escena explícita ahora llevan los indicadores que se les documentan: la palabra de indicadores Chart3d predeterminada establecía un bit que el registro reserva en lugar del bit de escalado automático, de modo que un gráfico 3-D predeterminado se reabría con la agrupación en clúster activada pero el escalado automático desactivado y nunca coincidía con la escena que decía escribir; los gráficos que pasan una escena 3-D explícita no se veían afectados y sus bytes no cambian
Versión 2.376.1
Corregido
- Las vistas de tabla dinámica escriben un registro SXEx cuyos campos están donde los lectores los esperan: el cuerpo fijo de 24 bytes estaba desplazado dos campos, de modo que anunciaba dos registros de formato que nunca llegaban y dejaba cada longitud de cadena opcional en cero, algo que [MS-XLS] 2.4.282 prohíbe —esas longitudes deben ser o el marcador de ausencia o una longitud real de 1 a 255; el cuerpo ahora inicia en el campo correcto y marca cada cadena opcional como ausente, de modo que Excel lee las propiedades de vista en lugar de un bloque ilegible
- La longitud del registro SXEx se deriva de los bytes realmente escritos y no de una constante fijada en el código, de modo que el tamaño declarado y la carga útil ya no pueden divergir como lo hacían antes de v2.376.0
Versión 2.376.0
Añadido
- Las hojas de gráficos de XLS clásico pueden vincularse a una vista de tabla dinámica: una nueva sobrecarga de
AddChartSheetacepta el nombre de la vista de tabla dinámica de origen y el indicador de ocultar títulos de campo, que se escriben en los registros SXViewLink ($0858, [MS-XLS] 2.4.316) y PivotChartBits ($0859, 2.4.196) de los globales del gráfico antes de Units conforme al ABNF del subflujo de hoja de gráfico; la inspección de gráficos decodifica ambos registros —incluidas las codificaciones de cadena de 8 y 16 bits— de vuelta al modelo tipado (marcador de gráfico dinámico, nombre de la vista de origen, indicador de títulos) y a la instantánea semántica canónica, mientras que los gráficos sin los registros de vínculo quedan sin marcar
Corregido
- Las vistas de tabla dinámica escriben un registro SXEx con el tamaño correcto: el emisor declaraba un cuerpo de 24 bytes pero escribía 26, de modo que los dos bytes sobrantes caían donde se esperaba el encabezado del siguiente registro y todos los registros posteriores a la vista (incluido el EOF de la hoja de cálculo y cualquier subflujo de hoja de gráfico que siguiera a una hoja con tabla dinámica) se interpretaban mal, dejando que los libros de trabajo que combinan una tabla dinámica con una hoja de gráfico se reabrieran con el gráfico desaparecido
- Los nombres para mostrar de las líneas de tendencia en gráficos clásicos decodifican correctamente las cargas útiles de cadena de 8 bits; el anterior lector de caracteres anchos regresaba un nombre vacío para los registros que Excel escribe con caracteres de 8 bits
Versión 2.375.0
Añadido
- Las series de gráficos de XLS clásico aceptan rellenos con colores de tema: el estilo por serie ahora lleva un índice de color de tema y un matiz que se escriben en un registro GelFrame después de AreaFormat conforme a [MS-XLS] 2.4.131, usando la extensión de color de tema de OfficeArt (fillType, fillColor con el RGB aplanado, fillColorExt índice de esquema, carga útil de matiz fillColorExtMod); cuando no se proporciona un color de relleno explícito, el color aplanado se resuelve a partir del tema de Office predeterminado con el matiz aplicado, y la inspección de gráficos decodifica la intención de tema de vuelta al modelo tipado y a la instantánea semántica canónica
Corregido
- La compilación multiversión completa de la biblioteca vuelve a estar en verde para todos los compiladores admitidos: las conversiones y llamadas que únicamente aceptan los compiladores más recientes (una conversión de tipo Extended de valores Int64, una conversión forzada a Double de un entero, un argumento procedimental nil en la resolución de sobrecargas, el acceso a TPicture.LoadFromStream donde está protegido y el tipo de token GdiplusStartup, que cambió entre generaciones de la VCL) se hicieron seguros por versión desde XE5 hasta la versión actual
Versión 2.374.0
Añadido
- Las escenas de gráficos 3-D son configurables e inspeccionables: una nueva sobrecarga de
AddChartSheetacepta rotación, elevación, distancia de perspectiva, altura, profundidad, hueco y los indicadores de clúster, escalado automático, escalado en ángulo recto y paredes bidimensionales, que se escriben en el registro Chart3d conforme a [MS-XLS] 2.4.46, y la inspección de gráficos decodifica la escena de vuelta al modelo tipado (Scene3D) al leer; los gráficos que conservan las sobrecargas anteriores siguen emitiendo los valores predeterminados que coinciden con Excel byte a byte
Versión 2.373.0
Añadido
- Las series de gráficos de XLS clásico aceptan anulaciones de estilo por serie: el color y el estilo de línea, el color de relleno y la forma, los colores y el tamaño del marcador se escriben en el bloque de formato de la serie con el indicador automático despejado, de modo que Excel respeta los valores proporcionados, y la inspección de gráficos decodifica los registros LineFormat, AreaFormat y MarkerFormat de vuelta al modelo tipado y a la instantánea semántica canónica
Versión 2.372.0
Añadido
- Las series de gráficos de XLS clásico aceptan referencias con nombre y externas para categorías y valores: el texto que no es un rango A1 simple se compila por medio del motor de fórmulas del libro de trabajo, y el registro BRAI transporta un elemento de área de gráfico que contiene la fórmula compilada, de modo que la pasada de guardado la vuelve a serializar con los índices actuales del almacén de nombres definidos; la inspección de gráficos descompila la referencia de vuelta a su nombre al leer, mientras que el texto que no se puede resolver conserva el BRAI de marcador de posición vacío
Versión 2.371.0
Añadido
- Las series de gráficos de XLS clásico pueden vincularse al grupo de ejes secundario: marcar una serie en
AddChartSheeteleva AXESUSED a dos, emite un segundo bloque AxisParent con sus propios ejes de categorías y de valores, además de su propio grupo de gráfico, conforme al ABNF del subflujo de hoja de gráfico de [MS-XLS], y enruta la serie a través de SerToCrt al segundo grupo; la inspección de gráficos decodifica al leer el enlace de grupo de gráfico por serie
Versión 2.370.0
Añadido
- Las series de gráficos de XLS clásico aceptan etiquetas de datos:
AddChartSheetemite un registro AttachedLabel con los indicadores de mostrar valor, mostrar porcentaje, mostrar nombre de categoría, mostrar etiqueta y porcentaje, mostrar tamaño de burbuja y mostrar nombre de serie (distribución de bits de [MS-XLS] 2.4.5), y la inspección de gráficos decodifica tanto AttachedLabel como el registro de etiquetas extendidas DataLabExtContents, incluido su separador, de vuelta al modelo tipado y a la instantánea semántica canónica
Versión 2.369.0
Añadido
- La inspección de gráficos de XLS clásico ahora decodifica la estructura de grupos de ejes: AXESUSED expone el conteo declarado de grupos de ejes y cada eje registra si pertenece al grupo AxisParent primario o secundario, con el índice de grupo llevado a la instantánea semántica canónica
Versión 2.368.0
Añadido
- Las líneas de tendencia y las barras de error de los gráficos BIFF ahora se decodifican al modelo de gráfico tipado al leer: cada bloque Series expone sus registros Trendline con el tipo de regresión, el orden o el período, la intersección (incluida la automática), los indicadores de visualización de ecuación y de R cuadrado, los períodos de pronóstico hacia adelante y hacia atrás y el nombre para mostrar, además de sus registros SerErrBar con el lado de la dirección, el tipo de valor, los topes finales y la magnitud
- La instantánea semántica clásica mapea las líneas de tendencia y las barras de error a los contenedores canónicos compartidos en lugar de generar una excepción, de modo que los libros de trabajo con series de gráficos avanzadas se comparan de manera determinista y los cambios en las líneas de tendencia alteran el flujo canónico
Versión 2.367.0
Añadido
- RecalcAndVerifyEx ejecuta una auditoría de cálculo a profundidad en ambos motores de libros de trabajo: cada fórmula se evalúa una vez a través del grafo de dependencias hacia una capa superpuesta de resultados aislada, de modo que las celdas dependientes leen de esta pasada y no de cachés obsoletas, las fallas de evaluación se clasifican en categorías tipadas (argumentos no admitidos, referencias circulares, referencias externas denegadas o faltantes, tablas de datos omitidas, cancelación, fallas internas) con códigos de resultado, y cada falla lleva una pila de llamadas acotada
- La auditoría respeta un presupuesto de problemas con un orden estable de hoja, fila, columna y categoría, un receptor de progreso que puede cancelar en los límites de los nodos, tolerancias numéricas configurables y un ApplyResults opcional que aplica los valores recalculados de manera atómica tras una pasada completamente exitosa sobre una estructura de libro de trabajo sin cambios; el comportamiento predeterminado sigue siendo estrictamente de solo lectura
Cambiado
- Los puntos de entrada existentes RecalcAndVerify y CalculateAndVerify conservan su semántica anterior de comparación superficial como contenedores de compatibilidad (shims), al tiempo que comparten los nuevos campos de informe
Versión 2.366.0
Cambiado
- La exportación PDF ahora arma los documentos por medio de un escritor de objetos secuencial que transmite cada objeto directamente al destino, de modo que no se construye ninguna copia intermedia del documento completo; los documentos sin firmar se transmiten directamente a flujos de solo avance, mientras que los documentos firmados se arman en una cola de spool acotada que recibe los parches de contenido de ByteRange y de la firma antes de una única copia hacia adelante
- Las cargas útiles de los adjuntos PDF se copian de sus spools de proveedor al documento final en fragmentos de tamaño fijo y hacen referencia a su tamaño de flujo por medio de un objeto de longitud indirecta, manteniendo la memoria máxima constante para adjuntos de varios cientos de megabytes
Corregido
- Los resúmenes de firma ahora se calculan de manera incremental sobre los dos rangos de bytes cubiertos del documento armado, en lugar de hacerlo a través de una copia completa del documento, y los campos reservados de la firma se localizan a partir del propio objeto de firma y no rastreando los bytes armados
Versión 2.365.0
Añadido
- El texto visible de la firma PDF ahora se renderiza a través de la canalización de fuentes Unicode incrustada, con alineación izquierda, centrada o derecha, y tamaño, color y estilo en negrita o cursiva configurables, cubriendo cualquier sistema de escritura en los nombres de los firmantes, los motivos y las ubicaciones
- Las imágenes de apariencia de la firma PDF aceptan cargas útiles JPEG con dimensiones deducidas del marcador de fotograma, mientras que las imágenes sobredimensionadas o dañadas fallan de manera determinista antes de calcular el resumen
- Los adjuntos PDF exponen una política explícita de nombres duplicados, mandan a un archivo temporal las cargas útiles grandes del proveedor por encima de un umbral de bytes configurable y rechazan los nombres hostiles en el nivel de hoja que contengan separadores de ruta o caracteres de control
Cambiado
- Los árboles de nombres de adjuntos PDF ahora se ordenan por los bytes del nombre codificado conforme a ISO 32000-1 7.9.6, y la colección de adjuntos permanece congelada mientras los proveedores corren, de modo que las adiciones reentrantes fallan de manera atómica
Versión 2.364.0
Añadido
- Las imágenes EMF y WMF incrustadas reproducen corchetes de trazado con pasadas de relleno, de trazo y combinadas de trazo y relleno, rectángulos redondeados, arcos, cuerdas, sectores tipo pastel y arcos angulares mediante una conversión exacta de arco a Bézier, rellenos y marcos de región resueltos a partir de rectángulos RGNDATA acotados, y plumas extendidas geométricas o cosméticas, todo ello aplanado en la escena compartida inmutable con los mismos límites de falla segura frente a recortes, escapes y registros privados
Versión 2.363.0
Añadido
- Las imágenes EMF y WMF incrustadas ahora se reproducen a través de una lista permitida de registros segura ampliada: pilas de estado de contexto de dispositivo con guardado y restauración, mapeo de ventana y de ventana gráfica con transformaciones del mundo, tablas de objetos de pluma y pincel incluidos los objetos de stock, rectángulos, elipses, cadenas de líneas, polígonos, polilíneas y curvas Bézier con estilos de guiones, bloques de texto acotados con fuentes, colores y alineación, e imágenes stretch-DIB restringidas recodificadas como PNG, mientras que los registros de estado desconocidos siguen fallando de manera segura hacia el respaldo de trama acotado en lugar de invocar la reproducción de metarchivos de la plataforma
Corregido
- Las imágenes WMF ahora analizan la distribución estándar de encabezado de registro de dos bytes, de modo que se decodifican los metarchivos colocables y estándar reales y no únicamente los elementos de prueba sintéticos
Versión 2.362.0
Añadido
- El XLS clásico y el XLSX ahora preservan el estado de arreglo de fórmulas de tabla, los modos IME tipados de validación de datos, las sugerencias de hilos de cálculo, la presencia de cálculo completo forzado, las sugerencias de actualización total y los nombres de código del libro de trabajo a través de sus representaciones binarias nativas u OOXML
RecalcAndVerifyregresa una auditoría de cálculo estructurada y acotada con categorías estables de caché, análisis, función faltante y nombre faltante, sin alterar las cachés de fórmulas ni la semántica del libro de trabajoTXLSPageImageExporter.ExportRangerenderiza un rectángulo de celdas solicitado como un único PNG o JPEG compacto, sin papel, márgenes, encabezados, pies de página, títulos de impresión ni saltos de página, y los eventos de antes y después de la imagen de página pueden dibujar sobre el lienzo real de codificación- Un exportador dedicado de imágenes de celda mide, renderiza y guarda cualquier rectángulo de celdas clásico o XLSX como una única imagen compacta con resolución, escala, formato y calidad JPEG configurables; fondos transparentes o de color, interruptores independientes de objetos, líneas de cuadrícula y bordes de celda, presupuestos de píxeles y de bytes, y guardado del archivo mediante un reemplazo atómico en la misma carpeta que deja un destino existente intacto cuando algo falla
- Los eventos de pintura de imagen de página ahora reciben un contexto completo de solo lectura que lleva el lienzo activo, los límites en píxeles, el tamaño de página en puntos, la resolución, la escala, los números de página del documento y de la hoja, el conteo total de páginas y la hoja de cálculo de origen, se disparan exactamente una vez por cada fotograma renderizado, incluidos los fotogramas TIFF multipágina, permanecen en silencio durante la medición y nunca disparan su evento posterior ni escriben bytes parciales de imagen cuando el primer evento genera una excepción
TXLSSvgExportadmite llamadas de retorno completas por página, espacios de nombres deterministas de identificadores de documento y página, y superposiciones seguras opcionales de hipervínculos con ScreenTips y atributos seguros de nueva ventana- Los exportadores HTML de XLS clásico y XLSX proporcionan una vista de hoja de cálculo opcional con encabezados semánticos de filas y columnas, además de un resaltado interactivo (hot tracking) acotado de CSS puro, y ambos rechazan los esquemas URI activos o locales conservando el texto visible del vínculo
- Las firmas PDF visibles pueden usar imágenes de apariencia PNG contenidas, cubiertas o estiradas, y los adjuntos PDF pueden obtener su carga útil de forma diferida desde una interfaz de origen de una sola llamada durante cada guardado
- Un decodificador vectorial acotado de EMF y WMF valida encabezados, tamaños de registro, totales, colocación exacta del EOF y restricciones de escapes, y después reproduce su subconjunto seguro de comandos de rectángulo a través de los backends compartidos de Canvas y SVG sin invocar la reproducción de metarchivos del controlador
Cambiado
- La escritura directa de XLSX puede crear atributos de arreglo de fórmulas de tabla y modos IME tipados de validación de datos, mientras que las fórmulas de tabla de arreglo ya no se expanden silenciosamente como fórmulas escalares por fila
Versión 2.361.99
Cambiado
- El PDF etiquetado automático ahora emite las imágenes XLSX informativas como elementos de estructura Figure independientes con texto alternativo Unicode, identificadores densos de contenido marcado locales de página, entradas exactas del árbol de elementos primarios y un elemento semántico por cada instancia visible, mientras que las cargas útiles de imagen iguales siguen compartiendo un solo XObject; las imágenes sin texto alternativo siguen siendo artefactos decorativos
Versión 2.361.98
Corregido
- Las fórmulas de búsqueda que rastrean un rango que cubre su propia celda (VLOOKUP, HLOOKUP, LOOKUP, XLOOKUP, XMATCH, MATCH) ya no reportan errores falsos de referencia circular durante el recálculo, mientras que las ediciones dentro del rango rastreado siguen desencadenando el recálculo de la fórmula
- Los criterios de texto de AutoFiltro de más de 255 caracteres se acotan al límite del registro de filtro en lugar de escribir una condición de autofiltro dañada
- Los espacios consecutivos que emplea el operador de intersección implícita se preservan al regenerar el texto de la fórmula, en lugar de reducirse a un solo espacio
- Los nombres definidos integrados aparte de las áreas de impresión, los títulos de impresión y las bases de datos de filtros (áreas de consolidación, extracción, base de datos, criterios, grabador, títulos de hoja y marcadores de la familia Auto_Open) se preservan textualmente al abrir y guardar libros de trabajo de XLS clásico
Versión 2.361.97
Añadido
- Los libros de trabajo de XLS clásico y XLSX ahora exponen una política compartida de visualización de objetos de tres estados, con preservación sin pérdidas del origen sin modificar y mapeo entre formatos; los objetos ocultos ya no expanden la salida paginada o HTML ni entran en las rutas de renderizado de dibujos y medios
- El visor de libros de trabajo renderiza marcadores de posición con nombre y ligeros para los objetos en modo de marcador de posición, mientras que los exportadores de PDF, SVG, mapa de bits, impresión y HTML conservan los objetos completos de manera predeterminada y ofrecen una opción explícita de marcador de posición que evita la decodificación de imágenes y la construcción de escenas de gráficos
Versión 2.361.96
Cambiado
- Los diseños de gráficos manuales ahora preservan los campos de origen independientes y los tokens no válidos, resuelven las coordenadas de factor y de borde con una colocación acotada que preserva el tamaño, respetan los objetivos de trazado interiores y exteriores además de la superposición de título y leyenda, convierten la geometría ODF admitida por medio de distancias absolutas del gráfico y renderizan una colocación consistente del título, la leyenda, el área de trazado y el título de eje en la salida de paginación, SVG, PDF, imagen, vista previa, impresión, visor y HTML
Versión 2.361.95
Cambiado
- Las etiquetas de datos de gráficos XLSX provenientes de celdas ahora pertenecen a cada serie, con fórmulas completas, cachés indexadas, visibilidad explícita compartida y por punto, actualización en vivo de la hoja de cálculo, un respaldo de caché externa, traducción de fórmulas durante las copias y la expansión de informes, y una composición consistente de etiquetas con la personalizada en primer lugar en la salida de paginación, SVG, PDF, imagen, vista previa, impresión, visor y HTML
Versión 2.361.94
Cambiado
- Los ejes de categorías de gráficos multinivel ahora preservan las cachés jerárquicas dispersas y los rangos bidimensionales en vivo, construyen tramos con conciencia de los padres en tiempo lineal, respetan el comportamiento de un solo nivel, invertido, de derecha a izquierda, oculto y de categorías en blanco, y renderizan etiquetas y separadores de jerarquía consistentes en la salida de paginación, SVG, PDF, imagen, vista previa, impresión, visor y HTML; la exportación ODS usa el rango de categorías hoja
Versión 2.361.93
Cambiado
- Los ejes de fechas ahora infieren las unidades de calendario una sola vez entre todas las series visibles, eligen intervalos automáticos acotados a partir del tramo visible, el ancho del eje, la fuente medida de las etiquetas, el formato de número y la rotación, y derivan etiquetas, coordenadas, marcas y líneas de cuadrícula de colecciones compartidas de marcas principales y secundarias en la salida de paginación, SVG, PDF, imagen, vista previa, impresión, visor y HTML
Versión 2.361.92
Cambiado
- Los ejes de fechas XLSX ahora preservan los formatos de número del eje y el estado de vínculo al origen, renderizan etiquetas formateadas con estilo de texto y rotación, y respetan la dirección invertida manteniendo un espaciado continuo para fechas duplicadas y dispersas en la salida de paginación, SVG, PDF, imagen, vista previa, impresión, visor y HTML
Versión 2.361.91
Cambiado
- Los ejes de fechas XLSX ahora preservan si las unidades de calendario base, principales y secundarias y la detección automática de categorías se omitieron o se proporcionaron explícitamente, incluidas las unidades de día explícitas y los valores falsos; los registros de extensión de eje de fechas clásicos exponen campos tipados, retienen valores en bruto enmascarados o no válidos y pueden mapear la configuración activa al modelo de eje XLSX
Versión 2.361.90
Cambiado
- Los gráficos de eje de fechas XLSX ahora preservan el espaciado continuo de las fechas y renderizan intervalos principales de día, mes o año con el sistema de fechas de 1900 o 1904 del libro de trabajo en la salida paginada, SVG, PDF, imagen, vista previa, impresión, visor y HTML; la salida basada en paginación también respeta las marcas secundarias y las líneas de cuadrícula configuradas
Versión 2.361.89
Añadido
- El visor de libros de trabajo ahora pone en mosaico fondos de hoja válidos detrás de las celdas sin relleno, y la impresión, PDF, SVG, mapa de bits, metarchivo y la salida HTML clásica o XLSX exponen una opción explícita
ExportSheetBackgroundImagesque viene deshabilitada de fábrica
Cambiado
- El renderizado paginado de fondos ahora conserva entre páginas la fase de mosaico relativa a la hoja, decodifica cada fondo una sola vez por sesión de renderizado, reutiliza un solo XObject de imagen PDF o recurso SVG y omite las cargas corruptas con un diagnóstico
Versión 2.361.88
Añadido
- Las hojas clásicas ahora exponen creación tipada de imágenes de fondo y un recurso de fondo compartido de solo lectura, leen y escriben registros de fondo BIFF8 con división continua del payload, reconstruyen payloads de mapa de bits como datos BMP estándar, preservan byte a byte los formatos nativos no soportados y desconocidos con sus diagnósticos, copian en profundidad la propiedad de los fondos y convierten los fondos conocidos en cualquier dirección entre XLS y XLSX
Versión 2.361.87
Corregido
- Las copias de hojas XLSX ahora retienen los bytes de la imagen de fondo y el tipo de medio tanto en copias dentro del mismo libro de trabajo como entre libros de trabajo; las copias dentro del mismo libro reutilizan el medio de origen preservado y las copias entre libros reubican la propiedad del medio antes de guardar
Versión 2.361.86
Añadido
- Los libros XLS clásicos y XLSX exponen
AllowUnsafeFormulaCallbacks, y la evaluación contextual ofrece la opción correspondiente por llamada y el estado estructuradoxlfeUnsafeFunctionDenied
Seguridad
- Los nombres de fórmula peligrosos externos y de estilo macro ya no llegan por predeterminado a los manejadores de funciones de usuario locales del libro de trabajo, de proceso, del resolvedor ni de eventos, y el rechazo ocurre antes de que se evalúen los argumentos de la fórmula
Versión 2.361.85
Añadido
- Los libros XLS clásicos y XLSX exponen
AuditFormulaSymbolspara un diagnóstico estructurado de funciones desconocidas, nombres desconocidos y sintaxis a lo largo de celdas con fórmula y nombres definidos, con estadísticas por operación de fórmulas únicas y de aciertos de caché
Cambiado
- Las funciones y nombres desconocidos que se preservan ahora evalúan a errores
#NAME?de Excel mediante las rutas de cálculo directa, dependiente, contextual, serial y paralela - Los cambios en el registro de funciones de usuario a nivel de libro de trabajo o de proceso y los cambios de fórmula en nombres definidos ahora invalidan el estado de cálculo afectado antes del siguiente recálculo
Corregido
- Los errores de fórmula leídos de celdas dependientes en caché ahora se mantienen como errores tipados en lugar de entrar a la conversión escalar y lanzar una excepción de conversión Variant
Versión 2.361.84
Añadido
- La asignación de fórmulas normal en XLS clásico y XLSX ahora aplica de manera atómica la política de entrada de fórmulas del libro de trabajo, de modo que el rechazo estricto deja el valor de la celda, la caché de fórmulas y las dependencias sin cambios, mientras que el modo de preservación almacena las funciones y los nombres desconocidos
Cambiado
- El XLS clásico escribe las llamadas desconocidas preservadas por medio de tokens de funciones de usuario de complementos de BIFF y conserva el texto de los nombres desconocidos preservados a través del guardado, la reapertura y la conversión entre XLS y XLSX
- La validación de entrada de fórmulas reconoce funciones de usuario de devolución de llamada configuradas, elementos invocables
LAMBDAyLET, lambdas de nombres definidos, marcadores de posición de informe, vínculos externos registrados y referencias estructuradas válidas sin invocar los controladores
Corregido
- La validación de XLSX ahora preserva las referencias estructuradas válidas anidadas y de la fila actual, y ya no reutiliza texto de columna desactualizado mientras rastrea una referencia de tabla sin resolver
Versión 2.361.83
Cambiado
- La asignación de valores en XLS clásico y XLSX ahora aplica
FormulaEntryPolicy.EmptyStringModede manera consistente: el modo predeterminado borra las cadenas vacías exactas, el modo de preservación almacena una cadena vacía constante, yNulloUnassignedsiempre borra la celda - La carga nativa de XLS, XLSX y ODS, además de la conversión de XLS a XLSX y de XLSX a XLS, ahora preserva las cadenas vacías constantes confiables sin confundirlas con celdas ausentes ni con fórmulas como
="" - Los escritores de filas o columnas de cadenas y Variant de XLSX retienen las rutas rápidas del almacenamiento compactado, dejan las entradas borradas como ausentes y almacenan cadenas vacías exactas únicamente en el modo de preservación
Versión 2.361.82
Añadido
- Los libros de trabajo XLS clásico y XLSX ahora exponen una
FormulaEntryPolicycompartida, mientras que ambos motores de hojas de cálculo proporcionan métodosValidateFormulaEntrysin mutaciones que regresan un problema, una acción y un símbolo desconocido estructurados antes de que quien llama modifique una celda
Cambiado
- La validación de entrada de fórmulas ahora distingue una entrada vacía exacta de las fórmulas que regresan una cadena vacía, separa las funciones desconocidas, los nombres desconocidos, las fallas de sintaxis, los destinos no válidos y las limitaciones del formato de destino, y reconoce las funciones de usuario registradas sin invocar sus controladores
Versión 2.361.81
Cambiado
- Las inserciones o eliminaciones de filas o columnas completas ahora remapean de manera consistente en XLS y XLSX las áreas de selección ordenadas y el área activa de cada panel, conservan el orden de las áreas que sobreviven y crean una celda de frontera como respaldo cuando se eliminan todas las áreas
- La normalización de selecciones de panel grandes, la edición estructural y las consultas ahora utilizan constructores lineales amortizados y crecimiento de capacidad en vez de copias repetidas de cadenas completas o de arreglos
Corregido
- El XLS clásico ahora preserva byte a byte los cuerpos de registros
Selectionmalformados o contradictorios mientras reportaxlsDiagnosticSelectionRecordInvalid, en vez de exponer un estado tipado parcialmente confiable
Versión 2.361.80
Añadido
TXLSWorksheetyTXLSXWorksheetahora exponen los métodos equivalentesTryGetWindowScrollyScrollWindowpara leer y cambiar la primera celda visible de cualquier panel lógico existante mediante coordenadas de base uno
Cambiado
- El estado de desplazamiento de cuatro paneles ahora preserva de manera independiente los ejes compartidos superior, inferior, izquierdo y derecho a través del guardado, la apertura y la copia de hojas de trabajo en XLS y XLSX, mientras que los paneles faltantes y las coordenadas no válidas fallan sin cambiar el estado de la vista
Versión 2.361.79
Cambiado
- Las hojas de cálculo del XLS clásico retienen grupos de selección ordenados independientes para cada panel, agregan los registros
Selectionconsecutivos de BIFF en una sola secuencia lógica, preservan los cuerpos de registro intactos y copian el estado de selección completo junto con la hoja de cálculo - Las selecciones clásicas con más de 1369 áreas se escriben como bloques consecutivos que cumplen con el estándar, manteniendo un único índice agregado del área activa a lo largo de todos los bloques
Versión 2.361.78
Añadido
TXLSWorksheetyTXLSXWorksheetahora exponen los métodos equivalentesGetSelectedAreasySelectAreasconscientes del panel por medio del tipo compartidoTXLSPanePosition
Cambiado
- Las consultas de selección de panel regresan instantáneas ordenadas propiedad de quien llama con el índice del área activa, preservan las áreas que se superponen y dejan el estado de la hoja de cálculo sin cambios cuando un panel está ausente o una actualización no es válida
Versión 2.361.77
Añadido
IXLSWorkbook,TXLSWorkbookyTXLSXWorkbookahora exponen los métodos equivalentesSaveSemanticSnapshoten flujo yComputeSemanticHashincremental de SHA-256, con perfiles Content y SecurityComplete, además de opciones explícitas para el estado del visor, los metadatos volátiles y la caché de fórmulas
Cambiado
- Las instantáneas semánticas recorren modelos de libros de trabajo dispersos sin materializar una instantánea completa, y tanto las operaciones de instantánea como las de hash retienen un permiso de lectura, de modo que las mutaciones públicas concurrentes fallan antes de cambiar el estado del libro de trabajo
Versión 2.361.76
Añadido
- El modelo tipado de gráficos del XLS clásico ahora expone los títulos del gráfico, del eje de categorías y del eje de valores
Corregido
- La extracción del modelo de gráficos del XLS clásico ahora identifica series, leyendas, grupos de gráficos, ejes, estado 3-D, etiquetas de series y fórmulas de origen de las series a partir de sus registros BIFF definidos
- Las posiciones de las leyendas y la clasificación entre pastel y anillo se decodifican a partir de sus campos de registro definidos
Versión 2.361.75
Añadido
- El FeatureShowcase de Delphi y el XlsxFeatureGallery de C++Builder ahora demuestran el mismo flujo de trabajo de contexto de datos de informe compilado, tabla en memoria, acceso estricto a datos, continuación tras fallas recuperables, hoja de diagnóstico, resultado de ejecución inmutable y salida atómica a archivo
- El tema de informes compilados ahora proporciona ejemplos equivalentes de Delphi y C++Builder, incluida la adquisición de interfaces inteligentes de C++Builder necesaria para las tablas de informe con interfaz
Corregido
- La galería de características XLSX de C++Builder vincula el paquete estático de HotXLS completo y correspondiente a la versión, de modo que las dependencias de implementación de los informes compilados se resuelven sin frágiles directivas del enlazador por unidad
Versión 2.361.74
Cambiado
RunToStream,RunToFileyRunToEncryptedFileahora comparten una única transacción de salida que publica un libro de trabajo serializado solo después de que la generación y el guardado del informe concluyen- La salida de informe sin cifrar preserva el formato del libro de trabajo de la plantilla, incluida la salida ODS a partir de plantillas ODS, mientras que la salida cifrada sigue siendo un contenedor de Office cifrado
Corregido
- Las fallas de serialización, reemplazo, cancelación y las fallas fatales del informe dejan sin cambios los flujos, archivos y archivos cifrados de destino existentes, y liberan las sesiones de datos por ejecución y el almacenamiento temporal antes de regresar
Versión 2.361.73
Añadido
- Las bandas de informe de rango con nombre y de tabla de Excel ahora exponen
ErrorMode,StrictDataAccess,RuntimeLimitse instantáneas inmutables deLastResult, con un estado de bandaCompletedWithErrorsdistintivo
Cambiado
WriteAndContinuepuede escribir una falla de fila explícitamente recuperable como texto de diagnóstico literal, registrar la fila del cursor de origen y la celda de salida real, y después proseguir con los destinos posteriores de esa fila y las filas de entrada siguientes- Las expresiones de informe consumen los valores tipados de las instantáneas de banda antes de recurrir al texto, preservando los valores numéricos, de fecha, booleanos y demás valores Variant admitidos durante la evaluación de expresiones
Corregido
- Las fallas fatales de destino, de cancelación y de límite de ejecución durante la expansión de la banda restauran los destinos de origen y la estructura insertada, eliminan los indicadores de diagnóstico revertidos y publican cero destinos aplicados
Versión 2.361.72
Añadido
TXLSReportRuntimeLimitslimita la cantidad de problemas de ejecución retenidos, la longitud saneada de los mensajes y la memoria de problemas, mientras queRuntimeDiagnosticsSheetNameescribe de manera opcional una hoja de diagnóstico estructurada- Los errores de datos explícitos del resolvedor, la división entre cero en expresiones y las expresiones regulares no válidas ahora incluyen categorías y códigos de error estables, ya sea del proveedor o de la expresión
Cambiado
WriteAndContinueconserva los destinos seguros ajenos a las celdas y registra el problema correspondiente, mientras que los nombres de hoja y las fórmulas de nombres definidos permanecen como destinos estructurales de falla inmediata- Los resultados de error de datos del resolvedor siguen siendo recuperables cuando provienen de la caché de alias de cada ejecución, mientras que las excepciones que lanza un resolvedor continúan siendo fatales
Seguridad
- Los mensajes de ejecución se detienen en la primera línea, eliminan las formas comunes de credenciales y tokens de portador, y aplican límites de cantidad, longitud y memoria antes de modificar el destino que presentó la falla
Versión 2.361.71
Añadido
- Las celdas
{{#usertable(alias, logicalName, providerKey, name=expression)}}exactas se compilan en declaraciones de tabla diferidas y tipadas, yTXLSCompiledReportTemplate.UserTableCountinforma la cantidad de declaraciones por separado de los destinos de salida TXLSReportTemplateChecker.DataContextrealiza una verificación previa de las llaves de proveedor registradas, los límites de los parámetros tipados, las declaraciones malformadas y los conflictos de alias sin distinción entre mayúsculas y minúsculas, sin invocar a ningún resolvedor
Cambiado
- Las plantillas y los generadores de informes evalúan los parámetros de declaración antes de escribir en los destinos, los registran en la sesión de la ejecución actual y únicamente resuelven una tabla declarada cuando
dbvalueodbcounthace referencia por primera vez a su alias - Las declaraciones repetidas e iguales comparten una sola solicitud, mientras que las que reutilizan un alias con un nombre lógico, proveedor, orden de parámetros, tipo o valor distinto fallan señalando la celda donde se declararon, antes de modificar el libro de trabajo
Seguridad
- Las declaraciones de tablas de usuario aceptan únicamente una llave de proveedor registrada y parámetros de datos tipados y acotados, rechazan el acceso a tablas de datos dentro de las expresiones de parámetros y no exponen ningún campo de plantilla para SQL, rutas, URL ni texto de comandos
Versión 2.361.70
Añadido
TXLSReportDataRequestlleva hastaIXLSReportDataResolverla identidad con nombre o de tabla de usuario, los parámetros tipados, la ubicación del origen y el control de ejecución de solo lectura; los estados explícitos de su resultado distinguen los casos sin manejar, resueltos, no encontrados y con error de datosTXLSReportDataContext.RegisterResolver,RemoveResolveryClearResolversse encargan de un registro de resolvedores con nombre que no distingue mayúsculas de minúsculas, mientras queTXLSReportDataLimitspone límites a alias, resolvedores, parámetros, nombres, mensajes y esquemas de tablas devueltos
Cambiado
- Cada sesión de datos de informe toma una instantánea del registro de resolvedores convertida en una búsqueda O(1), mantiene las tablas explícitas como autoridad, adapta los proveedores de tablas heredados, guarda en caché las solicitudes tipadas por alias y rechaza un alias reutilizado cuyo nombre lógico, proveedor, orden de parámetros, tipo o valor sea distinto
- Los ejecutores y las bandas de informe ahora hacen pasar un control de cancelación seguro para hilos por toda la resolución de datos, se detienen tras la cancelación sin aplicar el destino activo y dejan el alias cancelado listo para reintentarse limpiamente, en lugar de guardar la cancelación como un error de datos
Seguridad
- Las solicitudes de datos tipadas rechazan caracteres de control, coordenadas de origen negativas, nombres de parámetros duplicados, arreglos Variant no admitidos o referencias, cadenas demasiado largas, un exceso de alias o de proveedores y esquemas de tabla sobredimensionados antes de realizar trabajo inseguro o modificar el libro de trabajo
Versión 2.361.69
Añadido
TXLSXWorksheet.ClearRowHeightyClearColWidthquitan una anulación explícita de dimensión sin perturbar los demás metadatos de la fila o columna
Cambiado
- Los destinos de informe compilados ahora concluyen la evaluación de expresiones antes de invocar el formato dinámico y aplican el contenido de celdas, formatos numéricos, alturas de fila y anchos de columna dentro de una única frontera de reversión
- Los diagnósticos recuperables de celdas obtienen los estilos de fuente roja y relleno amarillo a partir de la fuente que ya tiene la celda, preservan el resto del estilo de la celda y reutilizan estilos agrupados entre fuentes base iguales y ejecuciones repetidas del ejecutor
Corregido
- Una falla de evaluación recuperable ya no deja formatos numéricos dinámicos ni dimensiones explícitas de filas y columnas de forma residual, y las escrituras de diagnóstico ahora borran cualquier fórmula antes de almacenar texto literal
Versión 2.361.68
Añadido
- Los ejecutores y generadores de informes compilados exponen
ErrorMode,StrictDataAccessy unLastResultinmutable con estado terminal, cantidad aplicada, detalles de la falla y problemas de ejecución en orden WriteAndContinuepuede reemplazar las fallas de datos de celda explícitamente recuperables por diagnósticos literales y terminar comoCompletedWithErrors, mientras que el modoStoppredeterminado conserva su compatibilidad
Cambiado
- El acceso estricto a datos reporta tablas faltantes, acceso aleatorio no disponible, filas y campos ausentes mediante códigos de error estables cuando la plantilla no cuenta con un respaldo explícito
- Únicamente las fallas de datos marcadas explícitamente como recuperables pueden continuar; las fallas estructurales, de devoluciones de llamada, de cancelación, de recursos, de seguridad, de serialización y demás fallas fatales siguen deteniendo el informe
Corregido
- Las fallas de salida hacia archivo o archivo cifrado ahora publican un resultado de ejecución fallida en lugar de retener un resultado completado de la fase previa de generación del libro de trabajo
Versión 2.361.67
Cambiado
- Las plantillas compiladas, los ejecutores, las bandas de rango y las bandas de tabla de Excel ahora resuelven
dbvalueydbcountpor medio de una sesión de datos aislada por cada ejecución lógica - Los alias repetidos se cargan una única vez dentro de una ejecución, las ejecuciones posteriores recargan los datos del proveedor, las ejecuciones concurrentes mantienen cachés independientes y las dos pasadas de
PreprocessAndRuncomparten una instantánea de tabla consistente - Las expresiones de las bandas de informe únicamente vinculan sus variables de fila o de columna, de modo que los nombres de tabla literales y las variables de ubicación integradas ya no se toman por error como columnas de origen
Corregido
- Las sesiones de datos de informe y sus instantáneas de proveedor se liberan después de una ejecución correcta, cancelada o fallida, lo que incluye las excepciones del proveedor y los reintentos reutilizables del ejecutor
Versión 2.361.66
Añadido
TXLSReportDataContext.BeginRunregresa una instantánea aislada deIXLSReportDataSessioncon inspección de estado y conteos de alias resueltos o en caché
Cambiado
- Las sesiones de datos de informe utilizan una caché hash que no distingue mayúsculas de minúsculas para las tablas explícitas, los resultados diferidos de proveedores, los alias faltantes y los errores de datos de proveedor
- Cada alias distinto llega a la cadena de proveedores como máximo una vez por sesión, los resultados del proveedor permanecen vinculados al alias solicitado y la recursión con el mismo alias falla de inmediato
- Las llamadas directas a
TXLSReportDataContext.TryGetTableyRequireTableretienen una caché de compatibilidad separada que se invalida cuando los registros cambian
Versión 2.361.65
Añadido
IXLSXImageBlobyTXLSXImageBlobofrecen cargas útiles inmutables de imágenes de trama y SVG con resúmenes SHA-256 de un solo uso, tamaño en bytes y una llave de caché opcionalTXLSReportImageResult.CacheKeypermite que un proveedor de imágenes V2 identifique de forma explícita el contenido reutilizable, mientras que el contenido en conflicto para la misma llave se rechaza antes de modificar la hoja de cálculo
Cambiado
- Las imágenes de informe repetidas comparten una carga útil inmutable mediante una llave de caché explícita o una coincidencia exacta del resumen, sin dejar de conservar anclas y transformaciones independientes
- XLSX y ODS guardan cada carga útil de imagen distinta una sola vez, reutilizan su relación de medios en todas las hojas y restauran las cargas útiles compartidas cuando se vuelve a abrir el libro de trabajo
- Al reabrir XLSX ahora se restauran los datos SVG complementarios desde las relaciones de extensión de DrawingML y se emparejan con la alternativa de trama
Versión 2.361.64
Añadido
TXLSReportImageResultpuede declarar las dimensiones en píxeles del origen y los DPI, mientras que las solicitudes y los resultados de imagen exponen desfases de destino relativos al ancla en EMUTXLSXImage.OffsetXEMUyOffsetYEMUconservan la posición de la imagen dentro del ancla a través de los ciclos de guardado y apertura de XLSX y ODS
Cambiado
- La vinculación de imágenes V2 obtiene la geometría física de los encabezados PNG, JPEG, GIF, BMP, EMF y WMF, aplica el dimensionamiento Natural, Contain, Cover o Stretch, y centra las imágenes contenidas sin decodificar sus píxeles
- La geometría de trama se rechaza antes de modificar la hoja de cálculo cuando los encabezados están truncados, las dimensiones declaradas no coinciden, un lado supera los 100 000 píxeles o el tamaño total decodificado rebasa los 100 millones de píxeles
Versión 2.361.63
Añadido
IXLSReportImageDataProviderV2puede regresar bytes de imagen o flujos tomados en préstamo por quien llama y transferidos por el proveedor, junto con el contexto de libro de trabajo, hoja de cálculo, destino, banda, tabla, fila, ancla y cancelaciónOnTransformImagepuede reemplazar una imagen o cambiar su tamaño antes de la vinculación, mientras que las bandas de rango y de tabla de Excel compiladas exponen una instantánea de solo lectura de cada fila de datos real
Cambiado
- Los flujos de imágenes V2 se leen en bloques acotados con un límite predeterminado configurable de 64 MiB; los flujos posicionales prestados restauran su posición y los transferidos se liberan exactamente una vez
- Las cargas útiles V2 rechazan datos vacíos, firmas de formato que no coinciden, dimensiones inconsistentes, anclas no válidas y desfases fuera de la cuadrícula antes de modificar la hoja de cálculo
- Las bandas de rango y de tabla de Excel compiladas vinculan los destinos de imagen una vez por fila generada a partir de las columnas vinculadas ya materializadas, sin rastrear las celdas generadas en la hoja de cálculo
Versión 2.361.62
Añadido
TXLSCompiledReportRunneryTXLSReportGeneratorahora aceptan unIXLSReportImageProviderexistente con políticas para imágenes faltantes y para celdas de directivasTXLSReportImageBinder.ApplyTargetvincula una directiva de imagen precompilada sin rastrear celdas ajenas de la hoja de cálculo
Cambiado
- Las celdas
{{#image Key}}exactas se compilan en destinos de informe tipados, quedan sin cambios cuando no hay proveedor configurado y reutilizan su llave compilada y sus coordenadas entre sesiones del ejecutor
Versión 2.361.61
Añadido
TXLSCompiledReportRunnerahora expone eventos emparejados de generación de libros y hojas, con identidad estable de la hoja, coordenadas originales y actuales, datos de informe de solo lectura, conteos de destinos, cancelación y detalles de la fallaTXLSReportGeneratorejecuta plantillas de libro, archivo, flujo o archivo cifrado mediante eventos del ciclo de vida de lectura de plantilla y generación, con modificación in situ o por clonación atómica, según se prefiera
Cambiado
- La generación de informes congela el conjunto original de hojas, recompila después de los cambios de estructura provocados por devoluciones de llamada, rechaza la modificación concurrente del mismo libro, empareja los eventos de entrada durante la cancelación y la falla, y conserva la primera excepción
- Los flujos de informe siguen siendo propiedad de quien llama, los flujos de plantilla posicionales restauran su posición, los flujos de solo avance se consumen en bloques acotados y los destinos de flujo, archivo y archivo cifrado únicamente cambian tras una finalización correcta
- Los informes compilados sin controladores de ciclo de vida retienen el bucle directo de destinos, sin rastreos de hojas, contextos de eventos ni asignaciones de ciclo de vida por destino
Versión 2.361.60
Añadido
- Los libros de trabajo XLSX ahora exponen
HasWebAddinTaskPanes,WebAddinTaskPaneCountyRemoveWebAddinTaskPanespara inspeccionar y eliminar con precisión los paneles de tareas de la raíz del paquete
Cambiado
- La eliminación de paneles de tareas de complementos web ahora valida un grafo de relaciones interno acotado antes de la modificación, preserva las partes del paquete compartidas y no relacionadas, elimina los descendientes exclusivos y las partes de relación propias, reconstruye los tipos de contenido, evita que las copias del origen resuciten y es idempotente
- Los libros de trabajo XLS clásico y ODS reportan la eliminación de paneles de tareas de complementos web como no admitida, sin rastrear el contenido del paquete
Versión 2.361.59
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora las propiedades equivalentes
SaveExternalLinkValuesyUpdateLinkspara la persistencia de la caché y la preferencia de actualización de vínculos declarada en el archivo
Cambiado
- Al desactivar los valores de vínculos externos en caché, ahora se omiten únicamente los registros clásicos
XCT/CRNo el contenidosheetDataSetde XLSX, mientras se conservan las definiciones de vínculos, los nombres definidos, las relaciones, el XML desconocido y las cachés en memoria - Las políticas de vínculos externos ahora conservan sin pérdidas los valores reservados del origen hasta que se editan, se convierten entre XLS y XLSX, mantienen sin cambios las partes comprimidas del paquete y jamás inician acceso a archivos externos ni a la red
Versión 2.361.58
Añadido
TXLSHTMLExportyTXLSXHtmlExportSessionexponen ahora la instantánea inmutableRenderGeometryque emplea la operación HTML en curso
Cambiado
- Los exportadores HTML de XLS clásico y XLSX convierten ahora los anchos de carácter de Excel en longitudes CSS fijas por medio de la geometría de ancho máximo de dígito propia de cada backend, en lugar de factores de conversión fijados en el código o unidades de carácter CSS
- Las exportaciones HTML de libro de trabajo, hoja, rango y multipágina incrementales capturan una calibración local a la operación con una caché de métricas acotada, y jamás modifican las alturas de fila ni los anchos de columna almacenados
Versión 2.361.57
Cambiado
- Las operaciones de PDF, SVG, mapa de bits, vista previa de impresión y visor de libros de trabajo ahora capturan instantáneas inmutables y diferenciadas de la geometría de renderizado, con cachés de métricas acotadas y conscientes de cada backend
- El renderizado de páginas compartido y el ajuste de línea en SVG usan ahora la medición de fuentes local a la operación en lugar del estado global del proceso de GDI para mapas de bits y listas de cadenas, al tiempo que preservan las alturas de fila y los anchos de columna almacenados
Versión 2.361.56
Cambiado
- El Autoajuste de XLS clásico y XLSX ahora captura un servicio inmutable de geometría de renderizado del libro por operación, que abarca la medición calibrada del texto, el ajuste de línea, el interlineado, los márgenes de celda y las fuentes visibles reales de XLSX
- La paginación ahora captura la geometría local del libro en cada construcción, elimina el estado global del proceso de la fuente normal y del ancho máximo de dígito, y aplica anchos de columna implícitos calibrados sin tocar las alturas de fila ni los anchos de columna almacenados
Versión 2.361.55
Añadido
- Los libros de trabajo XLS clásico y XLSX ahora crean servicios inmutables de geometría y medición de fuentes propiedad de la operación, con cachés locales acotadas, conversiones de ancho compartidas y sin caché de DPI ni de ancho base globales al proceso para el Autoajuste
Versión 2.361.54
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora valores validados de
TXLSRenderCalibration, junto con instantáneas independientes medianteCaptureRenderCalibrationy valores predeterminados deResetRenderCalibrationpara operaciones de renderizado futuras
Versión 2.361.53
Añadido
- La carga de XLSX ahora reporta
xlsDiagnosticPrinterSettingsRelationshipInvalidcuando la relación de configuración de impresora de una hoja falta, tiene un tipo incorrecto o queda huérfana
Cambiado
SaveXLSWorkbookAsXLSXySaveXLSXWorkbookAsXLSahora transportan de forma independiente los campos tipados de configuración de página y los bytes opacos del controlador de impresora, dando prioridad a los campos estándar sobre los valores privados predeterminados duplicados
Corregido
- La carga de XLSX ya no vincula una parte de configuración de impresora ajena cuando la relación nombrada por
pageSetupno es válida - La conversión de XLSX a BIFF8 ahora rechaza configuraciones de impresora demasiado grandes o no representables antes de escribir cualquier byte de destino
Versión 2.361.52
Añadido
- Las hojas de cálculo XLS clásico y XLSX exponen ahora las propiedades
PrinterDriverDatayHasPrinterDriverDataaisladas entre copias, además deClearPrinterDriverDatapara controlar directamente la carga útil opaca del controlador de impresora
Corregido
- Al borrar los datos del controlador de impresora en XLSX ahora se eliminan su relación de hoja de cálculo y su parte binaria del paquete, incluso cuando la preservación de partes no admitidas está activada
Versión 2.361.51
Cambiado
- La carga y el guardado de XLSX ahora preservan la configuración de impresora binaria de cada hoja de cálculo mediante la relación
pageSetup, la declaración de tipo de contenido y la parte del paqueteprinterSettingsN.bin - La configuración de impresora sobrevive a las copias de hojas dentro del mismo libro y entre libros con propiedad independiente idéntica byte a byte, mientras que las partes de origen sin cambios pueden conservar su carga útil comprimida original
Versión 2.361.50
Cambiado
- La carga y el guardado del XLS clásico ahora conservan la carga útil completa del controlador de impresora BIFF
PLSjunto con cada segmentoContinueque le sigue de inmediato - Las cargas útiles del controlador de impresora se copian en profundidad junto con las hojas de cálculo, se emiten antes de
Setupen fragmentos del tamaño exacto de BIFF y se rechazan cuando están estructuralmente incompletas o superan el límite de seguridad de 1 MiB
Versión 2.361.49
Añadido
- La configuración de página del XLS clásico expone ahora las propiedades de solo lectura
HasSetupRecordyPrinterSettingsInitialized, de modo que quien llama pueda distinguir entre una configuración de impresora ausente o sin inicializar y valores definidos
Cambiado
- Al guardar una hoja clásica intacta, ahora se conserva la ausencia del registro BIFF
Setupy se retiene cada byte de un registro existente de 34 bytes, incluidos los bits de indicador reservados y los que no están modelados - Los establecedores de la configuración de página ahora crean un registro
Setupfaltante solo cuando hace falta e inicializan los campos dependientes de la impresora o de la orientación conforme a la propiedad afectada
Versión 2.361.48
Añadido
SaveXLSXWorkbookAsXLSahora convierte un libro de trabajo con modelo XLSX a BIFF8 a través de sobrecargas de archivo y de flujo, conservando los valores cargados, las fórmulas, los estilos esenciales, los rangos combinados, las dimensiones de filas y columnas, el modo de fechas del libro y el estado de la hoja activa
Cambiado
- La conversión de XLSX a XLS construye una paleta determinista de 56 colores antes de escribir los estilos, preserva las ranuras indexadas ya ocupadas y aplica cuantización OKLab ponderada cuando los colores directos exceden la capacidad de BIFF8
- La ruta de conversión recorre las celdas dispersas o compactas cargadas sin materializar la cuadrícula de origen, rechaza las coordenadas fuera de los límites de BIFF8 antes de tocar el destino y ya está disponible en los ejemplos Delphi y C++Builder ConversionWorkbench
Versión 2.361.47
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora los métodos equivalentes
ApplyBiffPalettePlan, que validan y aplican de forma atómica un plan de paleta vigente de 56 ranuras - Los libros clásicos exponen ahora
BiffPaletteSavePolicy, con una opción explícita de optimización BIFF8 y un valor predeterminado que conserva la salida histórica de la paleta
Cambiado
- La aplicación del plan de paleta ahora valida la generación del origen, el hash del origen, todas las identidades y colores de las ranuras, los conteos agregados, los bloqueos de preservación, los indicadores de cambio y los destinos opacos antes de la primera modificación, y luego reconstruye una sola vez el comparador OKLab en caché
- Los guardados BIFF8 optimizados dejan la paleta aplicada en el libro tras un resultado exitoso, pero restauran los 56 colores de origen y la generación original si la salida falla o se cancela; las rutas de salida BIFF5 y no BIFF quedan como estaban
Versión 2.361.46
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora los métodos equivalentes
BuildBiffPalettePlan, que regresan un plan de 56 ranuras sin mutaciones con la identidad de la paleta de origen, las ranuras bloqueadas, los colores propuestos, las asignaciones agregadas de color real, la cobertura exacta y estadísticas de error perceptual
Cambiado
- La planeación de la paleta BIFF ahora preserva los consumidores indexados y los colores exactos ya existentes antes de asignar las ranuras libres, y solo entonces recurre a una agrupación OKLab determinista ponderada por frecuencia cuando los colores directos y los de tema resueltos rebasan la capacidad restante
- La construcción del plan de paleta lee los metadatos almacenados de estilos y formato condicional sin alterar las entradas de la paleta, los conteos de colores personalizados, las celdas, el comportamiento de guardado ni el almacenamiento disperso
Versión 2.361.45
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora los métodos equivalentes
ScanIndexedColorUsage, que regresan un inventario determinista de 56 ranuras con índices públicos y físicos, valores ARGB normalizados, conteos de definiciones y referencias, tipos de consumidores y bloqueos de preservación
Cambiado
- El rastreo del uso de colores indexados ahora abarca los grupos de estilos del libro, las referencias de celdas dispersas, los estilos con nombre, las superposiciones de rango, las líneas de división de la hoja, las formas, los comentarios, el texto enriquecido, las fuentes de gráficos, los estilos diferenciales, las barras de datos y las escalas de colores, sin materializar celdas sin uso ni cambiar el estado del libro
- Los colores indexados del formato condicional ahora sobreviven a los ciclos de guardado y reapertura por los estilos diferenciales clásicos de BIFF y OpenXML, las barras de datos y las escalas de colores, incluidos los guardados en flujo que emiten los identificadores de estilo diferencial antes de las partes de la hoja
Versión 2.361.44
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora los métodos equivalentes
NearestIndexedColor, que regresan el índice público de paleta más cercano, la ranura física, el valor ARGB normalizado, la distancia perceptual al cuadrado y el estado de coincidencia exacta
Cambiado
- La búsqueda del color indexado más cercano ahora comparte una sola implementación OKLab en caché entre ambos motores de libros de trabajo y el administrador de colores heredado, con desempate determinista por el índice más bajo y actualizaciones de la caché limitadas a las mutaciones efectivas de la paleta
- Las consultas de color más cercano solo rastrean las 56 entradas físicas de la paleta BIFF, rechazan las entradas parcialmente transparentes y nunca modifican la paleta ni el estado del libro
Versión 2.361.43
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora las sobrecargas equivalentes de
ResolveIndexedColor, que clasifican índices de color públicos, valoresicvde BIFF y colores indexados de OOXML, y regresan metadatos de paleta, automático, sistema o no válidos - El resultado tipado de color indexado reporta el índice en bruto, la ranura de paleta, el rol del color de sistema, el valor ARGB normalizado y si se resolvió un color concreto
Cambiado
- Los tokens de color automático y de sistema ya no consultan de manera implícita el escritorio de Windows actual; quien llama puede proporcionar un resolvedor explícito cuando se necesita un color concreto del entorno
- Los colores del sistema de temas ahora usan su valor RGB de respaldo almacenado, lo que mantiene la carga, el guardado y el procesamiento sin interfaz gráfica deterministas en cualquier computadora
Corregido
- Los valores de color indexado no válidos de OOXML ya no se resuelven a negro opaco, y los valores predeterminados del administrador de colores heredado ahora usan los valores exactos de la paleta de 128 canales
Versión 2.361.42
Añadido
TXLSWorksheetyTXLSXWorksheetexponen ahora los métodos equivalentesTryGetOutlineNode,SetOutlineNodeCollapsedySetOutlineDisplayLevelpara nodos de resumen de filas o columnas de base uno
Cambiado
- Las consultas y actualizaciones del esquema de la hoja ahora adaptan los metadatos dispersos del motor a planes compactos, preservan de manera predeterminada el estado de los hijos anidados y aplican los cambios de ocultación y contracción sin rastrear coordenadas de hoja sin uso
- Los grupos de filas y columnas de OpenDocument ahora conservan su estado nativo de visualización anidada a través de cambios directos de metadatos, ediciones estructurales, ciclos de guardado y reapertura de ODS y conversión a marcadores de nodos de resumen de XLSX
TXLSXWorksheet.ToggleRowGroupedyToggleColGroupedsiguen estando disponibles como contenedores de compatibilidad conscientes de la dirección alrededor de la API de nodos de resumen
Versión 2.361.41
Añadido
TXLSOutlineGeometryahora puede construir instancias compactas deTXLSOutlineMutationPlanpara la contracción o expansión idempotente de nodos y para cambios de nivel de visualización del esquema de base uno- Los planes de mutación del esquema exponen modos explícitos para conservar, contraer y expandir hijos, dejando de manera predeterminada los marcadores de contracción anidados como independientes
Cambiado
- Al expandir un nodo anidado del esquema ahora se toman en cuenta los ancestros contraídos y los descendientes contraídos al deducir la visibilidad, y el descubrimiento masivo de nodos recorre únicamente los tramos materializados con una pasada lineal de pila monótona
Versión 2.361.40
Añadido
- La nueva unidad
lxOutline, neutral respecto al motor, construye la geometría del esquema de filas o columnas a partir de tramos dispersos ordenados y descubre los nodos de resumen previos o posteriores, los rangos de detalle anidados, los niveles de resumen, el estado oculto y los marcadores explícitos de contracción, sin rastrear coordenadas de hoja sin uso
Versión 2.361.39
Añadido
- Los metadatos de columnas del XLS clásico exponen ahora el marcador independiente de contracción del esquema mediante
TXLSColumnInfo.CollapsedyTXLSColumnInfoList.Collapsed
Corregido
- Los marcadores de contracción del esquema de columnas del XLS clásico ahora sobreviven a los ciclos de guardado y reapertura de BIFF, a las copias de formato de columna, a las copias de hojas de cálculo y a la fusión de registros adyacentes, mientras que el ancho definido y los indicadores de mejor ajuste y fonéticos permanecen intactos
Versión 2.361.38
Corregido
- Las columnas de resumen del esquema del XLS clásico ahora preservan su posición lógica izquierda o derecha en las vistas de hoja de izquierda a derecha y de derecha a izquierda, en lugar de escribir el bit de dirección contrario de
WSBOOL
Versión 2.361.37
Añadido
- Las hojas de cálculo XLS clásico y XLSX exponen ahora
EvaluateFormulaAtpara evaluar fórmulas A1 o R1C1 en modo de solo lectura dentro del contexto explícito de una celda de destino IXLSFormulaEvaluationTemplatecompila un ancla de fórmula inmutable una sola vez y la evalúa de forma repetida en otras celdas medianteEvaluateAtoEvaluateAtWithOptions- Las opciones de evaluación de fórmulas ahora incluyen límites para la longitud de la fórmula, los pasos de elementos sintácticos, la profundidad de recursión y los bytes del arreglo generado, y reportan el agotamiento como
xlfeResourceLimit
Cambiado
- La evaluación de un solo uso y la reutilizable comparten ahora nombres locales de hoja, referencias estructuradas, dependencias de fórmulas sin caché, raíces de arreglos, estado volátil, cancelación y referencias externas explícitamente autorizadas, sin escribir el estado del libro de trabajo
- Los métodos
Calculateexistentes del libro y de la hoja permanecen como fachadas de compatibilidad sobre el evaluador contextual tipado
Corregido
- La evaluación contextual ahora preserva las variantes de error de las fórmulas y distingue las fallas de análisis, de función no admitida, de referencia circular, de referencia externa, de cancelación, de duración de la hoja y de límite de recursos
- Las plantillas R1C1 reutilizables ahora traducen los desfases relativos de fila y columna desde su ancla de compilación cuando se evalúan en otra celda de destino
Versión 2.361.36
Añadido
ConvertExternalDefinedNamesToRefErrorsya está disponible en los libros de trabajo XLS clásico y XLSX para desvincular los nombres definidos confirmados de libros externos sin reescribir las fórmulas ordinarias de celda- Las definiciones malformadas o no admitidas que se omiten se reportan mediante
xlsDiagnosticDefinedNameConversionSkipped
Cambiado
- La conversión reemplaza atómicamente las definiciones seleccionadas por
#REF!nativo, conservando el alcance del libro o de la hoja, la visibilidad, los comentarios, los indicadores de macro y de función integrada, los atributos desconocidos y las partes de vínculos externos
Corregido
- La sintaxis de ranura de nombres definidos externos, como
=[1]!RemoteName, ahora se resuelve a través del vínculo de libro declarado, y las fórmulas dependientes retienen el valor de error de Excel resultante durante el recálculo
Versión 2.361.35
Añadido
TXLSWorkbookWorkspace.Recalculateahora evalúa los nodos de fórmula registrados de XLS clásico, XLSX y ODS en una sola pasada topológica entre libros de trabajo, con detección de componentes fuertemente conexos y propagación de generaciones suciasTXLSWorkspaceRecalcResultreporta la reutilización del grafo, los nodos sucios y evaluados, los ciclos, los dependientes bloqueados, las invalidaciones y los aciertos y errores de la caché en tiempo de ejecución
Cambiado
- El área de trabajo retiene su grafo de dependencias hasta que cambian los registros o la topología de fórmulas, mientras que las ediciones ordinarias de valores únicamente marcan como sucios los nodos del libro afectado y sus dependientes transitivos
- Las lecturas repetidas de celdas externas en una pasada de cálculo comparten una caché exacta de libro, hoja, fila y columna que se invalida antes de cada actualización de fórmula programada
Corregido
- Los vínculos bidireccionales entre libros ya no se tratan como circulares, salvo que el grafo de celdas con fórmula contenga un ciclo real; los miembros del ciclo y sus dependientes bloqueados se invalidan en lugar de regresar valores en caché desactualizados
- Una sesión del área de trabajo fallida o invalidada por un ciclo ahora retiene el estado sucio local del motor, de modo que un recálculo posterior del libro reintenta las fórmulas sin terminar en lugar de considerar completa una pasada parcial
Versión 2.361.34
Añadido
TXLSWorkbookWorkspace.BuildDependencyGraphahora crea un grafo de dependencias entre los libros de trabajo XLS clásico, XLSX y ODS registrados, reteniendo las identidades de libro, hoja, celda, rango rectangular y nombre definido con alcanceTXLSWorkspaceDepGraphexpone consultas de nodos de fórmula, referencias, aristas, dependientes de celda y dependientes de nombres definidos, además de diagnósticos de verificación de candidatos para comprobar el rendimiento
Cambiado
- Los rangos de fórmulas grandes permanecen como intervalos compactos en lugar de expandirse en celdas individuales, mientras que los árboles de intervalos de filas recortan tanto la búsqueda de dependientes como la construcción de aristas sin materializar los valores compactos de la hoja
- Los nombres definidos locales retienen tanto su dependencia simbólica como sus dependencias estáticamente resueltas de celda o rango, mientras que los nombres definidos externos preservan la ranura declarada del libro externo, el nombre y el alcance de hoja
Corregido
- Los nombres definidos ordinarios ya no se borran mientras el analizador de fórmulas comprueba si existe un prefijo opcional de libro externo
Versión 2.361.33
Añadido
TXLSWorkbookWorkspace.OnLoadWorkbookahora puede solicitar un libro externo mediante una política controlada por quien llama, cuando mucho una vez por identidad normalizada, mientras queResolveWithLoaderreporta diagnósticos tipados de no encontrado, error, ciclo y límite de recursosMaxLoadDepth,MaxWorkbookCountyResetLoadAttemptsproporcionan límites explícitos y control de reintentos para la carga de libros externos
Cambiado
- Las solicitudes concurrentes de libros externos ahora comparten un único resultado de carga en curso, y la reentrada anidada se rechaza sin esperar dentro de un ciclo de carga entre hilos; el área de trabajo predeterminada sigue sin realizar acceso al sistema de archivos ni a la red
Versión 2.361.32
Añadido
- Los libros de trabajo XLS clásico exponen ahora
CreateWorkspaceWorkbook,RegisterExternalWorkbook,UnregisterExternalWorkbookyExternalWorkspace, de modo que los libros clásico, XLSX y ODS pueden servir valores de fórmulas externas mediante un área de trabajo única neutral respecto al motor - Las cachés de vínculos externos del XLS clásico ahora decodifican valores numéricos, de cadena, booleanos, de error y vacíos de los registros tipados XCT y CRN hacia una búsqueda dispersa de tiempo constante, sin materializar hojas de cálculo
Cambiado
- La evaluación de fórmulas externas ahora resuelve los nombres de hoja antes de los mecanismos de respaldo posicionales y lee de forma consistente primero un libro activo registrado explícitamente, después una caché de archivo tipada y, al final, regresa
#REF!, mientras que los registros destruidos se revocan sin acceso implícito a archivos ni a la red - Las identidades de libros externos entre comillas pueden contener esquemas URI, letras de unidad de Windows y otros dos puntos sin confundirse con el separador de rangos tridimensionales de hoja, de modo que los IRI de fuentes externas ODF permanecen intactos durante la importación de fórmulas
Versión 2.361.31
Añadido
TXLSWorkbookWorkspace,IXLSWorkspaceWorkbookyTXLSXWorkbook.CreateWorkspaceWorkbookproporcionan una base segura para hilos de identidad y registro de libros externos, con estado de resolución explícito, seguimiento de generación y adaptadores de libro revocables
Cambiado
TXLSXWorkbook.RegisterExternalWorkbookahora conserva las rutas y extensiones, resuelve los objetivos de relación relativos respecto al libro propietario, rechaza los alias ambiguos o los objetivos con el mismo nombre base en lugar de escoger uno en silencio, revoca los registros cuando se destruye un libro de destino y retiene el respaldo tipado de caché de vínculos externos sin acceso implícito a archivos ni a la red
Versión 2.361.30
Añadido
- Las vistas de solo lectura de libros clásico y XLSX ahora pueden evaluar fórmulas bajo demanda mediante
xlsvEvaluateFormulasy reportar el resultado independiente a través deFormulaEvaluation, sin reemplazar las cachés de fórmulas almacenadas
Cambiado
- Las vistas de solo lectura concurrentes ahora aíslan los indicadores de recursión de fórmulas, los resultados escalares, las fórmulas XLSX compiladas y los arreglos y matrices, mientras que las fórmulas externas XLSX usan únicamente cachés de vínculos externos locales del archivo y jamás desreferencian registros de libros activos
Corregido
- Los valores en caché de vínculos externos XLSX ahora resuelven el índice de hoja de base uno que traen los registros XTI externos hacia la entrada correcta de hoja en caché de base cero
Versión 2.361.29
Añadido
- Los libros de trabajo XLSX exponen ahora
IXLSXWorkbookOwner.CreateReadOnlyView, con hojas activas locales a la vista, instantáneas de celdas materializadas y compactas por valor, resultados de fórmulas en caché, texto de fórmulas opcional, un orden seguro de liberación del propietario o la vista y exclusión de escritura de falla inmediata
Cambiado
- Las vistas de solo lectura de XLSX usan únicamente cachés de fórmulas externas almacenadas de manera local y jamás desreferencian registros débiles de libros activos
Versión 2.361.28
Añadido
- Los libros clásicos exponen ahora
CreateReadOnlyVieweIXLSReadOnlyWorkbookViewpara vistas de tiempo constante sobre el modelo compartido, con hojas activas independientes, instantáneas de celdas por valor, resultados de fórmulas en caché, texto de fórmulas opcional, duración del propietario por conteo de referencias y exclusión de escritura de falla inmediata
Versión 2.361.27
Añadido
- Los libros clásico, XLSX y ODS exponen ahora
CreateFormulaCacheReadery la interfaz compartidaIXLSFormulaCacheReaderpara inspeccionar cachés de fórmulas de manera neutral respecto al motor, con invalidación segura del tiempo de vida
Cambiado
- La inspección de la caché de fórmulas compartidas ahora preserva el resultado almacenado independiente de cada miembro, de modo que un seguidor sin valor en caché reporta ausencia en lugar de heredar el valor del miembro raíz
Versión 2.361.26
Añadido
TXLSXWorkbook.TryGetCachedFormulaValuereporta ahora la presencia, la procedencia y el tipo de valor de la caché de fórmulas en XLSX y ODS, sin cálculos ni modificaciones del libro de trabajo
Corregido
- Las cachés de fórmulas XLSX y ODS ahora preservan los resultados faltantes y los vacíos explícitos, las cadenas vacías, el booleano falso, el cero numérico, los errores tipados y las fechas explícitas entre guardado y reapertura, mientras que las fórmulas modificadas ya no serializan resultados en caché desactualizados
Versión 2.361.25
Añadido
- Los libros clásicos exponen ahora
TryGetCachedFormulaValuecon presencia de caché, procedencia y tipo de valor explícitos, lo que permite leer un resultado de fórmula almacenado sin cálculos, devoluciones de llamada de funciones de usuario, descompilación de tokens ni modificaciones del libro de trabajo
Corregido
- Las cachés booleanas y de errores de fórmulas del XLS clásico ahora usan el byte de carga útil BIFF especificado en las fórmulas ordinarias y compartidas, y los resultados de error cargados continúan siendo valores
varErrortipados entre guardado y reapertura
Versión 2.361.24
Añadido
- Los libros de trabajo clásico y XLSX ahora ofrecen una sobrecarga
CreateLoadedCellCursor(Boolean)que puede incluir celdas vacías almacenadas con estilo independiente como instantáneasxlckBlank
Cambiado
- El recorrido opcional de vacíos preserva el orden de hojas, filas y columnas, mantiene comprimido el almacenamiento compacto de XLSX y excluye las coordenadas con formato heredado, además de los marcadores de posición Empty y Null sin estilo
Versión 2.361.23
Añadido
- Los libros de trabajo XLSX exponen ahora
TXLSXWorkbook.CreateLoadedCellCursorpara un recorrido por filas de estado constante de las celdas de valor y de fórmula almacenadas en todas las hojas de cálculo TXLSLoadedCellKindahora incluyexlckError, de modo que los valores de error XLSX almacenados conservan su tipo de valor distintivo
Cambiado
- Los cursores XLSX recorren directamente bloques de filas dispersas materializadas o almacenamiento compacto, sin ordenar celdas ni materializar valores compactados, y las instantáneas de fórmulas regresan el valor en caché almacenado en ese momento sin recálculo
- Los cambios de topología en todo el libro y la liberación del libro invalidan los cursores XLSX por medio de una concesión de tiempo de vida compartida, mientras que las ediciones al contenido de celdas existentes mantienen el recorrido válido y las instantáneas capturadas como propias
Versión 2.361.22
Añadido
- Los libros clásicos exponen ahora
IXLSWorkbook.CreateLoadedCellCursorpara un recorrido por filas de estado constante de las celdas de valor y de fórmula almacenadas en todas las hojas de cálculo TXLSLoadedCellSnapshotregresa identidad propia de hoja, coordenadas de base uno, estilo, tipo de valor, valor y texto de fórmula sin exponer los objetos internos de la celda
Cambiado
- Los cursores de celdas cargadas fallan de inmediato después de cambios en la topología de celdas, la colección de hojas o el reemplazo del modelo del libro, mientras que las ediciones al contenido de celdas existentes mantienen el recorrido válido y las instantáneas capturadas antes sin alteración
Versión 2.361.21
Añadido
- Los almacenes de celdas y las colecciones de hojas de XLS clásico y XLSX exponen ahora contadores de generación estructural independientes para recorridos largos y seguros
XlsValidateStructureGenerationyEXLSLoadedCellCursorInvalidatedproporcionan un contrato único de validación de falla inmediata para los lectores de celdas cargadas
Cambiado
- La creación, eliminación y limpieza de celdas, la reordenación de coordenadas, las transiciones de almacenamiento compacto, las reconstrucciones de índices y las operaciones de agregar, eliminar o mover hojas hacen avanzar la generación correspondiente, mientras que las ediciones al contenido de celdas existentes, el renombrado o la activación de hojas y las mutaciones sin efecto la mantienen estable
Versión 2.361.20
Añadido
TXLSForwardReaderahora acepta entrada ODS a través de la misma superficie de devoluciones de llamada que XLS, XLSX, CSV y TSVPeakRowBufferedBytesySheetPassesStartedexponen el conjunto de trabajo pico de filas lógicas del backend de filas compartido y el conteo de pasadas exitosas por hoja
Cambiado
TXLSForwardReaderahora adaptaTXLSRowCursorpara todos los formatos admitidos, compartiendo límites de filas, proyección de columnas, estado de fórmulas, texto enriquecido, contraseña, registros omitidos y comportamiento de posición del flujo, en lugar de mantener rutas de rastreo separadas- Los índices de hoja del lector directo son de base uno de manera consistente, y las hojas omitidas por
OnSheetno se abren ni se descomprimen
Versión 2.361.19
Añadido
TXLSRowCursorexpone ahora estados explícitos de cerrado, antes del primero, activo, EOF, cancelado y en falla, además de un métodoCancelidempotente que libera el flujo de la hoja activa sin cerrar el origenCurrentRowViewproporciona una vista prestada de la fila actual con verificación de generación, sin duplicar su arreglo de celdas; avanzar, seleccionar una hoja, cancelar, cerrar o destruir el cursor invalida las vistas previas conEXLSRowCursorViewInvalidated- Las aperturas de flujo ahora aceptan
xsoBorrowedoxsoOwned, transfiriendo la propiedad solo tras una apertura exitosa, yPeakRowBufferedBytesreporta el búfer pico estimado de filas lógicas desde la última apertura
Cambiado
- Las fallas de parte de hoja y de inicio de pasada ahora conservan su excepción de lectura original y colocan el cursor en el estado de falla en lugar de parecer una cancelación o un EOF normal; seleccionar explícitamente una hoja restablece la pasada para reintentarla
Versión 2.361.18
Añadido
TXLSDirectCellyTXLSRowCursorCellexponen ahoraHasFormulayFormulaTextAvailable, distinguiendo valores planos, fórmulas con texto disponible y fórmulas cuyo texto está suprimido o no disponibleTXLSDirectReader,TXLSForwardReaderyTXLSRowCursorahora ofrecenIncludeFormulaText; al desactivarlo se preservan los valores en caché, las coordenadas, los estilos y la presencia de fórmulas, evitando la acumulación de texto de fórmulas en los flujos XLSX y ODS
Cambiado
- Los límites de filas y la proyección de columnas ahora se aplican dentro de los backends de XLS, XLSX, ODS, CSV y TSV antes de la asignación de valores, fórmulas y texto enriquecido; los tramos repetidos de columnas ODS saltan directamente entre las columnas seleccionadas y los bloques de filas repetidas se recortan al rango solicitado
- Las opciones de pasada del cursor de filas se congelan mientras una pasada de hoja está activa y vuelven a ser modificables tras un EOF, la selección de hoja o el cierre, lo que evita que una pasada mezcle filtros o configuraciones de decodificación incompatibles
Versión 2.361.17
Añadido
TXLSRowCursorahora abre archivos ODS y flujos propiedad de quien llama, detecta automáticamente los paquetes ODS por su mimetype o sucontent.xml, precarga los nombres de las hojas y transmite en flujo la tabla seleccionada medianteFindFirstyFindNextsin materializar un libro de trabajo
Cambiado
- El recorrido de filas ODS expande de manera diferida las filas y columnas repetidas, omite las celdas cubiertas como valores independientes, preserva las celdas vacías con estilo y los valores de fórmulas en caché, restaura las posiciones de los flujos prestados y reporta los conteos de repetición no válidos o limitados por la cuadrícula mediante
OnSkippedRecord
Versión 2.361.16
Añadido
TXLSRowCursorahora transmite en flujo archivos CSV y TSV o flujos propiedad de quien llama, con detección de BOM UTF-8 y UTF-16, registros con comillas multilínea, comillas de escape, detección automática del delimitador entre coma, punto y coma, tabulación o barra vertical, anulación opcional del delimitador y reconocimiento opcional de tipos numérico, fecha ISO, booleano y error
Cambiado
TXLSForwardReaderyTXLSRowCursorahora comparten un backend de filas de texto pausable, conservando resultados idénticos de devoluciones de llamada y de extracción, mientras liberan las cargas útiles Variant, de fórmula y de texto enriquecido de la fila anterior antes de avanzar
Versión 2.361.15
Añadido
TXLSRowCursorahora abre libros clásicos.xlsdesde archivos o flujos, detecta automáticamente los contenedores compuestos BIFF y regresa resultados de fórmulas numéricos o de cadena en caché, además de las celdasBlankyMulBlankalmacenadas, reteniendo únicamente la fila lógica actual
Cambiado
- Las sobrecargas
Opendel cursor de filas aceptan unTXLSForwardFormatopcional; las aperturas de archivo son dueñas de su flujo BIFF interno, las aperturas de flujo toman prestado el flujo de quien llama y restauran su posición inicial al hacerClose, y las pasadas repetidas deFindFirstbuscan directamente la hoja de cálculo seleccionada
Versión 2.361.14
Añadido
- El cálculo de fórmulas ahora admite
ISFORMULApara celdas individuales, referencias entre hojas y rangos rectangulares, y regresa un arreglo booleano de la misma forma para entradas de rango sin evaluar las fórmulas referenciadas
Cambiado
- Las verificaciones de presencia de fórmulas distinguen valores ordinarios y vacíos, miembros de fórmulas compartidas, miembros de fórmulas de arreglo clásicas y de XLSX, anclas de arreglos dinámicos y elementos secundarios del desbordamiento dinámico; los arreglos generados quedan acotados por
FormulaArrayMemoryLimit - XLSX almacena
ISFORMULAcon el prefijo_xlfn., ODS emite la grafía estándar de OpenFormula y los guardados del XLS clásico rechazan la función futura no admitida sin aplicar un flujo parcial
Corregido
- El análisis del texto de fórmulas ahora reconoce los siete literales de error estándar de Excel, lo que permite que
#REF!se propague por las funciones de solo referencia, mientras que un nombre definido que se resuelve a un escalar reporta#VALUE!en lugar de#NAME?
Versión 2.361.13
Añadido
- El cálculo de fórmulas ahora admite
UNICHARen todo el rango escalar de Unicode, incluidos los caracteres suplementarios y de uso privado, con errores compatibles con Excel para cero, valores fuera de rango, puntos de código suplentes y no caracteres de Unicode - El cálculo de fórmulas ahora admite
BAHTTEXTcon texto de baht y satang tailandeses, redondeo del punto medio a dos decimales lejos de cero, valores negativos, grupos de millones repetidos y entradas finitas en notación científica
Cambiado
UNICHARyBAHTTEXTse aplican elemento a elemento sobre rangos y arreglos generados conservando los errores locales; XLSX almacenaUNICHARcon su prefijo de función futura, mientras queBAHTTEXTcontinúa siendo una función estándar sin prefijo tanto en XLS como en XLSX
Versión 2.361.12
Añadido
- El cálculo de fórmulas ahora admite
COMBINAyPERMUTATIONAcon argumentos no negativos truncados, desbordamiento verificado, difusión de arreglos singleton y errores por elemento, además de matrices identidad deMUNITsin un techo fijo de dimensión - Los libros de trabajo clásico y XLSX exponen
FormulaArrayMemoryLimitcon un valor predeterminado de 64 MiB para acotar las cargas útiles de fórmulas de arreglo generadas, incluidos los procesos paralelos de recálculo de XLSX
Cambiado
PERMUTATIONAusa exponenciación logarítmica,COMBINAacorta su recurrencia multiplicativa yMUNITasigna una matriz numérica compacta escribiendo únicamente su diagonal
Corregido
- Los arreglos de fórmulas numéricas ya no se clasifican como números escalares, y los libros clásicos recién creados aplican los límites de cuadrícula BIFF97 durante el cálculo de fórmulas antes de su primer guardado
Versión 2.361.11
Añadido
- El cálculo de fórmulas ahora admite
COT,ACOT,COTH,ACOTH,CSC,CSCH,SECySECHcon reglas de valor principal, dominio, singularidad, entrada finita y argumentos grandes para operandos escalares y de arreglos con difusión
Corregido
- Las funciones de fórmula mapeadas ahora conservan las fallas escalares directas como valores de error de hoja de cálculo, emplean ramas recíprocas y de cola exponencial resistentes a la cancelación para entradas válidas grandes, escriben nombres
_xlfn.exactos sin_xlws.y rechazan de forma limpia las fórmulas BIFF clásicas no admitidas
Versión 2.361.10
Añadido
- El cálculo de fórmulas ahora admite
CEILING.MATHyFLOOR.MATHcon argumentos de significancia y modo omitibles, una significancia independiente del signo, límites precisos de múltiplos decimales y las direcciones especificadas del modo para números negativos
Cambiado
- Las funciones de arreglo a nivel de fórmula pueden compartir ahora un mapeador lineal de elementos con difusión de fila única y de columna única, instantáneas únicas de rango y errores de conversión o cálculo por elemento; XLSX usa el prefijo
_xlfn.para ambas funciones nuevas, mientras que los guardados BIFF clásicos rechazan de forma limpia las fórmulas no admitidas
Versión 2.361.9
Añadido
- El cálculo de fórmulas ahora admite
SORTBYcon ordenamiento estable por varias llaves de filas o columnas, direcciones ascendente o descendente independientes, valores predeterminados cuando se omite la dirección, llaves de rango o de arreglo generado e instantáneas únicas de origen y llaves, seguidas de un ordenamiento O(n log n)
Corregido
- Los guardados BIFF clásicos ahora fallan de forma limpia cuando una fórmula no puede representarse, en lugar de reportar éxito tras rechazarse un identificador interno de función futura, mientras que XLSX escribe
SORTBYcon_xlfn.y nunca agrega_xlws.
Versión 2.361.8
Cambiado
- El modo de mostrar ceros de la hoja ahora usa una única decisión sobre el valor en bruto en las rutas del visor de libros, vista previa, impresión, mapa de bits, EMF, SVG, PDF, HTML clásico y HTML de XLSX; el cero numérico real se oculta antes del formato numérico y de la medición del texto, mientras que el modo de visualización de fórmulas conserva la precedencia
Corregido
- Las vistas de hojas XLSX ahora analizan, escriben y copian el estado de mostrar ceros mediante un solo ajuste, manejan correctamente la base de fechas 1904, preservan los elementos visuales del formato condicional y la geometría de los hipervínculos en las celdas con cero oculto, y dejan intactos los valores almacenados, el texto con formato público y la salida CSV y ODS
Versión 2.361.7
Cambiado
- El modo de visualización de fórmulas de la hoja ahora usa una única decisión de texto consciente de las celdas protegidas en las rutas del visor de libros, vista previa, impresión, mapa de bits, EMF, SVG, PDF, HTML clásico y HTML de XLSX; el texto de las fórmulas usa alineación de texto bajo la alineación General, preserva la alineación explícita y recibe un ancho efectivo de diseño doble no persistente sin desbordarse hacia las celdas vecinas
Corregido
- Las vistas de hojas XLSX ahora aceptan
showFormulas="1"yshowFormulas="true", preservan el ajuste durante las copias de hojas dentro del mismo libro y entre libros, y emiten el estadosheetViewrequerido sin alterar las cachés de fórmulas, la salida CSV, la persistencia ODS ni el contrato público de valores con formato
Versión 2.361.6
Cambiado
- Las fórmulas de libros externos XLSX ahora comparten un analizador léxico de prefijos de libro consciente de la gramática en la conversión
OnlyExternal, el diagnóstico de fórmulas, la vinculación de cálculo, la copia entre libros y la serialización de fórmulas generadas; las ranuras de vínculos numéricas son canónicas, mientras que las referencias estructuradas, los literales de cadena, los índices malformados y los prefijos de nombre de archivo ambiguos generan una falla segura TXLSXExternalLinkahora expone suRelationshipIdde origen, suSourceSlotde base uno y suLinkKindtipado, de modo que las entradas de referencias externas de libro, DDE, OLE y sin resolver pueden auditarse sin inferir la identidad a partir del orden de la colección o del texto del destino
Corregido
- Cambiar el destino de un vínculo externo XLSX o su lista de hojas ahora invalida las vinculaciones de fórmulas externas compiladas por revisión en lugar de volver a rastrear todas las celdas, y las partes de vínculos externos DDE u OLE sin cambios y sin archivos de relaciones se conservan byte a byte durante el guardado
Versión 2.361.5
Corregido
- Las ranuras de fórmulas de libros externos XLSX ahora siguen el orden del documento de las referencias externas de
workbook.xmlen lugar del orden del archivo de relaciones; las relaciones faltantes, sin resolver o de tipo incorrecto retienen ranuras vacías para que las referencias[N]posteriores no cambien de posición
Versión 2.361.4
Cambiado
- La congelación de fórmulas del XLS clásico con
OnlyExternalahora clasifica las referencias BIFF conservadas y convierte únicamente las fórmulas confirmadas de libros externos, mientras que las referencias internas, de complemento, DDE/OLE y malformadas permanecen como fórmulas
Corregido
- Los resultados de fórmulas que comienzan con un signo de igualdad o un apóstrofo continúan siendo cadenas literales durante la conversión de valores, y los grupos de fórmulas de arreglo se toman como instantánea antes de liberar cualquier fórmula raíz o de desbordamiento
Versión 2.361.3
Cambiado
- Los vínculos auxiliares y los índices de hojas externas del XLS clásico usan ahora una clasificación tipada acotada para los registros propios, de la misma hoja, de complemento, de libro externo, DDE/OLE, sin uso y desconocidos
Corregido
- Las cargas útiles malformadas de vínculos auxiliares se conservan byte a byte en lugar de reconstruirse como un tipo de vínculo distinto, y las tablas de hojas externas truncadas ya no leen más allá de los datos de su registro
Versión 2.361.2
Corregido
- Las fórmulas del XLS clásico ahora resuelven el índice XTI de base cero de los tokens de nombres definidos externos hacia la entrada interna correcta de hoja externa, incluida la primera entrada
Versión 2.361.1
Corregido
- El escritor directo de XLSX ahora emite el indicador de supresión
showDropDowndel SpreadsheetML base únicamente cuandoShowDropDownestá deshabilitado, conservando la semántica pública de la API orientada a la visualización
Versión 2.361.0
Añadido
- Las series de gráficos ahora cuentan con
CategoriesMultiLevel: al establecerlo, las categorías se emiten comomultiLvlStrRef(etiquetas de eje jerárquicas) en lugar de una referencia de cadena plana, con recuperación en ciclos de guardado y reapertura a partir de gráficos guardados
Versión 2.360.0
Corregido
- Los comentarios de nombres del XLS clásico ahora usan el identificador de registro
NAMECMTcorrecto ($0894); el identificador usado anteriormente ($0019) pertenece aWINDOWPROTECTconforme a las especificaciones BIFF
Añadido
WindowProtecteden los libros clásicos conserva el indicador de protección de ventana del libro en ciclos de guardado y reapertura mediante el registroWINDOWPROTECT($0019), dando prioridad a los cuerpos capturados en bruto a menos que la propiedad se escriba explícitamente
Versión 2.359.0
Añadido
- Las tablas de datos de los gráficos exponen los interruptores independientes
showHorzBorder/showVertBorder/showOutlineen lugar de dibujar siempre todos los bordes - Los gráficos de líneas ahora tienen líneas de caída (
HasDropLines) y los gráficos de barras apiladas cuentan con líneas de serie (HasSeriesLines); ambos se conservan en ciclos de guardado y reapertura, y las series pueden quitarse de la leyenda una por una medianteLegendDeletedsin dejar de trazarse
Versión 2.358.0
Añadido
- Las bandas de informe ahora tienen semántica de banda fija y de conjunto de datos vacío:
EmptyBandPolicyconserva, limpia o elimina las filas de la plantilla cuando el conjunto de datos está vacío (sin dejar marcadores de posición sin resolver),FixedBandescribe las copias sobre las filas de abajo sin insertar nada para las bandas de formularios tipo superposición, yDeleteLastRowcompacta la copia final para que el contenido posterior se una sin huecos (comportamiento del rango X)
Versión 2.357.0
Añadido
- La exportación PDF puede incrustar fuentes OpenType independientes con contornos CFF por medio de un flujo OpenType
FontFile3y un descendienteCIDFontType0; los modos automático y completo retienen el programa completo, mientras que un subconjunto requerido que no esté disponible falla antes de aplicar la salida OnGetFontDirectoriessuministra directorios separados por punto y coma para una familia y estilo de fuente solicitados; los árboles aceptados se examinan de forma recursiva una sola vez y se indexan por los metadatos internos de la fuente para una resolución de respaldo en caché
Cambiado
- Las fuentes incrustadas con datos GPOS de OpenType o de kerning heredado ahora usan avances de glifos posicionados tanto para texto simple como para scripts complejos, manteniendo la medición, el ajuste de línea, la alineación y la colocación de glifos en el PDF de manera consistente
Versión 2.356.0
Añadido
- La incrustación de fuentes PDF se convierte en una política configurable de cuatro modos:
FontEmbeddingselecciona el comportamiento histórico automático, la creación de subconjuntos solo con las fuentes requeridas, la incrustación del programa completo o fuentes de solo mapa cuyos programas se eliminan mientras sobreviven la asignación CID y las tablas ToUnicode; PDF/A rechaza la salida de solo mapa - El evento
OnFontEmbedse dispara una vez por cada fuente Unicode antes de resolver las métricas y las asignaciones de glifos, recibe su nombre y ruta de archivo, y puede aceptar un modo por fuente o bytes de una fuente de reemplazo mediante el contrato explícitoHandled
Versión 2.355.0
Añadido
- El recálculo del XLS clásico ahora usa un grafo de dependencias construido de manera diferida, propaga los cambios de entrada únicamente a los dependientes transitivos, recalcula las fórmulas volátiles en cada pasada y evalúa las fórmulas en orden de dependencia en lugar de volver a rastrear todo el montículo disperso de celdas
- Las referencias circulares del XLS clásico ahora siguen
EnableIteration,MaxIterationsyMaxIterationChange; los componentes fuertemente conexos aíslan los ciclos independientes, los iteran de forma determinista y luego calculan las fórmulas aguas abajo - Los archivos asociados de PDF/A-3 ahora cuentan con una sobrecarga detallada de
AddAttachmentcon nombres para mostrar Unicode, descripciones, horas de modificación, nombres MIME con escape, metadatos de tamaño en bytes y relaciones Source, Data, Alternative, Supplement o Unspecified TXLSPDFWritercrea documentos PDF independientes sin necesidad de un libro de trabajo, con tamaños de página explícitos, salida multipágina, rectángulos, líneas, elipses, texto con estilo medido, transformaciones de coordenadas, recorte rectangular y control del estado de gráficos
Cambiado
- Al deshabilitar
UseFullPrecisionen XLS clásico, los resultados en caché de fórmulas y de tablas de datos What-If ahora se redondean a la precisión numérica mostrada efectiva antes de que las consuman las fórmulas dependientes, incluidos los formatos de porcentaje y el redondeo del punto medio lejos de cero
Corregido
- El recálculo de fórmulas clásico ahora usa las coordenadas de celda nativas de base cero, mantiene las fallas de cálculo fuera de la caché de aciertos y preserva la propagación de errores a través de las funciones de arreglo dependientes
Versión 2.354.0
Añadido
- Los ejes de los gráficos ahora cuentan con la enumeración de modo de cruce (
Crosses: autoZero / max / min, que se emite comocrossescuando no se establece unCrossesAtexplícito) y estilos de marcas principales y secundarias por eje (in,out,cross); todo se conserva en ciclos de guardado y reapertura AutoTitleDeleteden los gráficos reemplaza el indicador fijo de título automático y suprime el título derivado de las series al activarse
Versión 2.353.0
Añadido
- Las series de gráficos ahora tienen
Smooth/SmoothSetpara el trazado de líneas curvas yMarkerFillColor/MarkerBorderColorpara colores de marcador explícitos; ambos persisten entre guardado y apertura, y el renderizador compartido dibuja los segmentos suavizados como curvas cuadráticas y aplica los colores del marcador
Versión 2.352.0
Añadido
- El formato del área del gráfico sobrevive a los ciclos de guardado y reapertura:
RoundedCorners, los colores explícitos de fondo y borde del gráfico y el color de fondo del área de trazado persisten entre guardado y apertura, y el renderizador de gráficos compartido aplica los colores de fondo y borde en lugar de dibujar siempre blanco sobre gris - Los interruptores de protección del gráfico se conservan en ciclos de guardado y reapertura detrás de un único maestro:
ProtectionEnabledjunto conProtectedChartObjects,ProtectedDataEditing,ProtectedFormatting,ProtectedSelectionyProtectedUserInterfaceemiten y analizan el elementoprotectionde OOXML
Versión 2.351.0
Cambiado
- Los gráficos de barras y columnas del renderizador de paginación compartido ahora siguen las opciones de diseño del grupo de trazado: GapWidth dimensiona el grupo, Overlap ensancha y acerca las barras vecinas, y las agrupaciones apiladas / apiladas 100 % acumulan una barra de grupo completo por categoría en lugar de dibujar las series lado a lado
Versión 2.350.0
Añadido
- La copia de rangos entre libros reasigna ahora cada estilo de celda por valor a los grupos de fuentes, rellenos, bordes, formatos numéricos, alineaciones y protecciones del libro de destino, de modo que
CopyRangeToyCloneRangeToentre dos libros abiertos mantienen su formato con independencia del orden de los grupos - Los libros XLS clásico conservan en ciclos de guardado y reapertura las propiedades de documento integradas numéricas y de fecha:
CreatedDate,LastSavedDate,RevisionNumberyEditTimeMinutespersisten a través del flujo OLE SummaryInformation; los valores cero se omiten y un borrado completo los elimina
Versión 2.349.0
Añadido
- Los libros XLS clásico exponen el estado de protección de revisiones del libro compartido mediante propiedades estructuradas:
SharedRevisionProtectedySharedRevisionPasswordHashsobreviven a los ciclos de guardado y reapertura, mientras que los cuerpos de registro en bruto capturados de archivos analizados siguen teniendo prioridad a menos que las propiedades se escriban explícitamente - Manejo del cifrado para los informes:
TXLSCompiledReportTemplate.CreateEncryptedabre directamente una plantilla protegida por contraseña, yRunToEncryptedFileejecuta el informe y escribe un resultado cifrado ECMA-376 en una sola llamada
Versión 2.348.0
Añadido
- Opciones de pegado desde el portapapeles para ambos motores:
PasteFromClipboardacepta el modo de solo valores (conservar los resultados en caché, omitir fórmulas, formatos y combinaciones) y los modos de inserción de filas / columnas, que desplazan el contenido existente antes de colocar el bloque - Los lectores directos reportan el contenido omitido: el lector directo, el cursor de filas y el lector de avance exponen
OnSkippedRecord, que se dispara cuando se omite una referencia de celda malformada o cuando un rastreo de hoja BIFF se aborta por registros truncados o que no coinciden
Versión 2.347.0
Añadido
- Combinadores de conformación de tablas para informes:
Filtertransmite en flujo las filas coincidentes de manera diferida,Sortrealiza un ordenamiento estable por varias llaves yDistinctconserva la primera fila por tupla de llaves - Adaptadores de orígenes de datos:
FromDataSettoma una instantánea de unTDataSetabierto en una tabla de informe (los nombres de campo se convierten en columnas y se restaura la posición del conjunto de datos), yFromObjectsasigna a columnas las propiedades publicadas de listas y arreglos de objetos arbitrarios - Bandas de informe bidireccionales:
RunBidirectionalpermite que cada fila maestra genere sus propias columnas a partir de una tabla hija relacionada, produciendo distribuciones de columnas irregulares donde las filas más cortas dejan en blanco las copias sobrantes PreprocessAndRunejecuta una plantilla dos veces: la primera pasada rellena valores y ejecuta directivas estructurales para que la plantilla se adapte a los datos, y la segunda recompila el libro de trabajo reestructurado y rellena los marcadores de posición restantes
Versión 2.346.0
Añadido
- Los marcadores de posición de informes aceptan un valor predeterminado:
{{name;fallback}}escribe el texto de respaldo cuando la llave falta o está vacía - Las expresiones de informes ahora cuentan con
dbvalue(table, row, field[, default])ydbcount(table)para leer cualquier tabla registrada en el contexto de datos por fila y columna, además detonumber(text)para convertir cadenas en números y las referencias relativasref(rowOffset, colOffset)que siguen las copias de bandas; las plantillas, los ejecutores y las bandas exponen una propiedadDataContext - Una celda que contenga únicamente
{{=formula(...)}}ahora escribe una fórmula viva en la celda en lugar de texto plano, y las demás expresiones aisladas conservan su tipo evaluado (los números continúan siendo numéricos) - Nuevas directivas estructurales de informes:
{{#imgsize zoom=150}}reescala la imagen anclada en la celda de la directiva,{{#comment text}}adjunta un comentario de celda,{{#html <b>bold</b>}}introduce un fragmento en el texto enriquecido, y{{#sheetvisible Sheet false}}/{{#deletesheet Sheet}}controlan la visibilidad y la eliminación de hojas de cálculo
Versión 2.345.0
Añadido
- Los libros de trabajo XLSX ahora cuentan con una política de recálculo al guardar:
RecalcBeforeSaveselecciona el comportamiento manual (predeterminado), recalcular si hay cambios pendientes o recalcular siempre al guardar un archivo RecalcNeededreporta si alguna celda con fórmula o edición capturada está pendiente de cambios, yRecalcCellrecalcula el libro de trabajo y regresa el valor recién calculado de una sola celda por hoja, fila y columna
Versión 2.344.0
Añadido
- Las plantillas de informes admiten directivas estructurales en el texto de las celdas:
{{#delete A2}}limpia el rango con nombre,{{#format fmt=0.00 bold fill=FFFF00}}aplica formatos numéricos, negrita, cursiva, fuente y colores de relleno a la columna por encima de la celda de la directiva, y{{#aggregate sum A2:A99}}escribe fórmulas del estilo=SUM(A2:A99); todo se ejecuta después de rellenar los marcadores de posición de valores, las celdas de directivas se consumen a continuación y los verbos de directiva desconocidos siguen reportándose como diagnósticos de plantilla
Versión 2.343.0
Añadido
- El escritor ZIP produce archivos ZIP64: las entradas en o más allá de los límites de tamaño de 32 bits reservan un campo adicional ZIP64 en su encabezado local con campos clásicos centinela, los registros del directorio central emiten tamaños y desfases de 64 bits con un incremento de la versión requerida, y el registro de fin de directorio central va precedido del registro EOCD de ZIP64 y su localizador siempre que algún campo clásico se sature
- Los límites de tamaño de entradas y archivos del lado de escritura suben a 16 GB y 64 GB respectivamente; las protecciones de descompresión del lado de lectura permanecen sin cambios
Versión 2.342.0
Añadido
- Las imágenes incrustadas incluyen metadatos de accesibilidad:
AltTextyAltTextTitleen cada imagen se serializan como los atributosdescrytitledel dibujo y se vuelven a cargar en el modelo tipado para los libros de trabajo que no reproducen el XML de ancla en bruto
Cambiado
- Las partes de segmentaciones y escalas de tiempo ya se conservaban sin pérdidas a través de la capa de paquete opaca (verificado de extremo a extremo en esta versión); el contrato de conservación ahora queda asegurado por una prueba de regresión que cubre la apertura y el nuevo guardado de paquetes con segmentaciones
Versión 2.341.0
Añadido
- Los ejecutores de informes pueden autoajustar la salida terminada:
AutofitModeselecciona pasadas de fila, de columna o ambas sobre cada hoja después de aplicar todos los destinos y antes de la serialización, yAutofitAdjustmentagrega un margen adicional opcional sobre los tamaños medidos - Las filas con ajuste de texto se dimensionan a partir del número de líneas medido contra el ancho de la columna, de modo que el texto de celda multilínea producido por plantillas hace crecer la fila igual que lo haría el Autoajuste propio de Excel
Versión 2.340.0
Añadido
- Las exportaciones PDF pueden establecer el modo inicial del visor —marcadores, miniaturas, pantalla completa, contenido opcional o adjuntos— mediante la entrada
/PageModedel catálogo - Las exportaciones PDF pueden definir una acción de apertura que salte a la página elegida con un factor de zoom explícito o que abra el panel de marcadores cuando se carga el documento
- Los metadatos XMP ahora incluyen los identificadores
DocumentIDeInstanceID, un eventoxmpMM:History, fechas de modificación y de metadatos, y la declaracióndc:formatque esperan los validadores de archivado
Versión 2.339.0
Añadido
- Una canalización de impresión física: el nuevo
TXLSPrintDocumentimprime hojas de cálculo, libros de trabajo o todas las hojas visibles por medio del modelo de paginación compartido, con ventanas de páginas, intercalado de copias, título de documento y eventos de antes de nueva página / después de generar página - La vista previa del visor de libros de trabajo ahora incluye modos de zoom —ajustar a página, ajustar al ancho o un factor explícito del 25 % al 400 %—, con zoom mediante Ctrl+rueda del mouse, paso de páginas con el mouse y desplazamiento horizontal cuando la página ampliada rebasa la ventana
Versión 2.338.0
Añadido
- El renderizado de gráficos dibuja el eje de valores: marcas y etiquetas numéricas alineadas a la derecha a lo largo del borde izquierdo, líneas de división principales cuando están habilitadas, escala en unidades de presentación, orientación invertida y limitación logarítmica
- Las series asignadas al eje de valores secundario se mapean con respecto a su propia escala, de modo que los gráficos combinados mantienen magnitudes primaria y secundaria independientes
- Los gráficos de burbujas dibujan burbujas escaladas por área derivadas de la columna de tamaño de burbuja en lugar de puntos de marcador fijos
- Los gráficos en memoria resuelven sus rangos de valores, categorías y burbujas contra la hoja propietaria cuando las cachés están vacías, de modo que los gráficos recién creados se renderizan de manera idéntica a los cargados
- El modelo de gráficos ahora cuenta con tamaño de orificio del anillo editable, ángulo de la primera porción, estilo de radar y tipo pie-of-pie, posición y modo de división, tamaño del trazado secundario y ancho del hueco, todo persistido entre guardado y carga
Corregido
- Los gráficos de categorías cuyos puntos traen valores pero ninguna categoría numérica ya no abortan el renderizado con un marcador de posición, lo que antes suprimía las marcas, las líneas de división y la salida de series en todos los gráficos de columnas, barras y líneas
Versión 2.337.0
Añadido
- La salida paginada puede representar los comentarios de celda como un listado al final mediante el nuevo modo
PrintCommentsdel exportador SVG y del modelo de paginación: dirección de celda, autor y texto aparecen debajo de la última fila de datos de la hoja - Los objetos de dibujo con nombre se exportan como imágenes PNG al DPI y la escala configurados mediante
ExportObjectAsPNG, con una contraparte de solo mediciónGetObjectSizeque regresa las dimensiones del objeto en puntos sin renderizarlo - Las anclas de formas de texto fuera del rango usado ahora amplían la superficie impresa, como ya lo hacían los gráficos y las imágenes
Cambiado
- El renderizador de paginación guarda en caché las fuentes de celda resueltas por pasada y memoiza las mediciones de texto repetidas, eliminando las lecturas redundantes del grupo de fuentes y las llamadas de medición de GDI en los bucles de reducir hasta ajustar y de ajuste de línea
Versión 2.336.0
Añadido
- La rotación del texto de celda ahora se representa en la salida de imagen de página, SVG, impresión y vista previa: los ángulos de 1 a 90 grados en sentido antihorario y horario giran alrededor del centro de la celda, y la forma apilada 255 emite una letra por línea
- Las celdas con subíndice y superíndice se representan con la línea base desplazada y un tamaño de glifo reducido en lugar de perder su alineación vertical
- Las secciones de encabezado y pie de página respetan sus códigos de formato de tamaño en puntos
&nny de color&Ken todas las salidas controladas por la paginación - Los anchos de columna en la salida paginada se derivan del ancho máximo de dígito medido de la fuente Normal del libro de trabajo, de modo que los libros basados en fuentes distintas de Calibri 11 pagan con límites de columna exactos al estilo de Excel
- Las hojas de cálculo con un color de cuadrícula clásico personalizado dibujan sus líneas de división en esa entrada de la paleta en lugar del gris fijo predeterminado
Versión 2.335.0
Añadido
- Cerca de setenta funciones clásicas de hoja de cálculo ahora se evalúan, además de analizarse: el grupo de matemáticas y trigonometría
ATAN2 ASIN ACOS SINH COSH TANH ASINH ACOSH ATANH EVEN ODD, el grupo de fecha y horaTIME HOUR MINUTE SECOND DATEVALUE TIMEVALUE DAYS360, el grupo de finanzasMIRR IRR IPMT PPMT DB,TRANSPOSE TYPE N ADDRESS ROMAN HYPERLINK MAXA MINAy las grafías anteriores a 2010 de la familia de distribución y estadística, comoNORMSDIST TDIST CHIDIST FDIST POISSON QUARTILE PERCENTILE PERCENTRANK COVAR CHITEST GAMMALN, que redirigen a las implementaciones con punto que comparten sus listas de argumentos
Corregido
- Las formas heredadas de la CDF normal de un argumento, como
NORMSDIST, calculaban una aproximación de la función de error con una escala incorrecta MIRRcapitalizaba los flujos de efectivo positivos con un exponente de periodo corrido en uno, desviando los resultados de los valores de Excel
Versión 2.334.0
Añadido
- Los marcadores de posición de bandas de informe que constan de un único campo de valor ahora escriben el tipo de dato en bruto en la celda de destino: los números siguen siendo numéricos, las fechas permanecen como celdas de fecha y reciben el formato de fecha predeterminado cuando la celda es General, y los booleanos conservan su tipo de celda, de modo que las referencias posteriores de SUM, ordenamiento y gráficos funcionan en los informes generados
- Los estilos de tabla personalizados ahora incluyen el conjunto completo de secciones, entre ellas las de subtotal dinámico, subtítulo, fila en blanco y campo de página, con nombre de fuente, tamaño, cursiva, tamaño de franja y bordes de los cuatro lados por sección mediante
SetSectionEx, además de los indicadorespivot/table, las propiedades de libro de trabajoDefaultTableStyleName/DefaultPivotStyleNamey la conservación completa en carga de estilos, secciones y atributos dxf - Abrir un libro de trabajo XLSX cifrado sin contraseña ahora dispara
TXLSXWorkbook.OnPasswordcon el mismo contrato de reintentos que el motor clásico, lo que permite pedir la contraseña por GUI sin saber de antemano que el archivo está cifrado - Guardar libros clásicos BIFF5 con contraseña ahora aplica la ofuscación XOR, y los libros BIFF8 pueden seleccionar RC4 estándar mediante
EncryptionType, con lo que se completa la matriz de cifrado clásica junto al valor predeterminado RC4 CryptoAPI existente - El renderizado del texto de hojas en la salida de imagen de página, SVG, impresión y vista previa ahora respeta la alineación vertical y el ajuste de línea de WrapText con corte de líneas ávido, en lugar de recortar las celdas ajustadas a una única línea centrada
Corregido
- Las celdas de error ahora muestran su literal de error de Excel, como #DIV/0! o #REF!, en todas las rutas de renderizado en lugar de un texto vacío indefinido
- Las secciones de estilos de tabla personalizados se escriben en la forma
tableStyleElementdel esquema para que Excel reconozca el estilo, y la fuente de una sección ya no pierde su configuración de negrita - Las instantáneas de bandas de informe conservan el valor de todas las columnas vinculadas cuando una banda crece más allá de su capacidad inicial
Versión 2.333.0
Añadido
TXLSPDFSignature.CertificationPolicypuede crear una firma de certificación DocMDP que no permite cambios, permite llenar y firmar formularios, o permite llenar y firmar formularios y agregar anotaciones; los catálogos certificados hacen referencia a la firma por medio de/Perms, la salida certificada ordinaria usa PDF 1.5, y la certificación incompatible con PDF/A-1 se rechaza antes de modificar el flujo de destino
Versión 2.332.0
Cambiado
- El PDF etiquetado automático ahora emite una estructura de tabla completa con filas, celdas de encabezado y de datos semánticas, identificadores densos de contenido marcado por página, asignaciones exactas en el árbol de elementos primarios, extensiones de fila y columna de celdas combinadas y aislamiento de artefactos para la decoración de página, los gráficos, las imágenes, los encabezados y los pies
Corregido
- Reutilizar un exportador PDF ahora limpia las ranuras de objetos binarios entre documentos, evitando que un perfil ICC, una imagen u otro flujo de una exportación anterior reemplace a un objeto recién asignado cuando cambia la numeración de objetos
Versión 2.331.0
Añadido
- Una fachada de dibujo XLSX unificada expone el orden de imágenes, gráficos, cuadros de texto, anclas conservadas y grupos combinados, con operaciones de avance, retroceso, traer al frente, enviar al fondo, agrupación consciente de transformaciones y desagrupación tras guardar y volver a abrir que conservan las relaciones de dibujo
- Los estilos con nombre admiten partes de formato vinculadas automáticas o explícitas mientras conservan las anulaciones locales, y los 60 estilos de tabla integrados claros, medios y oscuros se resuelven a través de las rutas de formato compartidas de HTML, PDF, imagen, vista previa y visor
TXLSPDFBookmarkadmite marcadores Unicode jerárquicos, relaciones de hermanos e hijos, colores, títulos en negrita o cursiva y descendientes expandidos o contraídosTXLSPageImageExporter.ExportAllAsTiffescribe las páginas seleccionadas en un flujo o archivo como un único TIFF multipágina comprimido con LZW, con progreso, cancelación y reemplazo atómico de archivos- Las aperturas de XLS clásico pueden detenerse después de los metadatos globales o buscar directamente hojas de cálculo seleccionadas mediante desplazamientos
BOUNDSHEETvalidados, incluido el reposicionamiento de flujos cifrados TXLSFormatSnapshotcaptura un formato de celda clásico completo de forma independiente de su libro de trabajo de origen yIXLSRange.ApplyFormatlo aplica a rangos de celdas, filas o columnas- Las escrituras masivas tipadas XLSX compatibles en orden de filas usan almacenamiento RLE compactado, con estadísticas públicas de celdas compactadas y bytes, más una materialización única transparente para identificadores de objetos estables
Cambiado
- Las celdas XLSX vacías solo con estilo comparten cargas útiles con recuento de referencias con ediciones locales de copia al escribir, compactación automática en las rutas de formato masivo, actualización de estilos con nombre, copia, ordenación, parche de formato, guardado y carga, y bytes de carga útil evitados medibles
- Los arreglos dinámicos se transmiten directamente a agregados escalares, las búsquedas exactas repetidas reutilizan cachés de rango incrementales tipados y los tokens de fórmula inmutables sin estado se comparten entre compilaciones
- Los arcos elípticos usan una subdivisión adaptativa de Bézier cúbico impulsada por la planitud, compartida por la salida PDF, SVG y de mapa de bits, aumentando la precisión solo donde la escala o la excentricidad lo requieren
- La salida del paquete XLSX ahora estabiliza las cadenas compartidas, los hipervínculos, las relaciones y el orden de las partes, de modo que la construcción inversa produce paquetes deterministas idénticos byte a byte
- El lector directo unificado de XLS, XLSX, CSV y TSV mantiene la memoria acotada; las continuaciones de cadenas compartidas BIFF8 se desbordan más allá de un umbral configurable mientras conserva las protecciones de proyección, hoja seleccionada, cifrado y entrada malformada
Corregido
- La vinculación de paquetes C++Builder Win64 ya no emite vtables duplicadas de listas de objetos genéricos de Delphi provenientes de las unidades de comparación de libros de trabajo y de verificación de importación
Versión 2.330.0
Añadido
TXLSXWorksheet.Subtotalinserta filas de subtotales agrupadas, una fila de total general configurable, fórmulas, formato visible heredado y niveles de esquema compatibles con Excel para rangos de datos ordenadosGetCellVisibleFormatresuelve el formato de hoja de cálculo, fila, columna, superposición de rango y celda explícita sin materializar una celda vacíaCheckDataValidationprueba un valor candidato contra las reglas que cubren una celda y puede confirmarlo de forma atómica solo cuando es válido
Cambiado
- Los memos de exploración de búsqueda usan claves binarias exactas compactas y una única búsqueda de carga útil por acierto de caché, lo que reduce la asignación de recálculo y el trabajo de la tabla hash sin cambiar las comparaciones de búsqueda
- La exportación CSV de ancho fijo rellena cada campo en una sola operación, manteniendo el tiempo de relleno lineal con respecto al ancho de salida configurado
Corregido
- Las exploraciones hacia atrás de
ReplaceTextInahora invocan las devoluciones de llamada de reemplazo en el orden de exploración inverso solicitado - Las celdas con estilo sin valor ni fórmula ya no bloquean el desbordamiento de texto de las celdas vecinas en el renderizado SVG, de imagen y de vista previa
- La salida numérica de XLS clásico normaliza el cero negativo además de los valores no finitos y subnormales antes de escribir los registros numéricos BIFF
Versión 2.329.0
Añadido
A1ToR1C1convierte las fórmulas en estilo A1 a notación R1C1 (desplazamientos relativos, formas absolutas con$, rangos e idas y vueltas a través deR1C1ToA1), completando ambas direcciones de la conversión de estilo de referencia
Cambiado
- El memo de búsqueda del recálculo omite los vectores de exploración de menos de cinco celdas en
VLOOKUP,XLOOKUP/XMATCHyMATCH, donde una exploración en bruto es más barata que la ida y vuelta del diccionario
Versión 2.328.0
Añadido
- El renderizador de página compartido detrás de la salida SVG, de imagen y de vista previa ahora pinta los estilos de celda XLSX: rellenos sólidos (con alfa), fuentes y colores por celda, alineación horizontal con el valor predeterminado numérico a la derecha de Excel, combinación de bordes estilo Excel donde gana el borde compartido más pesado, ajuste para encajar que escala la fuente a la columna y desbordamiento del texto largo en las celdas vacías vecinas consecutivas
Versión 2.327.0
Añadido
- El cargador CSV/TSV gana directivas de importación por columna (
cctText,cctNumber,cctDate,cctBoolean,cctSkip) que reflejan el asistente de importación de texto de Excel, de modo que las columnas individuales se pueden forzar a texto para conservar los ceros iniciales, convertir a un tipo u omitir de la importación - Importación de texto de ancho fijo: asignar anchos de campo cambia el cargador del análisis por separadores al corte por posición de carácter, y el guardador puede emitir columnas de ancho fijo rellenadas con espacios y truncamiento
Versión 2.326.0
Añadido
- La búsqueda en hojas de cálculo XLSX gana métodos de ventana
FindTextInyReplaceTextInque limitan la exploración a un rango de celdas rectangular, más un indicador de orden de exploración por columnas que refleja el modo Buscar: Por columnas del cuadro de diálogo Buscar y reemplazar de Excel; la exploración hacia atrás ahora acepta un anclaje cero para comenzar desde la esquina inferior derecha - El guardado ahora se protege contra fórmulas más largas que el límite de 8192 caracteres de Excel, fallando rápidamente con la celda problemática identificada en lugar de escribir un libro que Excel abriría en modo de reparación
Corregido
- Los valores numéricos de celda no finitos (NaN e infinito positivo o negativo) ya no pueden filtrar tokens no analizables en las partes XLSX guardadas; ahora se serializan como celdas de error
#NUM!, y los dobles subnormales se ponen a cero tanto en el escritor XLSX como en el BIFF8, en línea con lo que Excel puede almacenar y mostrar
Versión 2.325.0
Añadido
- Las API de formato de libro de trabajo ahora incluyen asignaciones de XML y enlaces de esquema editables, varias ventanas de libro ordenadas, selecciones de múltiples áreas y por panel, e inspección sin pérdidas de tokens de fórmulas propiedad del llamador, reconstrucción, reemplazo de referencias y reescritura atómica para XLS y XLSX
- El procesamiento de libros de trabajo ahora incluye ordenación estable horizontal o vertical con comparadores personalizados y movimiento explícito de fórmulas, conversión de estilos y fórmulas de BIFF2 a BIFF4, una fachada de lector directo proyectada para XLS, XLSX, CSV y TSV, vistas personalizadas tipadas y submodelos editables de conexión OLAP, de tablas web, de texto fijo y de parámetros
- El cálculo y la inspección ahora incluyen diagnósticos estructurados de funciones faltantes, referencias externas y dependencias circulares, registros de UDF globales y locales del libro, ordenación visual bidireccional Unicode, estrategias de AutoFit de celdas combinadas, preservación tipada de hojas de macros de Excel 4 y escaneo de comandos, y las funciones
ISOMITTED,ARRAYTOTEXT,VALUETOTEXT,PDURATIONyRRI - La generación de informes compilados ahora cubre marcadores de posición de todo el libro, bandas con nombre de fila, columna y tabulación cruzada, bandas expandibles de tablas de Excel, una abstracción unificada de tabla y cursor, índices exactos de relaciones de clave compuesta, contextos de datos diferidos, combinadores de tablas de streaming, proveedores de consultas con nombre controlados, bandas de hoja por registro, hojas de continuación por desbordamiento e inclusiones recursivas inmutables
- La creación de informes ahora incluye condiciones compiladas, búsquedas, expresiones regulares, fórmulas y formatos dinámicos, campos de imagen, reenlace de series de gráficos, ejecutores reutilizables con salida de flujo o de archivo atómico, clonación de rangos consciente de dependencias, planificación de paginación con pie de página fijo y equilibrada, diagnósticos direccionados, ejecución estricta, comprobación de plantillas y migración segura de los marcadores de posición heredados admitidos
- La salida PDF ahora incluye árboles de estructura etiquetados automáticos, campos firmados por el host visibles o invisibles, perfiles de conformidad explícitos PDF/A-1, PDF/A-2 y PDF/A-3 en los niveles a y b, progreso y cancelación atómicos, reserva de fuentes en caché consciente de estilos, composición contextual de texto complejo, degradados nativos de múltiples paradas, alfa por parada, patrones de relleno de celdas, sombras y anotaciones de comentarios posicionadas
- La representación compartida ahora incluye SVG nativo de rangos, páginas, libros y objetos con nombre, páginas PNG y JPEG incrementales, geometría de diseño neutral respecto al backend, gráficos y formas vectoriales en línea en HTML, sesiones HTML parciales con estado y CSS compartido, efectos de imágenes renderizadas, geometría vectorial de formas predefinidas y WordArt, detalles avanzados de gráficos científicos y financieros, y diseño determinista de colisiones de etiquetas de datos y líneas guía
Cambiado
- Los 55 elementos de capacidad auditados F01 a F18, R01 a R19 y V01 a V18 ahora tienen implementaciones compatibles completas con propiedad explícita, seguridad de formato, cancelación y límites de salida
- Las plantillas de informes grandes compilan los destinos de objetos y las expresiones una sola vez, materializan solo los campos de ejes vinculados, consumen los cursores de datos una sola vez, aplican hash a las claves de relación y combinación, congelan los prefijos de las colecciones de origen para la clonación disjunta repetida y evitan volver a escanear los objetos de libro generados
- Las rutas de representación comparten la paginación, la geometría, la colocación de objetos, el estado de efectos y las cachés de recursos de documento, mientras que las salidas PDF, SVG, HTML, mapa de bits, metarchivo, vista previa e impresión conservan únicamente sus codificadores específicos de formato
Corregido
- Los eventos de escritura de celdas XLSX ahora serializan sus valores de reemplazo efectivos sin retener ejecuciones de texto enriquecido obsoletas, los tokens de nombres externos BIFF preservan el índice completo del nombre de 4 bytes y las fuentes de conexión de nivel superior hacen idas y vueltas de forma independiente de las fuentes de importación de texto manteniendo la alternativa de la fuente heredada
- El significado de estilos y fórmulas BIFF heredados, el reasignado de ventanas de libro y selecciones, las referencias de fórmulas absolutas mixtas, la propiedad de tokens de fórmulas y la reescritura de tokens no válidos ahora conservan un comportamiento determinista sin pérdidas durante la carga, la edición y el guardado
- La expansión de informes ahora rechaza conflictos deterministas de tablas, filtros, nombres, solapamientos, objetos parciales, cuadrículas y consultas antes de las escrituras estructurales, conserva la cardinalidad de tablas de cero filas cuando es representable, mantiene las claves de combinación enteras exactas más allá de 2^53 y notifica recuentos aplicados deterministas tras la cancelación o el error
- La exportación PDF y vectorial ahora conserva las asignaciones Unicode de las fuentes de reserva, los racimos de grafemas y de composición, las restricciones de perfil de archivo, el alfa de degradados, los efectos de imagen, las decoraciones de gráficos, la colocación densa de etiquetas y la atomicidad de salida sin crecimiento de recursos por contenido repetido
Versión 2.324.0
Añadido
- La inspección sin pérdidas de tokens de fórmulas y la reescritura protegida para XLS y XLSX a través de
TXLSFormulaTokenStream,ParseFormulaTokens,GetFormulaTokens,FormulaTokensToTextySetFormulaTokensexponen tipos y clases de tokens RPN, tokens BIFF sin procesar y cargas útiles adicionales, indicadores de referencia independientes, clonación, reemplazo de referencias, procedencia de contexto y reutilización BIFF compatible exacta, a la vez que rechaza flujos malformados, incompatibles, propiedad de matrices o no admitidos antes de la mutación de celdas - Las bandas de informes de tablas de Excel expandibles a través de
TXLSCompiledTableReportBandusan una única instantánea de cursor acotada para expandir una sola fila de plantilla de datos preservando encabezados, totales, rangos de tabla y de AutoFilter, estado de filtro y ordenación, metadatos de columnas, fórmulas calculadas y de totales, estilos, referencias estructuradas y objetos dependientes de la hoja; los resultados representables de cero filas eliminan la fila de datos de la plantilla, mientras que los diseños respaldados por consultas, conflictivos, no válidos y desbordados fallan antes de las escrituras - Las cadenas de reserva de fuentes PDF conscientes de estilos a través de
SetFontFallbackChain,AddFontFallbackyClearFontFallbackChainsresuelven los niveles de familia de origen y estilo por cobertura de glifos, almacenan en caché las caras y selecciones cargadas, preservan los escalares suplementarios y los racimos de grafemas entre ejecuciones, asignan CID distintos a las secuencias Unicode de glifos compartidos, incrustan caras TTC independientes y rechazan atómicamente la salida PDF/A cuando no hay ningún glifo incrustado disponible
Versión 2.323.0
Añadido
- Plantillas de informes de libro reutilizables a través de
TXLSCompiledReportTemplate: los marcadores de posición se compilan una sola vez y pueden aplicarse repetidamente sin volver a escanear el libro, usando una búsqueda de valores ordenada y fragmentos de texto preseleccionados en celdas, texto enriquecido, comentarios, comentarios encadenados, hipervínculos, cuadros de texto, títulos de gráficos y nombres de series, encabezados y pies de página, nombres de hojas, nombres definidos y propiedades del documento - El enlace de datos de informes a través de
IXLSReportTable,IXLSReportCursor, la carga diferida deIXLSReportTableProvider, las tablas de memoria de acceso aleatorio yTXLSReportRelationIndex, que construye un hash secundario de clave compuesta una sola vez y conserva los números de fila en lugar de copiar las cargas útiles de fila para la búsqueda repetida maestro-detalle - El cálculo de fórmulas ahora evalúa
PDURATIONpara el número de períodos necesarios para alcanzar un valor de inversión objetivo yRRIpara la tasa de crecimiento periódica equivalente, incluidos los límites de error numérico compatibles con Excel y el prefijo de almacenamiento OOXML_xlfn.requerido - El cálculo de fórmulas ahora evalúa
ISOMITTED,ARRAYTOTEXTyVALUETOTEXT, incluido un valor dedicado de argumento omitido que permanece distinto de una celda en blanco, los viajes de ida y vuelta de tokens de argumento faltante de BIFF, las matrices de una y dos dimensiones, el escape estricto de cadenas, los separadores localizados, las reglas de conversión de errores y los prefijos de funciones futuras de OOXML - La comprobación previa estructurada de fórmulas a través de
TXLSXWorkbook.AnalyzeFormulaIssuesnotifica funciones faltantes, referencias externas de libros y componentes exactos de dependencias circulares con coordenadas de celdas y listas de miembros acotadas, mientras que las cadenas literales y las referencias estructuradas locales se excluyen de las coincidencias falsas - La clonación de rangos consciente de dependencias a través de
TXLSXWorksheet.CloneRangeTocopia celdas seleccionadas, rangos combinados, formatos condicionales, validaciones de datos, hipervínculos, comentarios, imágenes y gráficos en una sola operación, reubica los rangos y anclas aplicados y traduce las cargas útiles de fórmulas con semántica de referencias relativas y absolutas mixtas; las bandas de informes usan la misma ruta para los objetos dependientes - El progreso y la cancelación de la exportación PDF a través de
TXLSPDFExport.OnProgress,OnProgressExyCancel: las notificaciones de inicio, página y fin añaden una sobrecarga de devoluciones de llamada insignificante, la cancelación se comprueba entre pasadas de filas y objetos de página, los flujos cancelados no reciben ningún PDF parcial y el exportador permanece reutilizable - Los diagnósticos de informes compilados a través de
TXLSCompiledReportTemplate.Analyze, la ejecución estricta yWriteDiagnosticsidentifican valores faltantes, marcadores de posición vacíos y marcadores de posición sin cerrar con el tipo de destino más las coordenadas de hoja y celda antes de la mutación, o escriben los mismos hallazgos en una hoja de diagnóstico - La ejecución reutilizable de informes a través de
TXLSCompiledReportRunnerproporciona progreso de inicio, destino y fin con estados completado, cancelado y fallido, admite la cancelación antes de la primera escritura o entre destinos compilados, notifica el recuento aplicado exacto y permanece reutilizable tras la cancelación o las excepciones sin volver a escanear el libro - Las estrategias de AutoFit de celdas combinadas para XLS clásico y XLSX permiten que la primera o última fila o columna absorba el crecimiento requerido, o que lo distribuya uniformemente a lo largo del intervalo combinado, preservando el comportamiento heredado de sobrecarga, los estados ocultos, los límites explícitos y las llamadas repetidas deterministas
- Las anotaciones opcionales de comentarios PDF a través de
TXLSPDFExport.ExportCommentsAsAnnotationscolocan el autor y el texto del comentario Unicode en el rectángulo de la celda de origen preservando la página existente de comentarios al final; los índices de comentarios por hoja se construyen en aproximadamente O(C log C) tiempo y admiten la búsqueda de celdas O(log C) - Los registros jerárquicos de funciones definidas por el usuario permiten que los libros XLS y XLSX compartan controladores a nivel de proceso conservando las invalidaciones locales del libro, el reemplazo, la eliminación, la limpieza y la reserva de eventos del libro existente; la búsqueda media es O(1), las coincidencias locales enmascaran los nombres globales y los controladores se ejecutan fuera de los bloqueos del registro para un recálculo paralelo seguro y la autoeliminación
- Los combinadores diferidos de tablas de informes a través de
TXLSReportTableFactoryproporcionan filas superiores, proyección de columnas, recuento de filas, definiciones de agregados mínimo y múltiple, unión asignada por esquema, particiones divididas contiguas y combinaciones hash internas o izquierdas que conservan duplicados sin materializar cargas útiles de filas intermedias completas - La exportación incremental de páginas PNG y JPEG a través de
TXLSPageImageExporteradmite rangos, hojas y libros XLS y XLSX con selección de página, DPI, escala, calidad JPEG, progreso, cancelación y sesiones reutilizables; se construye un modelo de paginación por sesión y la memoria de mapas de bits se libera tras cada página - Las múltiples ventanas de libros XLSX a través de
TXLSXWorkbook.WorkbookViewspreservan pestañas activas independientes, primeras hojas visibles, visibilidad, estado minimizado, geometría, visualización de pestañas, desplazamiento, atributos desconocidos, extensiones y enlaces de vistas de hoja correctamente reasignados, mientras que las propiedades existentes de ventana única continúan dirigiéndose a la primera vista - Las bandas de informes con nombre de fila, columna y tabulación cruzada a través de
TXLSCompiledReportBandexpanden una plantilla de nombre definido estructuralmente a partir de instantáneas de datos acotadas de una sola pasada, preservan fórmulas y objetos dependientes de la hoja, disponen metadatos explícitos de filas y columnas sin crear valores predeterminados de tamaño cero y reutilizan los límites fijos de las colecciones de origen para que la clonación repetida en la misma hoja no vuelva a escanear las cargas útiles generadas - La exportación PDF ahora escribe degradados axiales o radiales de dos o múltiples paradas como sombreados PDF nativos, reutiliza recursos idénticos de función, sombreado y transparencia, recorta cada relleno a su celda y aplica alfa de degradado sólido o uniforme sin la anterior aproximación de rectángulos con bandas
Corregido
- Las invalidaciones personalizadas del ancho y alto de papel en puntos ahora participan en el cálculo de la banda de paginación y en el objeto de página final, de modo que los saltos de página y las dimensiones renderizadas usan la misma área disponible
Versión 2.322.0
Añadido
- El cálculo de fórmulas ahora evalúa las funciones de Bessel de primera especie
BESSELJ(oscilante) yBESSELI(modificada), calculadas mediante la serie de potencias con recurrencia de términos para la estabilidad numérica en el intervalo práctico de argumentos
Versión 2.321.0
Corregido
- La exportación RTF de XLSX ahora construye una tabla de fuentes real en lugar de codificar Calibri: el pre-escaneo recopila todos los nombres de fuente de celda distintos, la
\fonttblenumera cada uno con su propio índice\fNy el texto de cada celda hace referencia a su fuente real; los libros con estilo en Times New Roman, Courier New o cualquier otra fuente ya no se refluyen visualmente a Calibri cuando se abren en Word o WordPad
Versión 2.320.0
Corregido
- La exportación PDF ahora renderiza la rotación de texto en la ruta del motor XLS clásico: las celdas con orientación de 90 o 270 grados dibujan su texto verticalmente a través de una matriz de texto PDF que pivota alrededor del centro de la celda, igualando el comportamiento existente de la ruta XLSX; anteriormente, los encabezados verticales y las etiquetas rotadas se renderizaban horizontalmente en los PDF generados a partir de libros de trabajo
.xls
Versión 2.319.0
Añadido
- El cálculo de fórmulas ahora evalúa los combinadores de matrices dependientes de LAMBDA de Excel 365:
MAP(transformación elemento a elemento),REDUCE(plegado a un único valor),SCAN(plegado que vuelca cada paso intermedio),MAKEARRAY(construcción a partir de índices de fila y columna),BYROW(agregado por filas que vuelca una columna) yBYCOL(agregado por columnas que vuelca una fila), completando la familia de programación funcional de LAMBDA junto con el soporte existente deLAMBDAyLET
Versión 2.318.0
Añadido
- El cálculo de fórmulas ahora evalúa las funciones financieras de bonos y letras del tesoro:
COUPDAYBS,COUPDAYS,COUPDAYSNC,COUPNCD,COUPPCD,COUPNUM(primitivas de recuento de días de cupón),PRICE/YIELD(valoración estándar de bonos con solucionador de rendimiento por bisección),PRICEDISC/YIELDDISC(valores con descuento),PRICEMAT/YIELDMAT(basadas en vencimiento),DURATION/MDURATION(Macaulay y modificada),TBILLEQ/TBILLPRICE/TBILLYIELD(letras del tesoro),DISC/INTRATE/RECEIVED(descuento e interés),ACCRINTM(interés devengado al vencimiento),DOLLARDE/DOLLARFR(conversión de dólares fraccionarios),EFFECT/NOMINAL(tasas efectiva y nominal),CUMIPMT/CUMPRINC(interés y principal acumulados),FVSCHEDULE(valor futuro a tasa variable) yAMORDEGRC/AMORLINC(amortización francesa); todos comparten un motor anidado de fechas de cupón autocontenido con las cinco bases de recuento de días estándar
Versión 2.317.0
Añadido
- La carga de libros cifrados ahora acepta archivos de Agile Encryption que declaran el algoritmo de hash SHA-256 (producidos por algunos escritores de terceros): la derivación de la clave de contraseña, el bucle de iteraciones, el verificador de contraseña y los IV y HMAC de integridad de datos siguen todos el hash declarado, mientras que los archivos que declaran hashes no coincidentes entre los datos de clave y el cifrador de clave se siguen rechazando; el guardado continúa escribiendo la variante SHA-512 predeterminada de Excel
Versión 2.316.0
Añadido
SortRangepreserva las fórmulas en ambos motores de libro de trabajo: las celdas con fórmulas viajan con sus filas y sus referencias relativas se vuelven a anclar con la semántica de ordenación de Excel (las partes absolutas $-se mantienen y las referencias desplazadas fuera de la cuadrícula se sujetan en su lugar), por lo que las tablas ordenadas siguen calculando en lugar de colapsar a valores- Imágenes de fondo de hoja:
SetBackgroundImagedispone una imagen detrás de las celdas de una hoja XLSX (solo de visualización, como en Excel), realizando el viaje de ida y vuelta a través del elementopicturede la hoja, su relación de medios y los tipos de contenido del paquete
Corregido
- Recalcular una fórmula aritmética que hace referencia a una celda vacía nunca tocada ya no aborta con un error de conversión: los operandos vacíos contribuyen con 0, como en Excel
Versión 2.315.0
Añadido
CopyToClipboardpublica el formato nativo de portapapeles Biff8 junto con texto y HTML en ambos motores de libro de trabajo, de modo que los rangos pegados en Excel o en otros libros de HotXLS transportan valores, fórmulas, formatos de número, fuentes, rellenos, bordes, alineación y celdas combinadas en lugar de texto sin formatoPasteFromClipboardprefiere la carga útil Biff8 cuando está presente: el texto pegado desde Excel conserva sus valores originales sin volver a analizar fechas y números dependientes de la configuración regional, las fórmulas vuelven a anclar sus referencias relativas al destino del pegado y las áreas combinadas se reconstruyen en el destino; ambos motores también pegan los bloques del otro con formato completo
Cambiado
- Las fórmulas pegadas en Excel llegan como sus valores calculados (una limitación del análisis del portapapeles Biff8 de terceros de Excel); todo lo demás (texto, números con formatos, rellenos, bordes y combinaciones) se pega sin pérdidas en Excel, y las fórmulas sobreviven por completo en las direcciones de Excel a HotXLS y de HotXLS a HotXLS
Versión 2.314.0
Añadido
- Objetos de cámara en hojas XLSX:
AddCameracoloca una instantánea en vivo vinculada a un rango de celdas (la imagen vinculada de la herramienta de cámara de Excel), con el enlace del rango escrito en la extensión de dibujo documentada y una imagen de marcador de posición dimensionada al anclaje; los objetos de cámara creados por Excel se reabren con su enlace de rango preservado
Versión 2.313.0
Añadido
- Aplicación de parches in situ de hojas para paquetes XLSX:
BeginPatchen el escritor de streaming abre un libro existente y reescribe exactamente una hoja; todas las demás partes (estilos, dibujos, gráficos, tablas dinámicas, partes personalizadas) se copian con sus bytes comprimidos tal cual, sin descomprimir ni volver a crear nada, de modo que una plantilla grande ve su hoja de datos actualizada en una fracción de una reconstrucción completa - El modo de parche también puede añadir una nueva hoja: la hoja se registra en la lista de partes del libro, con relaciones y tipos de contenido con una numeración que nunca colisiona con las partes existentes, siguiendo la convención de relación estricta o transicional del propio paquete
- Los paquetes con parches descartan automáticamente la cadena de cálculo obsoleta (Excel la reconstruye al cargar), y las funciones que necesitarían nuevas partes del paquete (tablas, gráficos, imágenes, comentarios, nombres definidos) notifican un error claro en lugar de escribir un paquete no válido
Versión 2.312.0
Añadido
- Salida Open XML estricta: al establecer
StrictOOXMLen un libro XLSX, el guardado escribe el paquete en conformidad estricta ISO/IEC 29500; cada declaración de espacio de nombres y tipo de relación cambia de los vocabularios transicionales a los estrictospurl.oclc.orgen hojas, cadenas compartidas, estilos, tema, dibujos, gráficos, comentarios, propiedades del documento y partes preservadas, mientras que los tipos de contenido, los nombres de parte y los vocabularios VML permanecen tal como los comparten ambas clases de conformidad - La lectura de libros con conformidad estricta ahora está completa: los tipos de relación escritos en forma estricta se resuelven a los mismos destinos que sus equivalentes transicionales, complementando la aceptación de espacios de nombres de elementos estrictos para que los archivos guardados en el modo «Strict Open XML Spreadsheet» de Excel se abran como cualquier otro libro
- Guardar con salida estricta habilitada notifica un error claro para las funciones que solo existen como extensiones de Microsoft (proyectos VBA, controles de formulario, comentarios encadenados, metadatos de matrices dinámicas) en lugar de escribir un paquete que no se validaría
Corregido
- Las propiedades de documento personalizadas declaraban un espacio de nombres de tipos de valores mal escrito, lo que podía hacer que la parte de propiedades fallara la validación en herramientas externas
Versión 2.311.0
Añadido
- La lectura de un libro XLS preserva los registros de hoja no reconocidos: cualquier registro que el analizador tipado no modele se captura tal cual y se reproduce al guardar, de modo que los archivos con registros específicos del proveedor o de especificaciones más nuevas realizan el viaje de ida y vuelta a través de HotXLS sin perderlos
Versión 2.310.0
Añadido
- Formas de geometría predefinida en hojas XLSX:
AddPresetShapeescribe cualquiera de los 187 tokens predefinidos de OOXMLST_ShapeType(rightArrow,flowChartDecision,star5, …) tal cual en el<a:prstGeom>del dibujo, y la propiedadPrstTokenpermite que las formas existentes cambien de geometría; los tokens realizan el viaje de ida y vuelta al guardar y reabrir
Versión 2.309.0
Añadido
- Procesamiento de plantillas en hojas:
ApplyTemplatereemplaza los marcadores de posición{{key}}en todas las celdas (los valores conservan sus tipos nativos y los marcadores de fórmula se sustituyen antes del análisis), yFillTemplateBandclona un bloque de plantilla una vez por registro con traducción de filas de fórmulas por clon, clonación de rangos combinados y un campo#skippara condicionales a nivel de fila, convirtiendo cualquier hoja creada a mano en un generador de informes basado en datos
Versión 2.308.0
Añadido
- La exportación PDF puede adjuntar archivos:
AddAttachmentincorpora documentos sin procesar en el PDF exportado como entradas/EmbeddedFiles(especificación de archivo, flujo incrustado con subtipo MIME opcional y el árbol de nombres del catálogo), de modo que los informes se envían junto con sus datos de respaldo en un único archivo autocontenido
Cambiado
- La lectura de un libro XLS con una palabra de versión BIFF no reconocida ya no rechaza todo el flujo: el lector recurre al diseño BIFF8, de modo que los archivos de escritores que emiten números de versión inusuales aún se cargan cuando sus registros se analizan
Versión 2.307.0
Añadido
- Gestión central de archivos temporales: cada archivo temporal que crea la biblioteca se registra y se barre, de modo que una exportación abortada o una excepción entre la creación y la eliminación ya no deja archivos temporales huérfanos
VerifyEncryptedSavevuelve a abrir un contenedor cifrado recién escrito a través de la canalización completa de descifrado y hace fallar el guardado cuando la contraseña no puede desbloquearlo; los contenedores rotos se detectan de inmediato en lugar de en la próxima apertura del usuario- La exportación de conjuntos de datos genera un evento
OnExportLimitcuando se activa la división de filas, y los límites de cuadrícula del libro por versión de formato se exponen como constantes (65536×256 para BIFF8, 1048576×16384 para los formatos 2007+) para la negociación de capacidades
Versión 2.306.0
Añadido
- Las hojas XLSX ganan la creación de controles de formulario:
AddFormButton,AddFormCheckBox,AddFormRadioButton,AddFormComboBoxyAddFormListBoxescriben controles de botón / casilla de verificación / botón de opción / cuadro combinado / cuadro de lista con títulos, celdas vinculadas, estado marcado y enlace de macro; la ruta de guardado emite las formas VML, las partesctrlPropspor control, sus relaciones y las entradas de tipos de contenido, y los archivos con controles realizan el viaje de ida y vuelta de sus partes tal cual al reabrir
Versión 2.305.0
Añadido
- La exportación PDF gana un modo opcional
UsePDFAque produce documentos identificados como PDF/A-2b: el perfil sRGB IEC61966-2.1 se incrusta como la intención de salida GTS_PDFA1, los metadatos XMP transportan la identificación de parte/conformidadpdfaidy el encabezado anuncia PDF 1.7; combínelo con una fuente TrueType incrustada (UnicodeFontFileo la fuente instalada seleccionada automáticamente) para una salida archivable
Versión 2.304.0
Añadido
- Evaluación en vivo entre libros:
RegisterExternalWorkbookempareja un objeto de libro con un nombre de libro para que fórmulas como[Book.xlsx]Sheet!A1compilen (el prefijo[Book]Sheet!Refahora se analiza como una referencia externa real) y lean el estado actual del objeto registrado en cada recálculo; al anular el registro se elimina el enlace en vivo y se vuelve a la caché de vínculos externos
Versión 2.303.0
Añadido
- Comparación de libros a través de
TXLSXWorkbookCompare: empareja las hojas por nombre y notifica hojas añadidas/eliminadas, celdas añadidas/eliminadas, valores cambiados, fórmulas cambiadas y rangos combinados añadidos/eliminados, como una lista de diferencias estructurada para herramientas y como una línea legible por persona por diferencia a través deReport
Versión 2.302.0
Añadido
- El escritor directo de streaming gana un suministro de filas en modo pull:
OnNeedRowse dispara una vez por fila prevista y el proveedor escribe esa fila directamente a través del escritor, declarando el fin de los datos para detenerse; las canalizaciones de datos pueden impulsar una exportación sin almacenar previamente en búfer las listas de filas
Versión 2.301.0
Añadido
- La exportación ODS escribe las fórmulas de las celdas: las referencias de la misma hoja se traducen a la ortografía estándar
of:=de OpenFormula (referencias entre corchetes, separadores de argumentos con punto y coma, literales de cadena sin cambios), mientras que las referencias calificadas por hoja y las estructuradas viajan por el paso directomsoxl:que el propio Excel usa para los viajes de ida y vuelta entre suites — los paquetes guardados se vuelven a abrir con el texto original de la fórmula de Excel
Versión 2.300.0
Añadido
- Las hojas de derecha a izquierda ahora se representan reflejadas en todas partes: la exportación PDF invierte la geometría de las columnas a lo largo del ancho imprimible (la columna A a la derecha, el contenido de las celdas sin cambios) y ambos exportadores HTML emiten
dir="rtl"en la tabla para que el navegador invierta el orden de las columnas — el indicador de la hoja ya hace el viaje de ida y vuelta a través de XLSX y BIFF
Versión 2.299.0
Añadido
- La exportación de conjuntos de datos (
TDataToXLS) gana una banda de título y una banda de pie:Titlerepresenta una fila combinada con estilo en negrita sobre el encabezado (conTitleFontpropio yTitleColoropcional), yFooteragrega una línea debajo de la última fila de datos o de resumen ForEachFormattedCellen una hoja recorre cada celda poblada en orden de filas y columnas y entrega su texto de visualización — con el formato de número aplicado — a través de una devolución de llamada, listo para indexación y extracción de texto
Versión 2.298.0
Añadido
- El ejemplo ApiTour ahora se abre directamente en una demostración en vivo: un panel de ventas en memoria con mosaicos de KPI, fórmulas
SUMIF/COUNTIFentre hojas, barras de datos, una escala de colores, un conjunto de iconos y dos gráficos se representa dentro del visor de libros incrustado en el momento en que se inicia el ejemplo, cada celda de la cuadrícula permanece editable con recálculo instantáneo y formatos condicionales actualizados, y las acciones de un clic exportan la demostración a PDF, HTML y CSV o la entregan a Excel con tiempos de compilación y exportación en vivo - El ejemplo ApiTour de C++Builder replica la nueva demostración de Delphi, el visor incrustado, la barra de fórmulas, las acciones de exportación y el registro de actividad
Cambiado
- Los ejemplos ApiTour reemplazan los cuadros de diálogo modales de resultados por un registro de actividad dentro de la ventana, mientras que el recorrido clásico de crear, modificar y exportar conserva su comportamiento
Versión 2.297.0
Añadido
- La exportación PDF gana un modo opcional
UseXRefStreamque produce archivos PDF 1.5 con flujos de objetos comprimidos y un flujo de referencia cruzada binario: los objetos de diccionario pequeños viajan dentro de un contenedor comprimido con Flate y la tabla xref clásica y el trailer se reemplazan por un flujo compacto, reduciendo los documentos exportados mientras el contenido de las páginas permanece idéntico byte a byte
Versión 2.296.0
Añadido
- El escritor directo de streaming gana un modo opcional
AutoSplitRows: una fila más allá del límite de la hoja (1048576) finaliza la hoja actual y continúa en una hoja recién creada<name>_2,<name>_3…, de modo que las exportaciones sin límite nunca emiten un índice de fila no válido FillTableCalculatedColumnen una hoja empuja la fórmula de columna calculada de una columna de tabla hacia cada fila de datos, traducida por fila y por celda como lo hace el propio autor de Excel, y luego recalcula de forma natural
Versión 2.295.0
Cambiado
- La exportación HTML de XLSX centraliza el estilo de las celdas: las combinaciones de estilo idénticas se emiten una sola vez como clases
td.cNen una hoja de estilos en lugar de un atributostyleen línea repetido en cada celda, reduciendo la salida HTML para tablas con estilo uniforme; las superposiciones visuales de formato condicional permanecen en línea para conservar su carácter por celda
Versión 2.294.0
Corregido
- Las referencias estructuradas en forma de fila actual (
Table[@Col]) ahora se evalúan contra la propia fila de la celda de la fórmula durante el recálculo, tanto en la ruta de evaluación en serie como en la paralela; anteriormente, cada una de esas fórmulas leía la fila 1 de la columna — normalmente el texto del encabezado — y el recálculo fallaba por completo con un error de conversión de tipos cuando esa fila contenía texto
Versión 2.293.0
Cambiado
- El memo opcional
RecalcAggregateCacheahora también cubre los agregados incondicionales de un solo rango —SUM,AVERAGE,MIN,MAX,COUNTyCOUNTAsobre un único rango simple de una sola hoja — de modo que los totales repetidos sobre el mismo bloque reutilizan el resultado de la primera pasada bajo la misma compuerta de estabilidad de referencias que la familia condicional
Versión 2.292.0
Añadido
- Generador de libro a código (
TXLSCodeGen): recorre un libro de trabajo y emite las sentencias de código fuente que lo reconstruyen — creación de hojas, valores de celdas, fórmulas, formatos de número, anchos de columna y rangos combinados — en dialectos de Delphi o C++Builder, de modo que un archivo hecho a mano se convierte en un ejemplo de API listo para usar - Validador de importación por reglas de columna (
TXLSImportCheck): reglas por columna de obligatoriedad, longitud de texto, patrón de expresión regular y unicidad, más una devolución de llamada del llamador que se ejecuta sobre las filas de datos de una hoja; las violaciones pueden anotarse de vuelta con una fuente roja y un comentario con el motivo, yKeepOnlyViolationscompacta la hoja al encabezado más las filas con fallas para un libro de «corrija y devuelva»
Versión 2.291.0
Añadido
- La importación CSV acepta un registro de opciones: las sobrecargas de
OpenCSVadmiten el salto de líneas iniciales (SkipRows, para banners de título sobre la cuadrícula) y el recorte de espacios en blanco (AutoTrim) junto con los conmutadores de separador y detección de tipos FillMergedCellValuesen una hoja copia el valor de anclaje de cada rango combinado en cada celda miembro cubierta, de modo que las hojas estilo informe con etiquetas combinadas se leen como una cuadrícula planaAddListValidationgana una sobrecarga de matriz de cadenas que une los elementos en una lista desplegable en una sola llamada- La exportación de conjuntos de datos (
TDataToXLS) gana rayado de cebra (AlternatingColor, pintado en las filas de detalle impares) y una fila de totales (SummaryRow) que agrega fórmulasSUMreales para los campos numéricos exportados o una lista de campos nombrada por el llamador, con una celda de rótulo en negrita
Corregido
- La exportación de conjuntos de datos ahora aplica el fondo
DetailColorconfigurado a las celdas de detalle; anteriormente, la propiedad se aceptaba pero nunca se pintaba
Versión 2.290.0
Cambiado
- El memo opcional
RecalcLookupCacheahora también cubre las búsquedasVLOOKUPexactas y aproximadas,HLOOKUPy los tipos de coincidencia 0 y 1 deMATCH, de modo que los libros que repiten estas búsquedas clásicas sobre el mismo rango reutilizan el resultado de la primera búsqueda durante una pasada de recálculo bajo la misma compuerta de seguridad de estabilidad de referencias queXLOOKUP/XMATCH
Versión 2.289.0
Añadido
- El escritor directo de streaming gana un modo opcional
TrackColumnWidths: la hoja se prepara en memoria mientras las filas fluyen, de modo que el archivo guardado incluye la pista de rango usado<dimension>y los anchos por columna ajustados al texto de visualización más largo visto (caracteres más relleno, con tope en 255), aproximando el ajuste automático para exportaciones cuyos datos solo se conocen mientras fluyen; los anchos de columna establecidos explícitamente siempre prevalecen
Versión 2.288.0
Añadido
- Abrir paquetes XLSX tolera prefijos de espacio de nombres no canónicos: las hojas, los gráficos, los dibujos y las partes de propiedades del documento que vinculan sus elementos a un espacio de nombres con un prefijo diferente (o estricto ISO 29500) se normalizan al vocabulario estándar durante el análisis, de modo que los archivos de generadores de terceros y de guardadores en modo estricto se cargan correctamente
- Las hojas cuyas celdas omiten el atributo de posición
rcolocan cada celda después de su predecesora en orden de escaneo, y las filas sin atributorcontinúan la secuencia de filas — la convención usada por varios escritores de streaming
Versión 2.287.0
Añadido
Openlee libros de trabajo de Excel 2.0/3.0/4.0 (BIFF2-4): los flujos BIFF sin procesar sin envoltorio OLE se cargan con sus números, texto, booleanos, errores y resultados en caché de fórmulas; los resultados de cadena de las fórmulas llegan a través del registro String de BIFF2-4, y el registro de página de códigos del flujo dirige la decodificación del texto
Cambiado
- Los documentos BIFF2-4 se leen por sus valores — los formatos de número y los estilos de esas generaciones no se modelan, de modo que las fechas aparecen como números de serie sin procesar y las fórmulas como sus últimos valores calculados
Versión 2.286.0
Añadido
- Los formatos de número con secciones de comparación (
[>=100],[<0], …) seleccionan la sección por valor en todas partes donde se representa el texto de visualización, coincidiendo con el comportamiento de formato condicional de Excel - Las secciones de texto de formato de número (
"ID:"@) aplican una plantilla a los valores de cadena en lugar de ignorar el formato SetCellFromHtmlllena una celda a partir de un fragmento HTML ligero:<b>/<strong>,<i>/<em>,<u>,<br>y<font color=...>se convierten en ejecuciones de texto enriquecido; las demás etiquetas se descartan mientras se conserva su texto- El marcado
TaggedTextacepta saltos de línea<br>, los alias<strong>/<em>, la forma de atributo<font color=...>y las entidades"/ - Los bloques de columnas que se mantienen juntas (
KeepColumnsTogether) detienen los saltos de página verticales dentro de un grupo de columnas, reflejando la función a nivel de filas en la paginación, la vista previa y la salida PDF - Los controles de formulario clásicos de Spinner y ScrollBar se pueden crear en archivos XLS con configuraciones de Min/Max/Inc/Page y una celda vinculada, emitidos a través del subregistro OBJ FtSbs
WriteAutoValuereconoce fechasm/d/yyyyyd.m.yyyycon horas opcionales (AM/PM incluidas) más allá de la forma ISO, rechazando fechas de calendario imposiblesConvertFormulasToValuesgana un modoOnlyExternalque congela solo las fórmulas que referencian otros libros de trabajo, y la fachada XLS clásica gana el método de hoja completa- El ajuste automático de filas mide las celdas combinadas contra su ancho de columna combinado y distribuye la altura necesaria entre las filas combinadas
Versión 2.285.0
Añadido
- La exportación PDF dibuja los gráficos de la hoja como gráficos vectoriales nativos: columnas y barras agrupadas, apiladas y apiladas al 100 %, gráficos de líneas con marcadores, gráficos de área, gráficos circulares y de anillo con etiquetas de porcentaje, gráficos de dispersión y gráficos radiales — cada uno con un marco con título, ejes con escala automática, etiquetas de marca, líneas de cuadrícula, una leyenda, etiquetas de datos opcionales por punto, rellenos sólidos por serie y la paleta de acentos predeterminada de Excel; los tipos de gráfico 3D se representan como su proyección 2D
- Los gráficos anclados más allá de la última celda ahora extienden la superficie impresa, de modo que un gráfico colocado debajo de las filas de datos aún aparece en la salida de PDF y vista previa en lugar de recortarse
Versión 2.284.0
Añadido
- Los encabezados y pies de página de PDF representan los códigos de estilo de Excel:
&Bnegrita,&Icursiva,&U/&Esubrayado simple/doble,&Stachado,&X/&Ysuperíndice/subíndice,&nntamaño de fuente,&Kcolor y las palabras clave de peso&"Font,Style" - La exportación PDF respeta el modo de impresión en blanco y negro de la hoja colapsando los rellenos, las fuentes, los bordes, las barras de datos y los iconos a gris de luminancia
- Los encabezados de filas y columnas impresos (números de fila y letras de columna) se representan junto a la cuadrícula cuando la hoja los solicita
- Centrado de impresión:
CenterHorizontally/CenterVerticallydesplazan la cuadrícula impresa entre los márgenes mientras las bandas de encabezado y pie permanecen en su lugar - Los comentarios de celda se imprimen como un indicador rojo en la esquina (modo como se muestra) o como una página de listado de comentarios después de la hoja mediante la nueva propiedad de hoja
PrintCommentsAtEnd, que hace el viaje de ida y vuelta del valor de configuración de páginacellComments="atEnd"de Excel - Los hipervínculos internos (destinos
Sheet!Cell) se convierten en enlaces GoTo en el documento en los que se puede hacer clic y que saltan a la página de la hoja de destino - El exportador expone una preferencia de visor
PageLayouty escribe un paquete de metadatos XMP junto con el diccionario de información del documento - Las fuentes de colección TrueType (
.ttc) pueden servir como la fuente Unicode incrustada; los cortes en negrita y cursiva del tipo incrustado se sintetizan cuando solo existe un tipo regular
Cambiado
- Los anchos de columna se convierten mediante la fórmula de ancho máximo de dígitos de Excel (métricas de Calibri 11) en lugar de una estimación fija por carácter, de modo que los anchos de PDF y vista previa coinciden con los anchos en píxeles almacenados por Excel
- Las líneas ajustadas se miden de nuevo desde el primer carácter de cada línea, corrigiendo las líneas ajustadas que ignoraban el ancho de las palabras bajadas por un salto anterior
Versión 2.283.0
Añadido
- La exportación PDF ajusta las celdas
WrapTextcon partición de palabras real, alineación horizontal línea por línea, alineación vertical de bloque y espaciado justificado o distribuido - La exportación PDF representa el texto de celda rotado mediante matrices de texto PDF, incluido el texto vertical apilado, y respeta
ShrinkToFitreduciendo el tamaño de la fuente hasta que el valor quepa - El texto PDF que desborda una celda ahora se extiende por las celdas vecinas vacías y se recorta en la primera celda ocupada, coincidiendo con el comportamiento de impresión de Excel; la alineación general alinea los números a la derecha como Excel
- La exportación PDF dibuja ejecuciones de texto enriquecido con estilo de fuente, tamaño, color, subrayado, tachado, superíndice y subíndice por ejecución; las líneas ajustadas conservan el estilo por ejecución
- La exportación PDF dibuja bordes de celda diagonales y bordes de línea doble reales
- El texto que abarca celdas combinadas ahora dibuja, alinea, ajusta y ancla los hipervínculos en todo el rectángulo combinado, y los miembros de combinación cubiertos ya no pintan su propio fondo
Cambiado
- Los anchos de texto PDF provienen de tablas de avance por carácter calibradas en lugar de un ancho promedio de carácter fijo, de modo que la alineación, el ajuste y la reducción coinciden con la página impresa
- La sangría de celda desplaza el texto como Excel, y las celdas con conjunto de iconos sangran su valor junto al icono
Versión 2.282.0
Añadido
- La exportación PDF preserva la transparencia de PNG: las imágenes con canal alfa ahora emiten un plano de máscara suave en lugar de perder la transparencia, incluidas las imágenes de paleta con un bloque tRNS
Cambiado
- Los flujos de contenido de páginas PDF ahora se comprimen con Flate, reduciendo sustancialmente los documentos exportados sin requisitos de visor más allá de PDF 1.4
- La exportación PDF agrupa las operaciones de texto consecutivas en bloques de texto compartidos y omite la selección redundante de fuente, tamaño y color, reduciendo tanto el tamaño de la salida como el tiempo de generación
- Las celdas adyacentes con el mismo relleno sólido se representan como un rectángulo combinado, y los segmentos de borde colineales con el mismo estilo se trazan como una sola ejecución en lugar de bordes por celda
- Las imágenes PNG se incrustan en el PDF sin decodificar ni recodificar, conservando el flujo comprimido original y los píxeles exactos
- Las imágenes con contenido de bytes idéntico se incrustan una sola vez y se comparten, sin importar cuántos objetos de imagen las referencien
Corregido
- Las anotaciones de hipervínculo ahora también se crean para las celdas de enlace cuyo texto se representa a través de la ruta de fuente Unicode incrustada
- Los bytes de contenido PDF ya no dependen de la página de códigos activa del sistema, de modo que el texto occidental se representa de forma idéntica en cualquier configuración regional de Windows
Versión 2.281.0
Corregido
- Los lectores de portapapeles ya no truncan el identificador de datos a 32 bits, lo que hacía que
XLSGetClipboardBiff8y la ruta de pegado de XML Spreadsheet devolvieran vacío en aplicaciones de 64 bits - Las operaciones de portapapeles reintentan abrir el portapapeles hasta medio segundo cuando otra aplicación lo tiene en uso, en lugar de fallar ante la primera contención
Cambiado
- Las búsquedas de reglas de formato condicional (rutas
FindAt/IndexOfCell) analizan el rango de celdas de cada regla una sola vez en lugar de en cada celda consultada, coincidiendo con la caché de validación de datos - La exportación PDF construye un índice de hipervínculos por hoja, reemplazando el escaneo lineal por celda por una búsqueda binaria
Versión 2.280.0
Añadido
- Las funciones definidas por el usuario se pueden registrar por nombre:
RegisterUserFunctiondespacha las fórmulas que llaman a ese nombre directamente a su controlador (sin cadena de if global en un soloOnUserFunction), y el evento del libro de trabajo sigue sirviendo los nombres no registrados ScanUnknownFunctionsaudita un libro de trabajo en busca de funciones de fórmula que el motor de cálculo no puede evaluar, informando cada celda y nombre — ideal antes de habilitar el recálculo en archivos externosRecoveryMode: una parte de hoja dañada estructuralmente se omite con un diagnóstico de advertencia en lugar de abortar toda la apertura- Formato de portapapeles BIFF8 nativo:
XLSSetClipboardBiff8/XLSGetClipboardBiff8publican y leen el flujoBiff8que el propio Excel usa, de modo que el intercambio por portapapeles conserva valores, fórmulas y formato
Cambiado
- La auditoría de validación de datos analiza el rango de celdas de cada regla una sola vez en lugar de en cada celda, acelerando
CheckDataValidationsen hojas grandes
Versión 2.279.0
Añadido
- La exportación PDF incrusta las imágenes de la hoja: los mapas de bits PNG/GIF/BMP se convierten en XObjects RGB comprimidos con Flate y los archivos JPEG pasan sin cambios mediante DCTDecode (sin recomprimir); las imágenes idénticas en varias páginas comparten un objeto, y las imágenes añadidas sin un tamaño explícito ahora usan por defecto sus dimensiones en píxeles a 96 DPI
- Bloques que se mantienen juntos:
KeepRowsTogetherevita que la paginación de impresión/PDF se rompa dentro de un bloque de filas que cabe en una página, yXlsxAutoPageBreaksconvierte los límites de página naturales (conscientes del bloque) en saltos de fila explícitos para que Excel pagine como la exportación - Compresión XLSX configurable:
ZipCompressionLevelselecciona el nivel de deflación para los guardados (-1 predeterminado hasta 9) - Guardados reproducibles:
DeterministicOutputfija las marcas de tiempo de las entradas zip para que guardar el mismo libro de trabajo dos veces produzca archivos idénticos byte a byte
Corregido
- Los archivos compuestos corruptos con cadenas FAT cíclicas ya no cuelgan el cargador .xls clásico — los recorridos de las cadenas de directorio y de flujo llevan protecciones contra ciclos
Versión 2.278.0
Añadido
- La exportación PDF emite anotaciones de enlace en las que se puede hacer clic para los hipervínculos de la hoja: las celdas con una URL reciben un rectángulo /Link invisible con una acción URI sobre el área de la celda
- La exportación PDF escribe un esquema de documento (marcadores): cada hoja exportada se convierte en un marcador que apunta a su primera página representada
Versión 2.277.0
Añadido
- La validación de datos obtiene una API de auditoría:
CheckDataValidationsexamina las celdas pobladas contra las reglas de la hoja (pertenencia a listas, límites de entero/decimal/fecha/hora, longitud de texto, fórmulas personalizadas a través de la calculadora) e informa de cada celda infractora con el índice de la regla y un motivo - Las propiedades personalizadas de documento tipadas hacen el viaje de ida y vuelta a través de
docProps/custom.xml: entradas de texto, número, fecha y booleano enWorkbook.CustomProperties - Las partes de datos XML personalizados hacen el viaje de ida y vuelta a través de
Workbook.CustomXmlPartscon relaciones a nivel de libro y tipos de contenido - Las imágenes aceptan un acompañante SVG:
AddImagePairalmacena los bytes SVG junto a la alternativa rasterizada, escribe la extensiónsvgBlipy la parte de medios adicional que consume Excel 2016+ - Los gráficos pueden tomar el texto de las etiquetas de datos de un rango de celdas («Value From Cells») a través de
DataLabelsRange, emitido como extensión del gráfico y recuperado al abrir - Estilos de tabla personalizados:
Workbook.CustomTableStylesdefine estilos con nombre con secciones de color/negrita (fila de encabezado, fila de totales, rayado, columnas de borde), escritos entableStylescon sus propios estilos diferenciales para que las tablas puedan referenciarlos por nombre
Versión 2.276.0
Añadido
- Rellenos de degradado de celda: los barridos lineales por grados y los degradados de trayectoria con colores por parada hacen el viaje de ida y vuelta a través de
gradientFill, se representan como degradados CSS en la exportación HTML y como rellenos con interpolación por bandas en la exportación PDF y en el visor de libros, y se ofrecen a través de la convenienciaTXLSXFills.AddLinearGradient - Los formatos de número de tiempo transcurrido (
[h]:mm:ss,[mm]:ss,[s]) ahora representan totales acumulados en lugar de envolver como un reloj, en cada ruta de visualización (FormattedText, HTML, PDF, valores de formato condicional) - Los formatos de número fraccionarios (
# ?/?,# ??/??, denominadores fijos como0/8) se representan con la mejor aproximación racional de Excel, incluido el ocultamiento del entero cero y el espaciado de alineación - Los corchetes de color estilo
[Red]ahora afloran a través deTXLSXCell.GetFormattedTextColory repintan el texto de la celda en la exportación PDF TXLSXWorkbook.ValidateNumberFormatcomprueba una cadena de formato personalizado como lo hace el cuadro de diálogo de formato personalizado de Excel — cantidad de secciones, equilibrio de comillas y contenido de corchetes (colores, condiciones, unidades transcurridas, directivas de configuración regional)- El estado de los paneles congelados puede leerse a través de
GetFrozenPanes, y la posición de desplazamiento del panel inferior derecho hace el viaje de ida y vuelta a través deSetPaneScroll/GetPaneScroll(escrita comotopLeftCell) - El conmutador de visualización de encabezados de filas y columnas
DisplayRowColHeadershace el viaje de ida y vuelta a través deshowRowColHeaders - Los gráficos exponen
DispBlanksAs(espacio / conectar / cero) yPlotVisibleOnlyen lugar de codificarlos fijos, y recuperan ambos del ChartML conservado al abrir - Los comentarios llevan geometría de cuadro editable (
WidthPt/HeightPt, puntos VML) más una heurísticaAutoSizeFromTextguiada por texto
Versión 2.275.0
Añadido
- Buscar y reemplazar entiende los comodines de Excel:
*(cualquier secuencia de caracteres),?(exactamente un carácter) y~como escape para un*,?o~literal — la misma semántica que el propio Excel aplica en Buscar y reemplazar, en los criterios de la familiaCOUNTIFy en los autofiltros FindTextde la hoja XLSX gana una sobrecarga de opciones: coincidir mayúsculas/minúsculas, coincidir todo el contenido de la celda, buscar el texto de la fórmula además de los valores, modo comodín y escaneo hacia atrás, con un ancla de inicio para que las llamadas repetidas recorran las coincidenciasReplaceTextgana el mismo conjunto de opciones más una devolución de llamada opcional por coincidencia que puede aceptar, reescribir, omitir o abortar cada reemplazo celda por celdaFindText/ReplaceTextde la hoja XLS clásica ganan sobrecargas de comodín y de celda completa, de modo que ambas fachadas comparten la semántica de búsqueda de ExcelGetRangeStatisticsexamina un rectángulo e informa el mínimo, el máximo, la suma, el promedio, el recuento de valores numéricos y el recuento de celdas pobladas en una sola pasadaWriteAutoValueescribe el texto como lo interpreta la propia entrada de celda de Excel:TRUE/FALSEse convierten en booleanos, los literales de error como#N/Ase convierten en valores de error, las fechas ISO inequívocas se convierten en fechas, los números simples en formato invariable se convierten en números, y todo lo demás — incluidos los ceros iniciales y los separadores de miles — permanece como texto (ambas fachadas)GetHtmlFromCellrepresenta una celda como un fragmento HTML con estilo y marcado escapado, complementando la exportación HTML de toda la hojaSortRangeacepta un indicador de no distinguir mayúsculas/minúsculas para que las claves de texto se ordenen alfabéticamente independientemente de las mayúsculas (fachada XLSX)
Versión 2.274.0
Añadido
- Las tablas de Excel ahora hacen el viaje de ida y vuelta de tablas sin encabezado y de comentarios por tabla a través de las nuevas propiedades de tabla
HasHeaderRowyComment, escritas comoheaderRowCount="0"y el atributocomment - Los gráficos pueden seleccionar un estilo de galería de Excel a través de la nueva propiedad
ChartStyle(1–48 o el rango extendido 101–148), con viaje de ida y vuelta a través del elemento de estilo de la parte del gráfico - Los gráficos combinados pueden controlar las capas del área de trazado a través de una nueva propiedad
ZOrderen cada grupo de trazado, de modo que una serie de columnas pueda representarse detrás o delante de una serie de líneas - Las hojas y las celdas individuales pueden congelar las fórmulas en sus valores calculados a través de
ConvertFormulasToValuesyConvertFormulaToValue, conservando el resultado en caché mientras se descartan la fórmula, el vínculo de fórmula compartida y los metadatos de matriz - Los nombres definidos ahora llevan un comentario opcional a través de la nueva propiedad de nombre
Comment, con viaje de ida y vuelta a través del registro clásico de comentario de nombre y del atributocommentde nombre definido de XLSX - La exportación PDF acepta dimensiones de papel personalizadas en puntos a través de las nuevas propiedades
PaperWidthyPaperHeight, anulando la enumeración de tamaño de papel para cada hoja representada - La exportación PDF puede suprimir la banda de encabezado o de pie de página a través del nuevo conjunto
HidePrintObjects - Los códigos de campo
&F(nombre de archivo) y&Z(ruta) de los encabezados y pies de página de PDF ahora se expanden usando la ruta del libro de trabajo de origen capturada por las exportaciones basadas en archivos - Las barras de datos admiten un color de borde independiente para los valores negativos a través de las nuevas configuraciones
NegativeBorderColoryNegativeBarBorderColorSameAsPositive, emitidas en la extensión de barras de datos de Excel 2010+ - Los estilos de celda integrados cuyos identificadores no tienen una ranura de registro heredada (Hyperlink, Title, Headings, Accents, Good/Bad/Neutral, …) ahora resuelven sus nombres de visualización canónicos al guardar, de modo que la galería de estilos de Excel sobrevive al viaje de ida y vuelta
- Los libros cifrados con Agile Encryption ahora llevan un bloque
dataIntegrityreal: el escritor emite un HMAC conforme a la especificación sobre el paquete cifrado completo, y al abrir se verifica, detectando una contraseña incorrecta o un paquete manipulado; los archivos de escritores sin el bloque aún se abren sin cambios - Los libros clásicos admiten la reserva de escritura de «password to modify» de Excel a través de
SetModifyPassword(indicador de recomendar solo lectura, hash de contraseña heredado y nombre de usuario reservador emitidos como el par de registros WRITEPROT + FILESHARING);IsWriteReservedinforma el estado y una contraseña vacía lo limpia - Un memo opcional
RecalcLookupCacheacelera el recálculo intensivo en búsquedas: los escaneos repetidos deXLOOKUP/XMATCHsobre el mismo rango reutilizan el resultado del primer escaneo. El memo solo se activa cuando el grafo de dependencias es comprobablemente estable en referencias (sinOFFSET/INDIRECTni referencias irresolubles, sin cadenas circulares, sin tablas de datos del análisis Y si) y permanece silenciosamente desactivado en caso contrario, de modo que los resultados siempre son idénticos - Un memo complementario
RecalcAggregateCacheacelera el recálculo de agregados condicionales: los escaneos repetidos deSUMIF/COUNTIF/AVERAGEIFsobre el mismo rango y criterios reutilizan el primer resultado, bajo la misma compuerta de estabilidad de referencias y con resultados idénticos - Las expresiones
LAMBDAse evalúan con cierres completos: un nombre definido cuyo RefersTo es unaLAMBDApuede llamarse por nombre con argumentos (=MyFunc(5)), los cierres se vinculan léxicamente dentro deLET(=LET(f, LAMBDA(x, x*2), f(21))), los parámetros ocultan las referencias de columna con la misma ortografía, y el texto de la fórmula hace el viaje de ida y vuelta textualmente; unaLAMBDAdesnuda almacenada como resultado de celda conserva el comportamiento de omitir sin valor LETahora tiene semántica completa: cada vinculación es visible para las vinculaciones posteriores y para la expresión del cuerpo, incluida la composición deLETanidadas — reemplazando la antigua implementación parcial- El texto de las fórmulas ahora acepta la coma como separador de argumentos junto al punto y coma clásico, coincidiendo con la sintaxis canónica de Excel para fórmulas pegadas e importadas
- Las referencias estructuradas en las fórmulas ahora se evalúan:
Table[Column],Table[[Column]], los intervalos de columnas y las formas de elemento[#Data]/[#All]/[#Headers]/[#Totals]se resuelven contra las tablas de Excel del libro en el momento del análisis, de modo que=SUM(Table1[Amount])calcula mientras el texto original de la fórmula sigue haciendo el viaje de ida y vuelta textualmente; las referencias irresolubles conservan el comportamiento previo de omitir sin valor y las formas de fila actual ([@Column]) siguen sin admitirse
Cambiado
- Cuando un libro desactiva la precisión completa, los resultados recalculados ahora se almacenan redondeados a la cantidad de decimales que muestra el formato de número de cada celda, coincidiendo con el comportamiento de «precision as displayed» de Excel para los valores calculados por HotXLS
- Las reglas de formato condicional escritas en XLSX ahora reciben prioridades únicas por hoja, eliminando los archivos de prioridad duplicada que hacían que Excel solicitara reparación
- Los formatos condicionales marcados como de ámbito de tabla dinámica a través de la nueva propiedad
IsPivotse enrutan al cubo de extensiones en lugar del bloque principal de formato condicional de la hoja, donde Excel los descartaría o los colocaría mal
Versión 2.273.0
Cambiado
TXLSXWorkbook.PreserveRawPartsahora copia las imágenes de hoja sin cambios, las imágenes de encabezado y de pie de página y las partes de gráficos con sus cargas útiles comprimidas originales, mientras que las ediciones de los datos de imagen y del modelo de gráfico toman la ruta de serialización- Un SaveAs de archivo exitoso ahora acepta el paquete confirmado como la siguiente línea base de copia sin procesar, lo que permite que los guardados posteriores reutilicen los datos opacos recién serializados, VBA, conexiones, vínculos externos, imágenes, gráficos, temas y cargas útiles de tablas dinámicas sin volver a abrir el paquete de origen anterior
Corregido
- Las relaciones de hoja y de dibujo desconocidas de paquetes con ubicaciones de partes no estándar ahora se re-basan contra sus propietarios canónicos generados, incluidos los paquetes de solo dibujo cuyos únicos anclajes son formas no admitidas conservadas
- Una copia fallida de un miembro comprimido ahora revierte su encabezado local parcial, los bytes de la carga útil, las entradas de la carpeta principal y el recuento del directorio central antes de la reserva segura de serialización, evitando que se acumulen datos inalcanzables en el archivo de salida
Versión 2.272.0
Cambiado
- El SaveAs de XLSX ahora abre un archivo de origen validado para toda la operación de guardado y copia cada parte opaca sin cambios alcanzable por relación con su carga útil comprimida original, evitando los escaneos repetidos del directorio central además de la descompresión y la recompresión, mientras que las cargas útiles modificadas siguen tomando la ruta de serialización
Corregido
- Las relaciones de libro desconocidas de paquetes cuyo libro usa un nombre de parte no estándar ahora se re-basan contra la ubicación de libro generada, evitando que sus partes de destino conservadas se vuelvan inalcanzables después de un SaveAs
- Las lecturas directas proyectadas ahora conservan las definiciones maestras de las fórmulas compartidas fuera del conjunto de filas o columnas seleccionado, de modo que las celdas seguidoras seleccionadas aún reciben sus fórmulas correctamente traducidas sin reconstruir los valores o el texto enriquecido no seleccionados
- Editar un gráfico ya no elimina un formato de número de eje no modelado simplemente porque la creación del formato de número de las etiquetas de datos usa un elemento con el mismo nombre local
Versión 2.271.0
Corregido
- El exportador HTML clásico ahora escribe UTF-8 y lo declara con un
<meta charset>más un doctype HTML5; anteriormente el flujo se escribía en la página de códigos ANSI del sistema, corrompiendo cualquier valor de celda no ASCII, y la declaración de codificación faltante dejaba la página a merced del navegador
Versión 2.270.0
Añadido
- Las etiquetas de datos de los gráficos ahora pueden llevar un formato de número explícito y una ubicación a través de las nuevas propiedades de serie
LabelNumFmtyLabelPos(con sus indicadores*Set), emitidas como<c:numFmt>y<c:dLblPos>tanto en el escritor estándar como en el de gráficos combinados — permitiendo texto de etiqueta de porcentaje o moneda y posiciones de etiqueta como exterior-final o centro; cualquiera de las dos configuraciones por sí sola también activa el bloque de etiquetas, y las series sin configurar permanecen idénticas byte a byte
Versión 2.269.0
Añadido
- Las series de los gráficos de líneas y de dispersión ahora pueden llevar un símbolo de marcador y un tamaño explícitos a través de las nuevas propiedades
MarkerSymbol,MarkerSizeyMarkerSet, emitidas como el bloque<c:marker>de la serie tanto en el escritor estándar como en el de gráficos combinados; las series sin configurar conservan los marcadores automáticos - Los ejes de valores con unidades de visualización ahora pueden mostrar la etiqueta de la unidad («Thousands», «Millions», …) a través de la nueva propiedad de eje
ShowDispUnitsLabel
Versión 2.268.0
Añadido
- Las líneas de tendencia de los gráficos XLSX ahora admiten una intersección fija más períodos de pronóstico hacia adelante y hacia atrás a través de las nuevas propiedades
Intercept/InterceptSet,ForwardyBackward, emitidas como<c:intercept>/<c:forward>/<c:backward>; anteriormente solo el generador clásico de gráficos BIFF ofrecía estos controles, y las líneas de tendencia sin configurar permanecen idénticas byte a byte
Versión 2.267.0
Añadido
- El cálculo de fórmulas ahora evalúa las funciones de números complejos
IMCOS,IMSIN,IMTAN,IMSEC,IMCSC,IMCOT,IMLOG2yIMLOG10, completando la familia de ingenieríaIM*con cobertura de funciones trigonométricas, recíprocas y logaritmos en base 2/base 10 sobre operandos de cadena complejos
Versión 2.266.0
Cambiado
- El lector directo de streaming ahora aplica la proyección de columnas antes de acumular los valores de las celdas: cuando se configura un conjunto de columnas proyectadas, las celdas fuera de él omiten la construcción del valor, la fórmula y la cadena de texto enriquecido que antes se ejecutaba para cada celda y se descartaba al final de la celda, acelerando las lecturas de hojas anchas que proyectan solo unas pocas columnas
Versión 2.265.0
Añadido
- Los grupos de trazado de los gráficos de barras y de columnas ahora exponen un modo de agrupación configurable (
clustered,stacked,percentStacked), un ancho de separación entre grupos y un solapamiento de series a través de las nuevas propiedadesBarGrouping,GapWidthyOverlap; anteriormente todos los gráficos de barras/columnas estaban codificados fijos comoclusteredsin control de separación ni solapamiento, y los grupos sin configurar permanecen idénticos byte a byte mientras la lista de fusión de editar después de abrir trata los nuevos elementos como propios
Versión 2.264.0
Corregido
- Los bordes de las celdas PDF ahora reflejan el estilo y el grosor de borde de la hoja en lugar de dibujar cada borde como una línea sólida idéntica de 0.75 pt: las celdas XLSX representan grosores finos, medios, gruesos, de pelo y dobles, y patrones discontinuos, punteados, raya-punto, raya-punto-punto y raya-punto inclinada, y las celdas BIFF representan estilos finos, medios y discontinuos/punteados
Versión 2.263.0
Añadido
- La exportación PDF ahora puede incrustar metadatos de documento a través de las nuevas propiedades
DocumentTitle,DocumentAuthor,DocumentSubjectyDocumentKeywords; cuando se configura alguna, el PDF lleva un diccionario/Infocon esos campos más una identidadCreator/Producery unaCreationDate, mientras que las exportaciones predeterminadas sin metadatos permanecen idénticas byte a byte
Versión 2.262.0
Corregido
- La exportación CSV ya no entrecomilla de más los campos: un espacio interno ya no obliga a entrecomillar, de modo que valores como
John Smithse escriben sin comillas, coincidiendo con RFC 4180 y Excel; los campos con el delimitador, una comilla doble, un salto de línea o espacios en blanco iniciales o finales se siguen entrecomillando como antes
Versión 2.261.0
Añadido
- Cada serie de gráfico ahora puede llevar un color de relleno sólido a través de la nueva propiedad
SolidFillHex, emitido como las propiedades de forma<c:spPr>de la serie; asignar un color hexadecimal estampa la serie con un color de marca o de paleta en lugar del color de tema automático de Excel, mientras que las series sin configurar permanecen idénticas byte a byte y la lista de fusión de editar después de abrir trataspPrcomo propio para que reemplace en lugar de duplicar
Versión 2.260.0
Cambiado
- El back end de almacenamiento de celdas dispersas ahora hace crecer cada búfer de bloque de 256 filas de forma geométrica (duplicándolo) en lugar de reasignar en cada celda añadida, eliminando el costo de copia cuadrático al cargar hojas densas
Versión 2.259.0
Corregido
- Los registros BIFF8 de protección de objetos (
OBJECTPROTECT) y de protección de escenarios (SCENARIOPROTECT) de la hoja ahora se leen de vuelta al estado de protección de la hoja, de modo que los indicadores de bloqueo sobreviven al viaje de ida y vuelta en lugar de escribirse pero perderse al recargar - Los registros de globales de libro BIFF8
MMS,RefreshAllyUseSelFSahora se conservan a través del viaje de ida y vuelta en lugar de descartarse silenciosamente
Versión 2.258.0
Añadido
- El texto de visualización con formato ahora reconoce las directivas de color
[Cyan]y[Magenta]y las directivas de paleta indexada[Color1]a[Color8], de modo que la salida con formato estilo HTML aplica esos colores en lugar de descartarlos
Versión 2.257.0
Añadido
- El cálculo de fórmulas ahora evalúa las funciones de ingeniería y matemáticas
FACTDOUBLE,SQRTPI,DELTA,GESTEP,SERIESSUMyCONVERT, cubriendoCONVERTlas unidades de masa, distancia, tiempo, presión, fuerza, energía, potencia, magnetismo, temperatura y volumen, y rechazando las categorías de unidades no coincidentes
Versión 2.256.0
Corregido
- El texto de visualización con formato ahora representa los minutos correctamente en máscaras de tiempo como
hh:mm,mm:ssy[h]:mm:ss; anteriormente se usaba elmm(mes) de Delphi, de modo que los campos de minutos mostraban el número del mes - Las directivas de configuración regional y de moneda como
[$-409]y[$$-1009]ahora se eliminan de la salida con formato en lugar de filtrarse como un prefijo literal$-409, mientras que un símbolo de moneda presente en la directiva se conserva
Versión 2.255.0
Añadido
- La lectura de paquetes ZIP ahora entiende los archivos ZIP64, analizando el campo extra de información extendida y el registro y el localizador ZIP64 de fin de directorio central, de modo que los libros cuyas partes u offsets superan los límites clásicos de 4 GB / 65535 entradas se abren correctamente en lugar de fallar la comprobación de cordura del fin de directorio central
Versión 2.254.0
Seguridad
- La verificación de la contraseña de los libros cifrados ahora compara el hash verificador en tiempo constante tanto para Agile Encryption como para Standard Encryption, cerrando un canal lateral de temporización que podía revelar cuántos bytes iniciales del hash de la contraseña coinciden
- Agile Encryption ya no recurre a un generador pseudaleatorio con semilla de tiempo para sales, verificadores y claves intermedias cuando el CSPRNG del sistema no está disponible; ahora falla de forma segura en lugar de emitir material de clave predecible
Versión 2.253.0
Añadido
- El cálculo de fórmulas ahora evalúa las funciones de modelado de matrices de Excel 365
VSTACK,HSTACK,TOROW,TOCOL,WRAPROWS,WRAPCOLS,TAKE,DROP,CHOOSECOLS,CHOOSEROWS,EXPAND,RANDARRAYyTEXTSPLIT, derramando sus resultados a través de la maquinaria existente de matrices dinámicas - El cálculo de fórmulas ahora evalúa las funciones de texto modernas
TEXTBEFOREyTEXTAFTERcon manejo de número de instancia, insensibilidad a mayúsculas/minúsculas, coincidencia al final y valores no encontrados - El cálculo de fórmulas ahora evalúa
RANDBETWEEN,ISEVEN,ISODDy el aliasFORECAST.LINEARdeFORECAST
Versión 2.252.0
Añadido
- Los nombres definidos llevan un comentario opcional, que hace el viaje de ida y vuelta como el registro NAMECMT de BIFF8 y el atributo
commentdedefinedNamede OOXML - Los destinos de hipervínculos de archivos locales se normalizan (conversión de barra invertida a barra, prefijos
file://yfile:///, codificación porcentual de caracteres reservados) para que Excel los almacene textualmente - Los tipos de relleno de formas, imágenes y cuadros de texto (sólido, imagen, degradado, ninguno, automático) ahora se tipan sobre la propiedad sin procesar del tipo de relleno y hacen el viaje de ida y vuelta fielmente
- Las barras de datos de formato condicional admiten colores de borde de barra independientes para valores negativos de Excel 2010+
- Los campos de la caché de tablas dinámicas hacen el viaje de ida y vuelta del vínculo de agrupación multinivel por fecha y numérica
- Las devoluciones de llamada de funciones de usuario reciben un descriptor del tipo de argumento para que los controladores puedan distinguir valores literales, referencias de celda o de rango y constantes de matriz
- La compilación de fórmulas acepta nombres de función localizados (alemán, francés, español), reescritos al inglés canónico antes del análisis léxico
- Los ayudantes de contraseña y cifrado exponen constantes con nombre de código de retorno
Cambiado
- Los guardados de paquete y XLSX ahora fluyen a través de búferes de deflación más grandes con un nivel de memoria de compresión más alto y omiten una pasada redundante de suma de comprobación sobre los bytes ya comprimidos, reduciendo la CPU de guardado y el tiempo real
- El crecimiento interno de los constructores de cadenas, las listas y las tablas hash ahora usa asignación geométrica (duplicación) junto con un punto de redimensionamiento de hash más temprano, reduciendo la rotación de asignaciones y el costo de búsqueda cuando un libro de trabajo lleva muchos estilos, nombres, rangos definidos o cadenas compartidas
- Las búsquedas en la tabla de cadenas compartidas ahora comparan los bytes almacenados directamente antes de materializar una cadena completa, reduciendo las asignaciones de búsqueda en tablas grandes de cadenas compartidas
Versión 2.251.0
Corregido
- La apertura y el guardado de XLSX ahora conservan las declaraciones de espacio de nombres extranjeras de la raíz del libro de trabajo, los atributos de compatibilidad de marcado, las cargas útiles completas de
<extLst>a nivel de libro y sus relaciones desconocidas mientras se regenera el estado tipado del libro de trabajo; las referenciasr:idconservadas siguen la reasignación del ID de relación en lugar de quedar obsoletas cuando entran en conflicto con las relaciones de hoja de cálculo o de libro generadas
Versión 2.250.0
Cambiado
- Las entradas de filas dispersas de XLSX ahora almacenan solo su columna y un identificador de celda estable, eliminando las etiquetas de carga útil no utilizadas, la clasificación redundante y una segunda búsqueda de índice de fila cada vez que cambia un valor de celda, una fórmula o un objeto de texto enriquecido
Versión 2.249.0
Añadido
- Las sobrecargas de
TXLSRTFImport.LoadFromRTFyTXLSWorksheet.OpenRTFpueden importar tablas o listas de párrafos en una fila y columna de destino explícitas basadas en uno, mientras que las sobrecargas originales siguen comenzando en A1
Cambiado
- Los escritores de filas tipados de XLSX ahora agregan lotes estrictamente hacia adelante directamente a los vectores de filas dispersas de tamaño previo, y la búsqueda de celdas dispersas resuelve los aciertos de la primera y la última columna sin búsqueda binaria, mientras que las escrituras superpuestas conservan su ruta de reemplazo existente y los identificadores de celda estables
Corregido
- La copia de partes sin procesar de XLSX respaldada por archivos y la carga selectiva de hojas ahora usan una identidad privada del archivo de origen con validación de tamaño y marca de tiempo, de modo que una apertura de flujo posterior o una asignación pública de
FileNameno pueda redirigir las partes conservadas a otro libro de trabajo RefreshPivotCacheahora cambia las cachés actualizadas a serialización tipada para que los registros reconstruidos no puedan sobrescribirse con bytes de paquete sin procesar obsoletos durante el guardado- La copia de ZIP comprimido sin procesar ahora exige que el flujo de origen contenga exactamente el recuento de bytes comprimidos declarado, rechazando tanto las entradas truncadas como las demasiado largas antes del registro en el directorio central
- Reutilizar un importador RTF ahora restablece el estado del analizador de páginas de códigos y de formato de caracteres entre documentos, de modo que la negrita, la cursiva, el subrayado, el tachado y el tamaño de fuente no puedan filtrarse a la siguiente importación
- Las aperturas
MetadataOnlyde XLSX ahora evitan las cargas útiles opacas de cadenas compartidas, personas, relaciones de hoja de cálculo, comentarios, dibujos, gráficos, tablas, tablas de consulta, tablas dinámicas y las alcanzables desde la hoja de cálculo, mientras conservan las propiedades del libro, los nombres, los estados de las hojas, los estilos, el tema, las conexiones y los vínculos externos
Versión 2.248.0
Cambiado
- El SaveAs de XLSX ahora copia sin cambios las partes de
connections.xmldel paquete de origen cuando el modelo de conexiones analizado no cambia, preservando la fidelidad del XML de origen y evitando la descompresión y recompresión innecesarias, mientras sigue reescribiendo las conexiones editadas a partir del modelo tipado
Versión 2.247.0
Cambiado
- El SaveAs de XLSX ahora copia sin cambios el XML de vínculos externos y las partes de relaciones del paquete de origen cuando el modelo analizado no cambia, preservando el XML de extensiones desconocidas y evitando la descompresión y recompresión innecesarias, mientras sigue reescribiendo los vínculos editados a partir del modelo tipado
Versión 2.246.0
Añadido
- Las sobrecargas de
TXLSHTMLImport.LoadFromHTMLpueden importar en una fila y columna de destino basadas en uno, seleccionar una tabla de nivel superior basada en cero o todas las tablas, y analizar números con un separador decimal explícito sin cambiar la configuración de formato global
Cambiado
- La carga de estilos de XLSX ahora resuelve cada estilo de celda a través de una matriz cellXf inmutable compartida en lugar de la construcción repetida de claves de cadena y las búsquedas lineales en el mapa, reduciendo el tiempo de apertura de libros con estilo y las asignaciones temporales
Corregido
- Los bytes modificados del proyecto VBA ahora omiten la copia de partes sin procesar conservadas, de modo que guardar un libro habilitado para macros editado no pueda restaurar la carga útil original de
vbaProject.bin - La copia de miembros ZIP sin procesar ahora rechaza los métodos de compresión distintos de STORE y DEFLATE en lugar de emitir un encabezado de compresión no coincidente, permitiendo a los llamadores usar rutas seguras de descompresión y reescritura alternativas
- La importación HTML ahora ignora las etiquetas de fila y de celda fuera de las tablas de nivel superior y preserva el comportamiento establecido de todas las tablas de las sobrecargas originales
Versión 2.245.0
Añadido
- Celdas editables de
TXLSWorkbookViewercon entrada consciente de celdas protegidas, entrada y recálculo de fórmulas, selección de rangos rectangulares, selección de referencias de fórmula e historial circular acotado de deshacer y rehacer TXLSPivotDesignerproporciona un modelo reutilizable no visual de lista de campos con zonas de filas, columnas, filtros y valores, movimiento determinista de campos, selección de agregación, validación de diseño y aplicación de resultados- Los libros clásicos de XLS ahora proporcionan diagnósticos
CalculateAndVerifycon registros compartidos de discrepancias que contienen la identidad de la hoja de cálculo, las coordenadas de celda basadas en uno, los valores en caché y recién calculados, y el texto de la fórmula - Las hojas de cálculo clásicas de XLS y XLSX ahora proporcionan escritores de filas y columnas tipados numéricos, de cadena y de variante con coordenadas basadas en uno, recorte a los límites de la cuadrícula, escrituras directas al modelo de celdas y un recuento de escrituras devuelto
Cambiado
- El pintado del visor de XLSX ahora preserva las hojas de cálculo dispersas evitando la materialización de celdas en blanco durante el repintado y la resolución de estilos
TXLSXWorksheet.ReplaceTextahora visita las celdas almacenadas directamente en tiempo lineal sin copiar y ordenar la colección completa de celdas
Corregido
- La lectura y escritura de RC4 y RC4 CryptoAPI de XLS clásico ahora preservan cada cuerpo de registro en texto plano exigido por
[MS-XLS], mantienenBoundSheet8.lbPlyPossin cifrar, consumen las posiciones de flujo de claves coincidentes y activan el descifrado antes de leer el primer registro cifrado después deFILEPASS - La serialización de SpreadsheetML ahora aplica el códec simétrico
_xHHHH_solo a los campos Xstring, mientras que las fórmulas y la sintaxis de referencias usan el escape XML ordinario para que los literales con forma de token conserven su significado exacto de fórmula
Versión 2.244.0
Añadido
- Importación de portapapeles de múltiples formatos:
XLSPasteFromClipboardRichprefiere el formato de portapapeles XML Spreadsheet (que transporta fórmulas, estilos y combinaciones) sobre el texto Unicode simple, conXLSClipboardHasXmlSpreadsheet,XLSGetClipboardXmlSpreadsheetyXLSParseXmlSpreadsheetpara la detección de formato, la extracción y el análisis de SpreadsheetML 2003
Versión 2.243.0
Añadido
- Nombres definidos externos:
TXLSXExternalLinkahora analiza, almacena y hace el viaje de ida y vuelta de las entradas<definedNames>(nombre + refersTo) de los vínculos de libros de trabajo externos, con acceso aAddDefinedName,FindDefinedNamey aDefinedNames[]indexado - Estado de error de actualización por hoja: cada
TXLSXExternalSheetDatalleva un indicadorRefreshErrorque registra si el último intento de actualización falló, analizado desde el atributorefreshErrory emitido a él
Versión 2.242.0
Añadido
TXLSXWorkbook.PreserveRawPartscopia la representación comprimida de las partes sin cambios (tema, proyecto VBA, tablas dinámicas y cachés de tablas dinámicas) directamente del archivo de origen durante el SaveAs, evitando la descompresión y recompresión de las entradas opacas conservadas
Versión 2.241.0
Añadido
- La propiedad
TXLSXWorkbook.SelectedSheetshabilita la carga selectiva de hojas de cálculo: Open analiza el XML de celdas solo para las hojas nombradas en la lista, mientras que las demás hojas conservan sus nombres y estados de visibilidad con cero celdas. Llame aLoadSheet(Index)para materializar una hoja omitida bajo demanda desde el archivo de origen
Versión 2.240.0
Añadido
- El modo de apertura
TXLSXWorkbook.MetadataOnlyanaliza las propiedades del libro de trabajo, los nombres definidos, los nombres de las hojas y sus estados de visibilidad, los estilos, el tema, las conexiones y los vínculos externos, pero omite todo el XML de celdas de las hojas de cálculo y las partes satélite para descubrir rápidamente propiedades y nombres en libros grandes
Versión 2.239.0
Añadido
- Almacenamiento de celdas compacto por bloques de 256 filas con identificadores públicos estables, serialización por filas amigable con la caché y compactación de estilos en todos los grupos del libro antes de cada guardado
- Las superposiciones de estilo por intervalos permiten que el formato de filas, columnas y rectángulos se mantenga compacto sin materializar objetos de celda vacíos, se resuelven de forma diferida al acceder a la celda, sobreviven a las ediciones estructurales y hacen el viaje de ida y vuelta como entradas de celda compactas de columna, de fila y solo de estilo
Cambiado
- El guardado normal del libro ahora transmite cada fila de la hoja de cálculo directamente al flujo de deflación del paquete, de modo que la memoria máxima sigue a la fila individual más grande en lugar del XML completo de la hoja de cálculo
- Las cadenas compartidas y las partes XML auxiliares ahora transmiten una entrada a la vez a través de un único serializador UTF-8 reutilizable, acotando la memoria máxima por la entrada más grande en lugar de la parte completa
Versión 2.238.0
Añadido
TXLSPaginationModelconstruye páginas lógicas reutilizables para rangos, hojas de cálculo y libros de XLS y XLSX con geometría de papel, márgenes, encabezados, pies de página, bandas de filas y columnas, títulos repetidos, orden de páginas, política de líneas de cuadrícula y colocación de dibujosTXLSWorkbookViewerahora proporciona vista previa de impresión de modelo compartido, navegación de páginas con teclado y rueda de desplazamiento, acceso en caché aPaginationModel,RefreshPaginationexplícito y salida EMF de la página seleccionadaTXLSPDFExport.CreatePaginationModelexpone el modelo de páginas exacto en propiedad que usan el recuento y la representación de PDF para los seis tipos de entrada de XLS y XLSX
Cambiado
- La exportación PDF y el recuento de páginas ahora consumen un único motor de paginación en lugar de mantener bucles de páginas separados para XLS y XLSX
- El escalado de ajustar al ancho y ajustar a la altura ahora se resuelve contra las bandas de página reales, incluidos los saltos manuales y los títulos repetidos, dentro del rango de escala de 10 % a 400 % de Excel
Versión 2.237.0
Añadido
TXLSFormulaDebuggercrea una sesión interactiva en propiedad que contiene el árbol de expresiones analizado, los intervalos de origen, los operadores, los nodos y valores de operandos, los resultados intermedios, el orden de evaluación determinista y el estado navegable del paso actual- Las sesiones de depuración de fórmulas exponen las dependencias de celdas y rangos con coordenadas de hoja resueltas, informan de las ramas seleccionadas y omitidas para
IF,IFERROR,IFNA,CHOOSE,IFSySWITCH, y preservan los errores internos recuperados con su nodo de origen
Cambiado
Calculatede libro de trabajo y de hoja de cálculo ahora devuelve los errores de fórmula de Excel como valores de errorVariantestándar en lugar de convertirlos aNullTXLSFormulaTracerahora registra las pilas de operandos exactas de antes y después para los pasos de empuje y reducción
Versión 2.236.0
Añadido
TXLSXWorksheet.StructuralEditRegistryahora permite que los metadatos de hoja de cálculo propiedad de la aplicación participen en las inserciones o eliminaciones de filas y columnas a través deIXLSXStructuralEditParticipant
Cambiado
- Las ediciones estructurales de XLSX ahora completan su trabajo sensible a referencias en una única transacción protegida que cubre fórmulas, nombres, validaciones, formatos condicionales, comentarios, hipervínculos, dibujos, tablas, consultas, escenarios, tablas de datos, configuración de impresión, minigráficos, cachés y vistas de tablas dinámicas, y extensiones de hoja de cálculo
Corregido
- Las filas y columnas insertadas o eliminadas ahora actualizan los rangos protegidos, los anclajes de comentarios encadenados, el VML de comentarios clásicos reabierto, las referencias de minigráficos locales y entre hojas, las fuentes y anclajes de tablas dinámicas tipados, las fórmulas calculadas de tablas dinámicas y las referencias reconocibles dentro del XML de extensiones de hoja de cálculo conservado
Versión 2.235.0
Añadido
TXLSDirectWriterahora agrega comentarios clásicos, imágenes de hoja de cálculo ancladas, gráficos de columnas, barras, líneas, áreas, circulares, de anillo y de dispersión respaldados por fórmulas, y ChartML completo suministrado por el llamador sin construir un modelo de objetos completo del libro de trabajo- Las imágenes pueden suministrarse como bytes, flujos que permiten búsqueda con transferencia opcional de propiedad, o rutas de archivo, y pueden usar contenido PNG, JPEG, GIF, BMP, EMF o WMF
Cambiado
- Las partes ricas del escritor directo usan descriptores de canal lateral de la hoja actual, asignan los identificadores de relación de la hoja de cálculo antes de que la hoja se cierre, y transmiten los medios y las partes XML relacionadas después del XML de la hoja de cálculo para mantener la memoria de las filas independiente del tamaño de la hoja
Versión 2.234.0
Añadido
TXLSDirectReaderahora expone eventos opcionales de dimensión, formato de hoja, columna, fila, panel y rango combinado con registros de diseño tipados- Los eventos de columna y fila informan de los anchos o alturas, el estado oculto y contraído, los niveles de esquema y los índices de estilo de origen sin construir objetos de celda de la hoja de cálculo
Cambiado
- Las devoluciones de llamada de diseño asignadas usan una pasada de metadatos con memoria acotada antes de la entrega de celdas, asegurando que los rangos combinados y otros datos de diseño lleguen antes que las celdas que dependen de ellos, mientras que los escaneos ordinarios solo de celdas conservan la ruta original de una sola pasada
- Las lecturas directas paralelas mantienen las devoluciones de llamada de diseño en el hilo llamador y terminan los metadatos de la hoja seleccionada antes de drenar las colas ordenadas de celdas de los trabajadores
Versión 2.233.0
Añadido
TXLSXChartTextStyleahora proporciona nombres de fuente tipados para el título del gráfico, la leyenda, el título del eje y las etiquetas del eje, tamaños de punto, colores RGB, énfasis y rotación de textoTXLSXChartLayoutahora proporciona posicionamiento manual normalizado del área de trazado, el título del gráfico, el título del eje y la leyenda con modos explícitos de borde o factor y destinos de trazado internos o externos- Los gráficos ahora exponen controles tipados de visibilidad, posición, superposición, estilo de texto y diseño de la leyenda junto con la configuración de superposición del título del gráfico
Cambiado
- Los diseños manuales siempre serializan grupos completos de x, y, ancho y alto usando modos predeterminados compatibles con Office para que Excel no descarte coordenadas parciales o conflictivas
Corregido
- Editar las fuentes o los diseños tipados de los gráficos preserva las listas de extensiones no relacionadas y el contenido de espacios de nombres personalizados, mientras que borrar una propiedad conocida de color o énfasis ya no restaura el valor importado durante la fusión estructural
Versión 2.232.0
Añadido
TXLSXImageahora expone bordes de recorte basados en porcentaje, transparencia, brillo, contraste, rotación en grados y modos de relleno de estiramiento o mosaicoTXLSXImage.HasPreservedXmlinforma de si el DrawingML importado está disponible, mientras queClearPreservedXmlopta por la regeneración limpia del modelo tipado para una imagen
Cambiado
- Los valores de efectos de imagen usan almacenamiento compacto de punto fijo y escriben unidades nativas de DrawingML sin asignar objetos auxiliares por efecto
Corregido
- Editar una propiedad admitida en una imagen importada ahora preserva las extensiones no relacionadas, las opciones de compatibilidad de marcado, los atributos personalizados, los efectos de forma y el contenido calificado por espacio de nombres
Versión 2.231.0
Añadido
- Los gráficos XLSX importados ahora preservan su ChartML original mientras
TXLSXWorkbook.PreserveUnsupportedPartsestá habilitado, conservando espacios de nombres desconocidos, alternativas de compatibilidad de marcado, listas de extensiones, estilos personalizados y formato no modelado TXLSXChart.HasPreservedXmlinforma de si el ChartML original está disponible, yClearPreservedXmlpermite a las aplicaciones optar por la regeneración limpia del modelo tipado para un gráfico
Cambiado
- Guardar un gráfico importado sin tocar reproduce su ChartML original, mientras que las ediciones de propiedades admitidas superponen estructuralmente solo los nodos de gráfico modelados y mantienen en su lugar el contenido no relacionado
Corregido
- Editar un título de gráfico, una serie, un eje u otra propiedad admitida ya no descarta las extensiones creadas por Excel no relacionadas, el contenido alternativo, los estilos o el formato de la parte del gráfico
Versión 2.230.0
Añadido
TXLSXChart.AddPlotGroupahora construye gráficos combinados ordenados cuyas familias de gráfico y series conservan asignaciones independientes de eje principal o secundario- Los gráficos ahora exponen ejes de categorías y de valores principales y secundarios más un eje de series, con configuraciones tipadas de ejes de categorías, valores, fecha y series que incluyen posiciones, identificadores, cruces, unidades de fecha, intervalos de etiquetas y visibilidad
- Los gráficos de columnas, barras, líneas, circulares y de áreas ahora tienen tipos de gráfico 3D dedicados con rotación, altura, profundidad, perspectiva, ejes en ángulo recto y profundidad de separación configurables
- Las series ahora exponen cachés tipados de cadenas y números para nombres, categorías, valores y tamaños de burbuja, incluidos los índices de puntos dispersos y los códigos de formato numérico
Cambiado
- Las API de compatibilidad
ChartType,AddSeriesySeriesplanas siguen dirigiéndose al grupo de trazado principal mientras el modelo del gráfico conserva cada grupo de trazado ordenado
Corregido
- Abrir y volver a guardar gráficos combinados ya no los colapsa en una única familia de gráfico ni pierde los ejes secundarios, de fecha o de series
- Las referencias de fórmulas de los gráficos y los valores de series en caché ahora sobreviven a las copias de libros y a los ciclos de apertura/guardado sin aplanarse ni descartarse
- Los anclajes de los gráficos ahora se corresponden con sus partes de gráfico por identificador de relación, de modo que las aplicaciones que reordenan las entradas de relación ya no intercambian el contenido de los gráficos entre posiciones de la hoja de cálculo
Versión 2.229.0
Añadido
TXLSXWorksheet.HeaderFooterImagesahora crea, busca, reemplaza y elimina espacios de imagen tipados para cada posición izquierda, central y derecha del encabezado o pie de página en las páginas impares, pares y primeras- Las imágenes de encabezado y pie de página exponen sus datos sin procesar, formato, título, dimensiones en puntos y márgenes en puntos, con carga directa desde archivos PNG, JPEG, GIF, BMP, EMF y WMF
Cambiado
- Las imágenes de páginas pares y primera página habilitan automáticamente las variantes de página correspondientes y mantienen los códigos de campo de imagen requeridos cuando se edita el texto del encabezado o pie de página
Corregido
- Los comentarios de la hoja de cálculo y las imágenes de encabezado o pie de página ahora conservan relaciones VML independientes cuando comparten una misma hoja de cálculo
- Los espacios de imágenes de encabezado y pie de página creados por Excel ahora conservan sus bytes de imagen, formatos, títulos, dimensiones, márgenes y relaciones a través de los ciclos de apertura y guardado
Versión 2.228.0
Añadido
- Las hojas de cálculo XLS clásicas y las colecciones de formas ahora crean y descubren controles tipados
TXLSButtonyTXLSRadioButtonjunto con casillas de verificación, cuadros combinados y cuadros de lista - Los controles de formulario ahora exponen nombres de macro, celdas vinculadas, rangos de entrada, estados de marca, apariencia plana o 3D y enlaces de grupo de radio mediante propiedades tipadas
- Los nombres definidos exponen
IsMacropara que los enlaces de macro conserven los metadatos de nombre de libro requeridos
Corregido
- Editar y volver a guardar los controles de formulario clásicos ya no descarta estados de marca, enlaces de macro, fórmulas de celdas vinculadas, rangos de origen o metadatos de grupo de radio admitidos
- Borrar el rango de origen de un cuadro combinado o cuadro de lista ahora elimina la fórmula de entrada serializada en lugar de restaurar el rango anterior en la próxima apertura
Versión 2.227.0
Añadido
LINESTyLOGESTahora devuelven arreglos de coeficientes multivariables completos y matrices estadísticas opcionales de cinco filasTRENDyGROWTHahora devuelven arreglos de predicción con forma para entradas de una variable y multivariables
Cambiado
- La aritmética de arreglos, las comparaciones, la concatenación, la negación unaria y las operaciones de porcentaje ahora difunden escalares y filas o columnas únicas conservando los resultados por celda
- Las dependencias de cálculo ahora expanden los nombres anidados de libro y hoja de cálculo, los nombres definidos por fórmula y las referencias de múltiples áreas con protección de ciclos consciente del ámbito
Corregido
- Un error en un elemento del arreglo ya no colapsa el resultado completo ni recurre incorrectamente a la evaluación escalar
- Los nombres definidos por fórmula cuyas dependencias pueden resolverse estáticamente ya no fuerzan un recálculo completo volátil innecesario
Versión 2.226.0
Añadido
- Las cachés dinámicas XLSX existentes y las vistas de tablas dinámicas ahora se cargan en el modelo tipado mediante relaciones de paquete, incluyendo registros de caché, campos, elementos compartidos, agrupamiento, filtros, formatos, definiciones calculadas y extensiones
TXLSPivotTable.Makeahora evalúa los campos de caché calculados, los elementos calculados y los miembros de datos calculados con enlace de nombres consciente de las dependencias- Los modos ampliados de
ShowDataAsañaden porcentajes padre, porcentajes acumulados y rango ascendente o descendente con marcado de extensión XLSX válido
Cambiado
- La generación de resultados dinámicos ahora aplica la visibilidad de elementos, las selecciones de página y los filtros de título, fecha, agregado y valor antes de construir los dominios agrupados
- Los grupos numéricos, de fecha y discretos, el ordenamiento por etiqueta o valor de datos, los subtotales configurados y las filas o columnas de total general materializadas opcionales ahora participan en la generación de resultados
Corregido
- Los filtros dinámicos ahora usan marcado de filtro de nivel raíz válido para el esquema y tipos de filtro simbólicos en lugar de valores numéricos ambiguos
- La carga basada en relaciones ya no asume nombres de partes convencionales o secuenciales de caché dinámica, registro de caché o tabla dinámica
Versión 2.225.0
Añadido
TXLSXWorkbook.ConnectionsyTXLSXWorksheet.QueryTablesahora proporcionan creación y edición tipada para metadatos de bases de datos externas, web, texto y resultados de consulta- Los parámetros de conexión conservan su tipo exacto Boolean, entero, de coma flotante, de cadena o de referencia de celda, incluyendo los valores explícitos de cero, false y de cadena vacía
Cambiado
- Abrir y guardar XLSX ahora resuelve y escribe las partes de conexión y de tablas de consulta a través de sus relaciones propietarias, sincroniza las tablas de resultados y los nombres definidos, y conserva los atributos, nodos secundarios y listas de extensión desconocidos
- Las ediciones de filas y columnas mantienen alineados los rangos de resultados de consulta, mientras que las copias de hojas de cálculo dentro del mismo libro y entre libros conservan la propiedad de las consultas y reasignan los identificadores de conexión y los nombres en conflicto
Corregido
- Las tablas de consulta pueden coexistir con tablas estándar, comentarios encadenados y tablas dinámicas sin colisiones de identificadores de relación de la hoja o del libro
Versión 2.224.0
Añadido
- Las hojas de cálculo XLS clásicas y las hojas XLSX modernas ahora exponen
AddDataTableyDataTablespara tablas de datos What-If de una variable por fila, una variable por columna y dos variables
Cambiado
- El recálculo del libro evalúa cada resultado de tabla de datos con un contexto de entrada aislado, incluyendo las dependencias indirectas de fórmulas, y conserva las definiciones más los resultados en caché a través de abrir, guardar, copiar hoja y ediciones estructurales de filas o columnas
Corregido
- Las celdas de entrada What-If eliminadas ahora producen resultados
#REF!, y el recálculo clásico del libro visita cada hoja de cálculo en lugar de omitir la primera hoja - Insertar filas en la parte superior de una hoja de cálculo clásica ya no corre riesgo de una infracción de acceso en Win64
Versión 2.223.0
Cambiado
- La cancelación del lector directo paralelo ahora se propaga a través de las lecturas activas de miembros ZIP y cada paso de descompresión en lugar de esperar a la siguiente extracción de XML
Corregido
- Abortar un escaneo paralelo de hoja de cálculo ya no espera a que termine una lectura XML comprimida grande antes de que se liberen los trabajadores bloqueados
Versión 2.222.0
Añadido
TXLSDirectReader.ParallelBufferMemoryLimitlimita la carga útil agregada de la cola de celdas en bruto para el escaneo paralelo de hojas de cálculo, mientras queParallelPeakBufferedBytesexpone el pico medido para diagnóstico y pruebas de capacidad
Cambiado
- Las lecturas directas paralelas ahora transmiten las entradas ZIP de la hoja de cálculo a lectores XML locales del trabajador y colas acotadas productor-consumidor en lugar de retener el XML inflado completo de la hoja y los búferes completos de celdas por hoja
- Las hojas de cálculo activas reciben presupuestos de cola independientes y se procesan en ventanas del tamaño del trabajador, preservando el orden de los callbacks sin permitir que las hojas posteriores sometan a inanición a la hoja que se está emitiendo actualmente
Corregido
- Las cancelaciones de celdas, las fallas de callback y los errores de trabajador ahora despiertan a productores y consumidores bloqueados, detienen las extracciones de XML de forma cooperativa, unen a todos los trabajadores y dejan el lector directo reutilizable
Versión 2.221.0
Cambiado
- La apertura de XLSX con varias hojas ahora transmite cada entrada ZIP de hoja de cálculo directamente a su inflador y lector XML locales del trabajador en lugar de retener el XML inflado de la hoja antes del análisis
- Los lectores simultáneos de hojas de cálculo serializan solo lecturas posicionadas cortas desde el origen del paquete, de modo que la descompresión y el análisis de XML permanecen en paralelo mientras la memoria de entrada transitoria de la hoja está limitada por la cantidad de trabajadores activos
Versión 2.220.0
Añadido
- La generación de resultados de tabla dinámica ahora ejecuta los nueve modos clásicos
ShowDataAs, incluyendo diferencia, porcentaje de un elemento base, diferencia porcentual, total acumulado, porcentaje de fila, porcentaje de columna, porcentaje del total y cálculos de índice xlPivotBaseItemPreviousyxlPivotBaseItemNextproporcionan selectores tipados para elementos base adyacentes en cálculos de comparación
Cambiado
- Los porcentajes de tabla dinámica y los valores de índice usan totales de fila, columna y generales agregados directamente de los registros de origen, preservando la semántica correcta de Average, Product, Count, varianza y desviación estándar sin re-escanear el origen
- Los totales acumulados siguen el orden de los elementos de tabla dinámica, se reinician independientemente para cada grupo de pares y conservan un almacenamiento disperso de resultados para tablas dinámicas de alta cardinalidad
Corregido
- Los registros BIFF8
SXDIahora usan la disposición fija estándar de 14 bytes y preservanShowDataAs, campo base, elemento base, formato de número y nombre a mostrar mediante lecturas tipadas, mientras que los registros heredados de HotXLS permanecen legibles - Los campos de datos XLSX ahora escriben índices de campos de tabla dinámica, mapean los selectores anterior y siguiente a los valores OOXML requeridos y emiten atributos base solo para los modos que los usan
- Las celdas de comparación faltantes permanecen en blanco, mientras que los denominadores cero presentes devuelven
#DIV/0!en vez de confundirse con datos faltantes
Versión 2.219.0
Corregido
VDBahora aplica depreciación de saldo decreciente variable sobre períodos fraccionarios, cambia a depreciación en línea recta cuando es beneficioso y respetano_switch- Los factores cero, los límites de valor de salvamento, los períodos iniciales fraccionarios y los rangos de períodos inválidos ahora siguen resultados compatibles con Excel en lugar de redondear períodos y devolver una aproximación simplificada de depreciación de saldo decreciente
Versión 2.218.0
Añadido
TXLSXWorksheet.Scenariosahora proporciona autoría tipada del Administrador de escenarios What-If con escenarios nombrados, índices activo y mostrado, rangos de celdas variables, metadatos de usuario y comentario, estados bloqueado y oculto, y valores de celdas de entrada propios- Las definiciones de escenario ahora siguen las copias de hojas de cálculo y las ediciones estructurales de fila o columna, mientras que los límites de compatibilidad de Excel se validan antes de que metadatos inválidos puedan ser escritos
Corregido
- Abrir y guardar escenarios creados por Excel ahora preserva los atributos raíz y las celdas de entrada anidadas en lugar de aplanar la jerarquía a XML crudo con pérdida
- Los elementos de hoja de cálculo Escenario, AutoFilter, consolidación de datos, celdas combinadas y fonéticos ahora usan el orden del esquema para que los consumidores estrictos de planillas no requieran una pasada de reparación
Versión 2.217.0
Añadido
TXLSXWorksheet.IgnoredErrorsahora proporciona creación con tipos para cada categoría estándar de errores ignorados con referencias multiárea, soporte de copia de hojas, actualizaciones de ediciones estructurales y ciclos de abrir/guardarTXLSXWorkbookahora expone el modo de referencia, recalcular al guardar, precisión completa, cálculo concurrente y ajustes de concurrencia manual junto a sus opciones de cálculo existentes
Corregido
- Cada ajuste de cálculo del libro no predeterminado ahora produce y mantiene de forma independiente un elemento
calcPrordenado según el esquema, incluidos los límites de iteración configurados antes de activar la iteración - Los modos de cálculo, modos de referencia, límites de iteración, identificadores de cálculo y conteos de concurrencia manual ahora rechazan o normalizan valores no válidos en lugar de escribir un estado ambiguo del libro
Versión 2.216.0
Cambiado
XMATCHyXLOOKUPahora realizan búsquedas binarias logarítmicas ascendentes o descendentes cuando se solicita, incluidos los límites de duplicados y de coincidencia aproximada compatibles con ExcelXIRRahora respeta su estimación con un solucionador protegido que puede encontrar raíces altas y sensibles a la estimación, mientras queXNPVusa sumación compensada y entradas validadas de fecha y tasa- La búsqueda de nombres definidos XLSX de alta cardinalidad ahora usa un índice hash diferido consciente del ámbito conservando el orden serializado, la precedencia de nombres locales y el comportamiento de primera coincidencia
- Las partes del paquete XLSX preservadas ahora asignan su tamaño sin comprimir declarado una sola vez conservando la verificación completa de longitud y CRC
Corregido
- Los modos de búsqueda no válidos, las búsquedas binarias con comodines, los rangos de búsqueda bidimensionales y los vectores de retorno de
XLOOKUPno coincidentes ahora informan errores de fórmula en lugar de producir resultados ambiguos XIRRyXNPVahora rechazan signos de flujo de caja, tasas, estimaciones y fechas no válidos, truncando los seriales de fecha fraccionarios, e informan la no convergencia en lugar de devolver un punto medio no verificado
Versión 2.215.0
Agregado
FREQUENCYahora devuelve una matriz vertical con un resultado por bin más el cubo de desbordamiento
Cambiado
SORTahora usa una ordenación estable y escalable para filas o columnas, conservando el orden de origen de las claves igualesUNIQUEahora usa una coincidencia estable indexada por hash para filas o columnas, incluidos los resultadosexactly_oncey el texto sin distinción de mayúsculas y minúsculasPERCENTRANK.INC,PERCENTRANK.EXCyMODE.MULTahora escalan de forma eficiente con entradas de alta cardinalidad, en lugar de depender de recorridos cuadráticos
Corregido
- La opción
by_coldeSORTyUNIQUEahora opera sobre las columnas en lugar de recurrir al comportamiento por filas
Versión 2.214.0
Agregado
- La apertura de XLSX ahora acepta partes XML en flujo UTF-16 little-endian y big-endian con marca de orden de bytes o la declaración específica de endianness requerida, incluidos caracteres fuera del Plano Multilingüe Básico
Cambiado
- Las actualizaciones de caché de tabla dinámica de alta cardinalidad ahora usan índices hash deterministas para los valores compartidos y reservan la matriz de registros una sola vez, conservando el orden de primera aparición de los elementos a la vez que se evitan las búsquedas lineales repetidas y el crecimiento fila por fila
- Las lecturas directas proyectadas descartan las celdas fuera de las filas y columnas seleccionadas antes de copiar los valores sin procesar, las fórmulas y el texto enriquecido en los búferes por hoja
Corregido
- El XML mal formado con marcas de orden de bytes duplicadas, declaraciones de codificación no admitidas o contradictorias, firmas UTF-32, longitudes impares de bytes UTF-16 o pares sustitutos no válidos ahora se rechaza
- Los procesos de trabajo paralelos del lector directo ahora inicializan todo el estado del trabajo antes de iniciar, dejan de aceptar trabajos de hoja nuevos tras un error, vuelven a generar el error del trabajo de índice más bajo de forma determinista y limpian todos los procesos de trabajo creados si la construcción del grupo falla
Versión 2.213.0
Agregado
T.TESTahora evalúa muestras independientes ya sea con varianza igual agrupada o con varianza desigual de Welch además de las muestras emparejadas, incluidas las probabilidades de una y dos colas
Cambiado
- La apertura de XLSX ahora sigue los destinos de relación del libro, la hoja de cálculo y el dibujo para hojas de cálculo, cadenas compartidas, estilos, temas, macros, vínculos externos, comentarios, comentarios encadenados, VML, dibujos, imágenes, gráficos, tablas y tablas dinámicas, incluidos los paquetes válidos que usan rutas de parte renombradas o no contiguas
Corregido
- Los paquetes mal formados con identificadores de relación duplicados ya no permiten que una relación no admitida posterior sustituya al primer destino utilizable durante la recuperación de compatibilidad
Versión 2.212.0
Cambiado
- El seguimiento de dependencias de fórmulas ahora escala mejor en hojas de cálculo grandes indexando las dependencias de celda y de rango antes de las reconstrucciones y la invalidación de celdas sucias
- Las fórmulas estadísticas y de regresión grandes ahora evalúan todos los valores numéricos de los rangos proporcionados en lugar de detenerse en el búfer de tamaño fijo anterior
Corregido
- Las celdas XLSX fuera de la cuadrícula de la hoja de cálculo se rechazan de forma uniforme, de modo que las coordenadas no válidas ya no pueden suplantar celdas válidas
- La edición de fórmulas ya no restablece el modo de cálculo del libro, los límites de iteración, los indicadores de cálculo completo ni otros ajustes de cálculo
- Las lecturas de listas de blobs ahora validan explícitamente los rangos solicitados y permiten fragmentos vacíos válidos al final del flujo
Seguridad
- El cifrado XLS clásico ahora cubre los flujos de caché dinámica junto con los datos de la hoja de cálculo
- Las colas de extensión SST mal formadas y los registros del directorio central ZIP se rechazan antes de que una asignación sobredimensionada, las lecturas truncadas o los registros de directorio falsos incrustados en comentarios puedan afectar la carga
Versión 2.211.0
Agregado
TXLSPivotTable.Makeahora materializa cada campo de datos configurado con su propia agregación y expande los valores en filas o columnas segúnDataFieldAxisIsRow
Cambiado
- La generación de resultados dinámicos reutiliza dominios de clave de fila y columna indexados por hash en todos los campos de datos, selecciona almacenamiento denso o disperso del acumulador según la forma del resultado, conserva el orden de los elementos de caché más allá de nueve claves y emite etiquetas combinadas legibles para los ejes de varios campos
Corregido
Countahora incluye valores de caché de texto no vacío, booleanos, de error, de fecha y numéricos, mientras queCountNumsincluye solo valores numéricos y de fecha;Productdevuelve cero para las intersecciones sin valores numéricos, los blancos ya no se cuentan como entradas y las tablas dinámicas de solo valores pueden materializar sus totales generales sin campos de fila o columna
Versión 2.210.0
Agregado
TXLSWorkbookViewerahora representa los rellenos condicionales XLSX, el color y énfasis de fuente, los formatos numéricos, las barras de datos direccionales positivas y negativas, los degradados, los bordes, los ejes, los valores ocultos y todas las familias de conjuntos de íconos integradasTXLSWorkbookViewer.RefreshConditionalFormatsreconstruye el estado agregado y de umbral preparado después de que los llamadores modifiquen un libro XLSX adjunto en el lugar
Cambiado
- El visor almacena en caché un evaluador de formato condicional preparado por cada hoja de cálculo activa, lo reutiliza entre operaciones de desplazamiento, selección y repintado, y lo libera cuando cambia el libro o la hoja de cálculo
Corregido
- Los ejes de las barras de datos en el límite del extremo derecho ahora se recortan dentro de la celda propietaria en lugar de dibujarse en la celda adyacente
Versión 2.209.0
Agregado
- Las hojas de cálculo XLSX ahora exponen un evaluador de formato condicional preparado que resuelve la prioridad de las reglas,
StopIfTrue, las fórmulas relativas, los estilos diferenciales, la clasificación Superior/Inferior, las pruebas de promedio superior/inferior, los valores duplicados y únicos, los períodos de fecha relativos, las escalas de dos y tres colores, las barras de datos y los conjuntos de íconos para cualquier celda
Cambiado
- Las exportaciones a HTML y PDF ahora representan los rellenos condicionales correspondientes, el énfasis y color de fuente, los formatos numéricos, las escalas de color, las barras de datos direccionales positivas y negativas, los ejes explícitos, los glifos de familias de íconos, los valores ocultos y los colores del tema con resolución de matiz
- Los dominios de formato condicional grandes ahora reutilizan las fórmulas relativas compiladas sin asignación de árbol de sintaxis por celda, emiten estadísticas de media, desviación, mínimo y máximo en flujo, conservan valores ordenados únicamente para las reglas de clasificación o percentil, ordenan por lotes las claves duplicadas Unicode y usan índices candidatos por bandas de filas para evitar examinar reglas no relacionadas
Corregido
- Las reglas condicionales clásicas ahora cargan los tipos de expresión correctamente y evalúan de forma uniforme la inversión entre límites, los predicados de texto sin distinción de mayúsculas y minúsculas, las celdas en blanco y los predicados de error
Versión 2.208.0
Cambiado
- El motor de almacenamiento empaquetado de celdas ahora escribe cargas útiles nativas etiquetadas de cadena, booleano, error y blanco, recorre las celdas en orden principal por filas y codifica con longitud de carrera las celdas consecutivas del mismo tipo para un menor uso de memoria y una salida secuencial más rápida
- Las cadenas compartidas del libro clásico ahora mantienen los bytes de caracteres en una sola asignación y crean los valores de cadena decodificados de forma diferida, lo que reduce la sobrecarga de asignación para las tablas grandes de cadenas únicas
Agregado
- Las tablas dinámicas ahora pueden calcular una matriz de resultados completa a partir de los registros de caché con agrupación de claves de fila y columna y las 11 funciones de agregación admitidas
- Los gráficos del libro clásico ahora exponen información con tipo de series, eje, leyenda y grupo de gráfico para los flujos de trabajo de conversión e inspección
Versión 2.207.0
Agregado
TXLSPivotCache.RefreshFromSourceconstruye una caché dinámica a partir de un rango de hoja de origen: lee la fila de encabezado para nombrar los campos, destila los valores distintos de cada fila de datos en el dominio de elementos compartidos por campo, fija el tipo de campo a partir del primer valor no vacío y registra el índice del elemento compartido para cada par (registro, campo) — de modo que una tabla dinámica se pueda crear mediante programación a partir de un rango de datos en lugar de depender delrefreshOnLoadde Excel. Un lector de valores basado en retrollamada mantiene a la unidad dinámica libre de una dependencia directa de la hoja de cálculo
Versión 2.206.0
Agregado
- El nuevo
TlxCellMMU(unidadlxCellMMU) implementa un motor de almacenamiento de celdas empaquetado y con orden principal por filas, con codificación por longitud de carrera de las secuencias de celdas del mismo tipo y vacías, y un código de tipo de byte etiquetado que además actúa como selector del ancho de datos — de modo que una columna de enteros pequeños cuesta un byte por celda en lugar de ocho. El motor codifica los números en el menor ancho que preserva el valor (enteros escalados int8 / int16 / int32 / de 2 decimales / de 4 decimales / IEEE double), almacena de forma compacta las celdas de índice de cadena, booleanas, de error y en blanco, y expone una APIGetValue/SetNumber/SetStringademás de un iterador hacia adelante. Este es el back-end de nueva generación detrás de un indicador de función para la APITXLSXCellsexistente, con el objetivo de una reducción del 10–25× en el conjunto de trabajo en hojas densas
Versión 2.205.0
Agregado
TXLSCustomChart.GetChartInfoahora decodifica un resumen semántico a partir del flujo de registros de gráfico BIFF sin procesar — familia de tipo de gráfico (barras, líneas, circular, área, dispersión, radar, anillo, superficie, burbujas), la cantidad de series y la presencia de leyenda — de modo que el tipo de un gráfico BIFF se puede consultar mediante programación y una conversión de gráfico BIGH a XLSX puede elegir la familia de destino correcta. El almacenamiento de paso de bytes que garantiza la fidelidad de ida y vuelta no cambia
Versión 2.204.0
Cambiado
- La tabla de cadenas compartidas del clásico
.xlsahora escribe las cadenas de solo ASCII en la codificación Latin-1 comprimida ([MS-XLS] §2.5.294fHighByte=0, un byte por carácter) en lugar de usar siempre UTF-16, lo que reduce aproximadamente a la mitad el tamaño de la SST — y por tanto el del archivo.xls— en los libros con mucho contenido ASCII
Versión 2.203.0
Agregado
- El nuevo
TlxCompoundFilelee y escribe el formato contenedor Compound File Binary (OLE2) de forma directa en Pascal puro, sin dependencia deole32.dll/ COMIStorage— lo que abre la puerta al manejo de.xlsen memoria y multiplataforma. El lector cubre el diseño v3 que HotXLS encuentra en la práctica (encabezado + DIFAT en el encabezado + recorrido de la cadena FAT + MiniFAT y el miniflujo para flujos de menos de 4096 bytes + el árbol de directorio); el escritor emite un contenedor v3 mínimo pero válido y suficiente para la salida de HotXLS
Versión 2.202.0
Agregado
- El estado de ordenación del autofiltro ahora cuenta con un modelo con tipo (
TXLSXSortStatecon elementos secundariosTXLSXSortCondition) que cubre ordenar por valor / color de celda / color de fuente / ícono, método de ordenación (ninguno / trazo / pinYin), distinción de mayúsculas y minúsculas, ordenación de columnas y listas personalizadas por condición — de modo que las aplicaciones pueden construir estados de ordenación mediante programación en lugar de editar XML sin procesar, mientras que el traspaso opaco heredadoSortStateXmlsigue siendo el preferido para los archivos que HotXLS no creó - Los filtros dinámicos ahora se leen y escriben como un
TXLSXDynamicFilterTypecon tipo (promedio y desviación estándar por encima/debajo, hoy/ayer/mañana, esta/última/próxima semana, mes, trimestre y año, acumulado del año hasta la fecha, Q1–Q4, M1–M12) con límites opcionalesval/maxVal— abrir un libro que usa un filtro dinámico ya no lo descarta al guardar
Versión 2.201.0
Agregado
- Los gráficos de superficie y de superficie 3-D (
xlsxChartSurface/xlsxChartSurface3D) ahora son tipos de gráfico de primera clase — se escriben, leen y traspasan de ida y vuelta como las demás familias de gráficos - La API de creación de autoformas cubre un subconjunto práctico de la lista de geometría predefinida de OOXML — triángulos, rombos, paralelogramos, hexágonos, octágonos, flechas, comillas angulares (chevrons), llamadas, nodos de organigrama, estrellas, corazones, sol, luna, corchetes y llaves — cada uno con su token
prstcorrecto y el identificador de forma de[MS-ODRAW], de modo que las formas creadas se representan correctamente en Excel (la lista completa de 187 predefinidos ya se conservaba en el traspaso de ida y vuelta mediante el paso a través del anclaje sin procesar)
Versión 2.200.0
Corregido
- Abrir un libro cuyo autofiltro usa un filtro de color o de ícono ya no descarta ese filtro al guardar —
colorFiltereiconFilterahora se leen hacia columnas con tipo (TXLSXAutoFilterColumn.SetColorFilter/SetIconFilter) y se vuelven a emitir de forma literal, en lugar de perderse como elementos secundarios no reconocidos de la columna de filtro
Versión 2.199.0
Agregado
TCondFormatRule.Evaluateindica si una regla de formato condicional se activa para una celda determinada y cubre comparaciones de valor de celda, expresiones de fórmula, texto que contiene/empieza/termina, reglas de celdas en blanco y de error — la base para consultar qué celdas resalta una regla en un momento dado y para representar resultados de CF fuera de Excel
Cambiado
FACTy los auxiliares internos de factorial ahora usan una tabla precalculada de 0!..170! en lugar de recalcular un producto O(n) en cada llamada, lo que aceleraFACT, los coeficientes multinomiales y las rutas de las distribuciones de Poisson/Binomial/ji-cuadrado
Versión 2.198.0
Cambiado
- Guardar una hoja de cálculo ahora agrupa las celdas en filas con una sola pasada de conteo y relleno en lugar de hacer crecer el índice de cada fila con una reasignación por celda, lo que elimina una copia oculta O(celdas × celdas-por-fila) en hojas grandes
- El grafo de dependencias de fórmulas ahora indexa sus rangos de referencia por (hoja, fila), de modo que la siembra de una celda sucia hace una búsqueda binaria en la banda candidata en lugar de examinar cada fórmula en cada celda modificada — cuanto más grande sea el libro y cuantas más hojas tenga, mayor será la aceleración al recalcular
- El recorrido de celdas en orden principal por filas y ordenado por columnas ahora se expone como
TXLSXWorksheet.BuildRowMajorCellOrder, de modo que el guardado, el portapapeles, el autofiltro y otros consumidores ordenados por filas comparten un solo recorrido en lugar de volver a derivarlo
Versión 2.197.0
Corregido
- Los gráficos de radar, de acciones y de circular sobre circular / de barras sobre circular ya no se pierden cuando se abre y vuelve a guardar un libro
.xlsxque los contiene — el lector de gráficos ahora reconoce los elementos contenedoresc:radarChart,c:stockChartyc:ofPieChartque ya escribía, con lo que se restaura la cobertura simétrica de lectura y escritura SUBTOTALcon códigos de función 101–111 ahora excluye los valores de las filas ocultas, yAGGREGATEahora respeta sus códigos de opción de omisión de filas ocultas (2, 3, 6, 7), coincidiendo con Excel en lugar de tratar las variantes de inclusión y de omisión de ocultas de forma idéntica- Llamar a una función integrada de aridad fija con más argumentos de los declarados (por ejemplo
=SIN(1,2)) ahora genera#VALUE!de forma centralizada en lugar de ser aceptada por el despachador
Versión 2.196.0
Corregido
- La inserción o eliminación de filas y columnas ahora divide los formatos condicionales de valor de celda y de expresión además de las validaciones de datos cuando las áreas editadas requieren anclajes de fórmula relativos diferentes, al tiempo que conserva los ajustes de las reglas, asigna prioridades únicas de formato condicional y mantiene intactos los dominios agregados de formato condicional
Versión 2.195.2
Cambiado
- La exportación a PDF ahora subconjunta la fuente TrueType incrustada mediante la API
CreateFontPackagedefontsub.dllde Windows, conservando únicamente los glifos que el documento representó en realidad en lugar de incrustar el.ttfcompleto — lo que suele reducir el PDF entre 8 y 20× en hojas con mucho Unicode; recurre a la incrustación completa cuando el subconjunto no está disponible
Versión 2.195.1
Corregido
- Insertar o eliminar filas y columnas en el motor clásico
.xlsahora reescribe todas las referencias de fórmula afectadas (fórmulas de celda y nombres definidos) para coincidir con la semántica de Excel — las referencias por debajo de una inserción se desplazan, las referencias totalmente dentro de una eliminación se convierten en#REF!y las áreas de superposición parcial se reducen — en lugar de dejar coordenadas obsoletas
Versión 2.195.0
Cambiado
- Eliminar columnas de tabla ahora convierte cada token de referencia estructurada afectado en
#REF!en las fórmulas de la hoja, las fórmulas de la tabla, los nombres definidos y las series del gráfico, al tiempo que conserva las referencias no relacionadas y los literales de cadena
Corregido
- Eliminar una tabla completa ya no deja referencias estructuradas calificadas apuntando a una tabla que ya no existe
- Las validaciones de datos clonadas ahora conservan su modo de entrada IME
Versión 2.194.0
Cambiado
- Las ediciones de filas y columnas ahora mantienen los identificadores de columna, los nombres, las fórmulas calculadas, las fórmulas de totales, las columnas de filtro, los rangos de filtro y las condiciones de ordenación de la tabla de Excel alineados con la tabla editada
Corregido
- Las fórmulas de formato condicional y de validación de datos ahora rebasan las referencias relativas y mixtas cuando la eliminación quita su primera área de destino
- Los estados de ordenación de la hoja de cálculo y de la tabla ahora escriben atributos válidos y descartan las condiciones cuyos rangos se eliminaron
Versión 2.193.0
Cambiado
- Las ediciones de filas y columnas ahora actualizan las fórmulas de nombres definidos complejas y de ámbito cruzado, los rangos de datos de gráficos de burbujas y los umbrales condicionales visuales basados en fórmula
- Los gráficos de burbujas y de dispersión ahora restauran sus rangos de series del eje X, del eje Y y del tamaño de burbuja al volver a abrirse
Corregido
- Los destinos de formato condicional y de validación de datos de varias áreas ahora desplazan cada área superviviente de forma independiente en lugar de dejar la lista completa de destinos sin cambios
- Los anclajes de cuadros de texto y de WordArt ahora se mueven o cambian de tamaño con las filas y columnas insertadas y eliminadas
Versión 2.192.0
Agregado
- Las lecturas directas en flujo y el recorrido por cursor de filas pueden optar por cadenas enriquecidas estructuradas con formato completo de ejecuciones, ejecuciones fonéticas y propiedades fonéticas, conservando un almacenamiento de cadenas compartidas acotado
TXLSDirectWriter.WriteRichStringescribe texto con formato y fonético como cadenas en línea o como cadenas compartidas desduplicadas
Cambiado
- El desduplicado de cadenas compartidas enriquecidas ahora distingue el formato de ejecución y los metadatos fonéticos, manteniendo la internación de cadenas ordinaria en su ruta rápida existente
Corregido
- El texto fonético de las cadenas en línea ya no se incluye en el valor mostrado de la celda
Versión 2.191.0
Agregado
TXLSXRange.SetDynamicArrayFormulaahora crea fórmulas de matriz dinámica nativas con la cadena completa de metadatos XLDAPR de Excel
Cambiado
- Las raíces de matriz dinámica ahora comparten un registro de metadatos del libro desduplicado, y las copias de hoja o de rango entre libros reasignan ese registro al libro de destino
- Los metadatos de matriz dinámica admitidos siguen disponibles cuando la preservación de partes de paquete no admitidas está desactivada, mientras que los metadatos de valor no relacionados se siguen eliminando
Corregido
- Las celdas de derrame de matriz dinámica ya no se modelan como seguidoras CSE heredadas, y reemplazar o vaciar la raíz ya no deja índices de metadatos obsoletos
- Quitar la raíz final de matriz dinámica ahora elimina la parte de metadatos sin uso, la relación del libro y la entrada de tipo de contenido
Versión 2.190.0
Cambiado
- Las lecturas directas en flujo y el recorrido por cursor de filas ahora expanden los seguidores de fórmula compartida hacia fórmulas completas relativas a la celda, conservando la proyección y el comportamiento de memoria acotada
Corregido
- Los libros con matrices dinámicas ahora conservan los índices de metadatos de celda y de valor, los atributos de recálculo de fórmulas, las relaciones de paquete de metadatos y los prefijos de función futura sin cambios durante los ciclos de apertura y guardado
- Desactivar la preservación de partes no admitidas ya no deja índices de metadatos de hoja colgando después de que se quite la parte de metadatos
Versión 2.189.0
Agregado
- Abrir libros XLSX ahora expande los seguidores de fórmula compartida hacia fórmulas completas por celda con referencias relativas, absolutas, mixtas, de rango y calificadas por hoja correctas
Corregido
- Los seguidores de fórmula compartida con autocierre ya no capturan el XML posterior de valor o de fórmula, y sus resultados en caché sobreviven a los ciclos de apertura y guardado
- Las fórmulas de matriz CSE ahora conservan su ancla y sus relaciones de seguidor a través de las ediciones de estructura de filas o columnas, las copias de rango completo, la duplicación de hojas y las copias de hojas entre libros
- Asignar una fórmula normal o vaciar una celda ahora elimina la pertenencia obsoleta a la matriz CSE, de modo que el cálculo no se pueda redirigir a un ancla de matriz antigua
- Copiar solo una parte de una matriz CSE ya no crea referencias de seguidor colgantes en el destino
- Las copias de rango ahora toman una instantánea de los orígenes superpuestos y desplazan las referencias de fórmula relativas, lo que evita que las celdas de origen o los anclas de matriz se sobrescriban antes de copiarse
- Las ediciones de filas o columnas que intersecan solo una parte de una matriz CSE se rechazan en lugar de redimensionar o despegar la matriz de forma silenciosa
Versión 2.188.0
Agregado
TXLSDirectReader.SharedStringMemoryLimitacota la memoria de cadenas compartidas decodificadas y migra automáticamente las tablas más grandes a un almacenamiento temporal indexado de eliminación al cerrar con una caché de valores de tamaño fijoTXLSRowCursor.SharedStringMemoryLimitexpone el mismo control de almacenamiento de cadenas compartidas acotado para el recorrido de filas solo hacia adelante
Cambiado
- El análisis directo de cadenas compartidas ahora conserva los valores de solo espacios en blanco, las CDATA, las entidades XML, los caracteres fuera del BMP, los elementos vacíos y el orden de ejecuciones de texto enriquecido, al tiempo que excluye el texto guía fonético del valor mostrado
Corregido
- Abrir libros XLSX ahora conserva cada elemento de cadena compartida en el orden del documento, lo que evita que el texto duplicado o las cadenas enriquecidas con formato diferente colapsen índices de celda posteriores
- Guardar libros XLSX ahora desduplica las cadenas enriquecidas por los límites de ejecución y las propiedades de formato en lugar de solo por el texto visible, conservando un formato distinto para las celdas con el mismo valor mostrado
Versión 2.187.0
Agregado
TXLSDirectReader.FirstRowyLastRowrestringen las lecturas en flujo a un rango de filas basado en 1 y detienen el análisis de la hoja de cálculo después del rango solicitadoTXLSDirectReader.IncludeColumnyClearColumnProjectionproporcionan una proyección de columnas de tiempo constante que omite las celdas no seleccionadas antes de la decodificación del valor y del envío de retrollamadas
Versión 2.186.0
Agregado
TXLSDirectWriter.UseSharedStringspuede desduplicar el texto repetido hacia una parte de cadenas compartidas de OOXML con totales y conteos únicos precisos, lo que reduce el tamaño del paquete en datos con mucha repeticiónTSimpleDomReaderproporciona un árbol XML compacto de una sola pasada para consultas de acceso aleatorio de metadatos del libro y de partes del paquete, con búsqueda de QName y de nombre local con distinción de mayúsculas y minúsculas
Cambiado
- La lectura directa de XLSX ahora usa un despacho de elementos exacto asistido por hash, una recolección de atributos en una sola pasada y una búsqueda de columna de fila actual de tiempo constante, conservando el comportamiento de memoria en flujo
- La generación de XML de cadenas compartidas ahora usa un búfer de crecimiento lineal para evitar las copias repetidas de la cadena completa en tablas grandes de cadenas distintas
Corregido
- La exportación de fórmulas a CSV ya no añade un segundo signo igual cuando el texto de la fórmula ya incluye uno
- La exportación de XLSX a PDF ya no trunca el texto de la celda con una estimación por conteo de caracteres antes del diseño
- Los hash de nombres del lector XML ahora rastrean las instrucciones de procesamiento, los atributos y los retrocesos a sus elementos propietarios sin exponer un estado de elemento obsoleto
Versión 2.185.1
Corregido
- Insertar o eliminar filas y columnas ahora ajusta las referencias de fórmula locales y entre hojas exactamente una vez, conservando los nombres de función y los literales de texto
Versión 2.185.0
Agregado
TXLSPDFExportahora ofrece selección de salidaFirstPageyLastPagebasada en uno, unPageCountlógico completo y seis sobrecargas deCalculatePageCountpara rangos clásicos y XLSX, hojas de cálculo y libros sin construir objetos de página PDFTXLSXWorkbook.SaveWorkbookAsHTMLpublica las hojas de cálculo visibles en un único documento HTML navegable con anclajes estables por hoja, títulos y nombres de hoja con escape y una opción para incluir hojas ocultas o muy ocultasTDataToXLS.BeforeRecordpuede omitir registros antes de la salida de filas yBeforeValuepuede transformar o suprimir valores de campo con contexto de conjunto de datos, de nivel de detalle, de campo de origen y de columna de exportaciónTXLSWorkbookViewerexpone comentarios y vínculos de la celda seleccionada, genera un evento de vínculo controlado por la aplicación, pinta indicadores de comentario y fuentes, rellenos y alineación XLSX, y normaliza la selección y el renderizado entre rangos combinados
Cambiado
- El ejemplo ConversionWorkbench ahora puede producir salida PDF y publica todas las hojas de cálculo XLSX visibles para los destinos HTML, mientras que el ejemplo WorkbookViewer demuestra la navegación entre celdas combinadas, los comentarios y la activación de vínculos
Versión 2.184.0
Agregado
- Los rangos XLS clásico y XLSX pueden copiar texto tabular Unicode y HTML con estilo al portapapeles de Windows mediante
CopyToClipboard, conservando fórmulas, celdas combinadas, vínculos, formato de visualización y tabulaciones, saltos de línea y comillas insertados de forma segura TXLSXWorkbookahora conserva las partes de paquete personalizadas alcanzables desde relaciones desconocidas de raíz de paquete, de libro, de hoja de cálculo o de dibujo, incluido el manejo de colisión de identificadores de relación, los tipos de contenido, las relaciones secundarias, la elección de compresión y los bytes exactos de la carga útil;PreserveUnsupportedParts,UnsupportedPartCount,UnsupportedPartBytesyClearUnsupportedPartsexponen control y diagnóstico- El guardado de XLS clásico expone retrollamadas de inicio, trabajo y fin con cancelación a través de
OnProgressEx, mientras queIXLSWorkbookProgressproporciona diagnóstico estructurado con códigos estables, severidad, operación, contexto de hoja, valores devueltos nativos y detalles de excepción TXLSXWorkbookahora expone las mismas superficies estructuradasDiagnostics,LastDiagnosticyOnDiagnosticpara el informe de guardado, apertura, recálculo, cancelación y excepciones- Los módulos VBA analizados ahora admiten la edición de
SourceCodey la escritura del flujo de módulo comprimido actualizado de vuelta a través de los guardados de XLS clásico, almacenamiento VBA independiente y OOXML habilitado para macros, conservando los prefijos de flujo y el contenido del proyecto sin tocar - Las hojas de cálculo clásicas y las colecciones de formas ahora exponen controles de formulario con tipo
TXLSCheckBox,TXLSComboBoxyTXLSListBox, con asistentes de creación, etiquetas, inspección del tipo de control, anclajes de celda, eliminación y detección al abrir y guardar TXLSXRange.ApplyFormatPatchpuede copiar de forma selectiva componentes de fuente, relleno, borde, formato numérico, alineación y protección con mosaico del patrón de origen, conservando los valores de destino y el formato no seleccionadoTDataToXLSpuede exportar de forma recursiva conjuntos de datos maestro-detalle vinculados a través deReadDetailTableseIndentDetailTables, conservando los vínculos de datos activos, anexando cada tabla de detalle bajo su registro maestro y heredando las opciones de campo, título y formato en cada nivelTXLSXWorksheet.AddWordArtcrea texto DrawingML anclado a celda con deformación predefinida más colores de texto y contorno configurables, y la ruta de preservación del ancla de dibujo sin procesar mantiene la forma WordArt completa en ciclos posteriores de apertura y guardadoTXLSWorkbookViewerañade un visor de hoja de cálculo VCL para objetos de libro clásicos y modernos con carga de archivos XLS, XLSX, XLSM, de plantilla y ODS, texto de celda con formato, estilos clásicos, tamaño de filas y columnas, encabezados, renderizado de cuadrícula y de selección, barras de desplazamiento, selección con ratón, navegación con teclado, posicionamiento de celda, cambio de hoja de cálculo y eventos de selección o de hoja- Los nuevos ejemplos de Delphi
FeatureShowcaseyWorkbookViewerdemuestran la impresión PDF con estilo, los títulos de impresión, los saltos manuales, los controles de formulario clásicos, los parches de formato selectivos, WordArt, el diagnóstico, la creación del visor en tiempo de ejecución, la carga de archivos, la navegación entre celdas, el cambio de hoja y los eventos del visor, con guías en inglés y temas de referencia para el desarrollador correspondientes
Cambiado
- La exportación a PDF de libros, hojas y rangos tanto en XLS clásico como en XLSX moderno ahora escribe cada hoja visible en un único documento, omite las hojas ocultas y las hojas de gráfico, representa rellenos sólidos, colores de fuente, tamaños de fuente, énfasis de negrita y cursiva, alineación horizontal y vertical, bordes de celda explícitos y líneas de cuadrícula opcionales de la hoja, sigue el área de impresión, tamaño de papel, orientación, márgenes, zoom, ajuste al ancho, anchos de columna, altos de fila reales, saltos de página manuales de filas y columnas, filas y columnas de título repetidas y los encabezados y pies de página de tres partes con campos de página, total de páginas, nombre de hoja, fecha y hora, pagina los rangos anchos y altos en ambos ejes, emite una sintaxis numérica PDF independiente de la configuración regional e incrusta una fuente TrueType apta más un mapa ToUnicode para el texto fuera de WinAnsi
- Las retrollamadas de progreso extendidas de XLSX ahora reciben estados fiables de inicio, trabajo y fin para guardar, abrir y recalcular, mientras que la retrollamada heredada sigue siendo solo de trabajo y cada operación restablece el estado de cancelación previo
- La serialización clásica de XLS ahora propaga los fallos de hoja de cálculo, de gráfico, de extensión de estilo, de VBA, de flujo de control, de almacenamiento y de confirmación de salida en lugar de informar de éxito, y los guardados de archivo preparan el archivo compuesto completo antes de reemplazar el destino de forma atómica
- Los guardados de archivo XLSX y ODS ahora construyen un paquete temporal hermano completo y reemplazan el destino de forma atómica solo tras una finalización correcta, dejando los archivos existentes sin cambios tras una cancelación o un fallo
Versión 2.183.0
Agregado
TXLSDirectWriterahora admite identificadores de estilo de celda a nivel de paquete reutilizables y clonación de estilos sin almacenar en búfer las filas de la hoja de cálculo; el mismo índice de estilo se puede aplicar a cualquier cantidad de celdas o reutilizar entre hojas- Los estilos directos de celda proporcionan 30 capacidades de formato que abarcan nombre de fuente, tamaño, color BGR, negrita, cursiva, tachado, contorno, sombra, cinco modos de subrayado, 19 patrones de relleno con colores de frente y fondo, cinco bordes con color independiente y 14 estilos de línea con direcciones diagonales, formatos numéricos integrados o personalizados, alineación horizontal y vertical, ajuste, ajustar para encajar, sangría, rotación de texto, prefijos de comilla y protección de bloqueado/oculto
- Las sobrecargas con estilo están disponibles para cadenas, números, booleanos, fechas, fórmulas, errores y todos los tipos de resultado de fórmula en caché, lo que permite a los exportadores de gran volumen seleccionar un estilo predefinido por índice entero durante las escrituras secuenciales
Cambiado
- El escritor directo desduplica los componentes de fuente, relleno, borde y formato numérico iguales al construir
styles.xml, conservando los índices de estilo de celda estables ya escritos en los flujos de la hoja de cálculo - Las tablas de estilo generadas por el escritor directo ahora incluyen los rellenos predeterminados estándar
noneygray125antes de los rellenos personalizados para una compatibilidad OOXML más estricta
Versión 2.182.0
Agregado
TXLSDirectWriterahora escribe formato condicional conservando su perfil de memoria independiente del conteo de filas, con ocho operadores de valor de celda, reglas de expresión, reglas de texto contiene/no contiene/empieza por/termina por, reglas de valor y porcentaje superior o inferior, reglas de promedio por encima o por debajo, valores duplicados y únicos, celdas en blanco y no en blanco, celdas con error y sin error, barras de datos, escalas de dos y tres colores y las 17 familias base de conjuntos de íconos- Las reglas de formato condicional directas admiten prioridades explícitas, evaluación de detención si es verdadera, opciones de desviación estándar e igualdad de promedio, reemplazo de umbral de íconos, visualización solo de íconos e invertida, visibilidad del valor de la barra de datos, colores BGR y estilos diferenciales de relleno, color de fuente, negrita y cursiva
Cambiado
- El escritor directo desduplica los estilos diferenciales equivalentes entre hojas de cálculo y almacena solo las reglas y los estilos de formato condicional, de modo que el uso de memoria escala con el conteo de reglas en lugar de con el número de filas de la hoja
- Las clases de umbral mínimo y máximo automáticas de las barras de datos se normalizan a los tokens estándar
minymaxen el elemento OOXML base para una amplia compatibilidad entre hojas de cálculo
Versión 2.181.0
Agregado
TXLSDirectWriterahora escribe la protección de la hoja de cálculo y del libro sin almacenar en búfer los datos de la hoja de cálculo, incluidos 15 permisos de hoja detallados, verificadores de contraseña heredados, metadatos modernos de hash, rangos protegidos editables con contraseñas opcionales o descriptores de seguridad, bloqueos de estructura y ventana del libro, asignación de verificador sin procesar y eliminación de la protección
Corregido
- Los anclajes de dibujo no admitidos ahora conservan todos los elementos de cierre al reconstruirse para la salida de ida y vuelta, de modo que los dibujos de solo forma siguen estando bien formados tras la apertura y el guardado
- Los permisos de protección de la hoja de cálculo XLSX ahora siguen la definición de indicador de bloqueo de OOXML, de modo que las acciones permitidas escriben
0, las prohibidas escriben1y los atributos omitidos se reabren con sus valores predeterminados del esquema - Las contraseñas heredadas de hoja de cálculo, de rango protegido y de libro XLSX ahora usan el algoritmo de verificador de 16 bits compatible con Excel con conversión ANSI y el límite de 15 bytes
Versión 2.180.0
Agregado
- El modelo de hoja de cálculo XLSX ahora traspasa de ida y vuelta los elementos del Administrador de escenarios de Análisis de hipótesis (
<scenarios>) y de Consolidación de datos (<dataConsolidate>). Las nuevas propiedades de XML sin procesarScenariosXmlyConsolidateXmlenTXLSXWorksheettransportan el contenido interno de forma literal: el escritor emite los elementos envoltorio, el lector analiza de vuelta los elementos secundarios de escenario y de consolidación de datos. Los archivos de modelado financiero que definen escenarios o definiciones de consolidación ya no los pierden en el traspaso de ida y vuelta
Versión 2.179.0
Agregado
- Una nueva función auxiliar
XlsxBuildNumFmtconstruye códigos de formato numérico de OOXML a partir de propiedades semánticas:Decimals,Thousands(separador),NegativeRed(negativos en rojo),CurrencySymbolyPercent. Los llamadores ya no necesitan escribir a mano cadenas de formato como"$#,##0.00;[Red]-$#,##0.00"; el constructor las produce a partir de parámetros sencillos. Diseñado para usarse conCell.NumberFormatoWorkbook.NumberFormats.Add
Versión 2.178.0
Agregado
- El modelo de hoja de cálculo XLSX ahora traspasa de ida y vuelta el nombre de código de VBA (
<sheetPr codeName="..."/>), esencial para la interoperabilidad con VBA cuando el proyecto de VBA hace referencia a las hojas por nombre de código. Nueva propiedadCodeNameenTXLSXWorksheet - Los comentarios ahora admiten un conmutador de visibilidad
AlwaysShowenTXLSXComment: cuando es True el globo del comentario está siempre visible (el conmutador «Mostrar u ocultar comentario» por comentario de Excel), no solo al pasar el cursor - La validación de datos ahora traspasa de ida y vuelta el atributo de modo IME (
imeMode) enTXLSXDataValidation. La enumeración de 11 valores controla el comportamiento del método de entrada CJK al entrar en una celda (noControl / off / on / hiragana / fullKatakana / etc.). Esencial para archivos con configuración regional japonesa, coreana o china - El modelo de hoja de cálculo gana una propiedad
PaneStatepara el atributo de estado del panel en<pane>además del manejo existente del modo congelado: admite los estadosfrozenSplit(congelado y luego desplazable) ysplit
Versión 2.177.0
Agregado
- Tres funciones de hoja de cálculo antes registradas pero no implementadas ahora tienen despacho completo:
DOLLAR(texto con formato de moneda),FIXED(texto con decimales fijos y supresión opcional de comas) yAREAS(cantidad de áreas en una referencia). Antes estaban registradas enInitFuncHashpero no tenían caso en el motor de cálculo; evaluar=DOLLAR(...)devolvía silenciosamente resultados erróneos - El modelo de hoja de cálculo XLSX ahora traspasa de ida y vuelta las escalas de zoom por tipo de vista (
zoomScaleNormal/zoomScalePageLayoutView/zoomScaleSheetLayoutView), el color de la cuadrícula (sheetView color) y los indicadores de visualización de la vista de hoja (showFormulas/showZeros). Nuevas propiedades enTXLSXWorksheet:ZoomNormal,ZoomPageLayout,ZoomSheetLayout,GridColor,ShowFormulas,ShowZeros - La dirección del resumen de esquema ahora traspasa de ida y vuelta. Las nuevas propiedades
SummaryBelow,SummaryRightyShowOutlineSymbolsenTXLSXWorksheetcontrolan si las filas o columnas de resumen aparecen debajo o a la derecha del detalle y si los símbolos de esquema están visibles. El escritor emite<outlinePr>dentro de<sheetPr>; el lector lo analiza de vuelta - El calcPr del libro ahora transporta los atributos
forceFullCalcycalcCompletedademás del trío existentecalcId/fullCalcOnLoad/calcMode/iterate
Versión 2.176.0
Agregado
- El motor de fórmulas XLSX ahora resuelve las referencias estructuradas de tabla antes de la compilación. Un nuevo método
ResolveStructuredRefsenTXLSXWorkbookexamina el texto de las fórmulas en busca de patronesTableName[ColumnSpec]y los reemplaza por referencias de rango A1 concretas usando la colecciónTXLSXTabledel libro. Las especificaciones admitidas incluyen rango de datos de columna (Sales[Qty]), columna de fila actual (Sales[@Total]), datos completos (Sales[#Data]/Sales[#All]), encabezados (Sales[#Headers]) y fila de totales (Sales[#Totals]). La resolución se ejecuta automáticamente dentro deGetCompiledFormula; las fórmulas existentes no se ven afectadas ya que los identificadores que no son de tabla se dejan literales. Antes las referencias estructuradas hacían que la compilación de la fórmula fallara
Versión 2.175.0
Agregado
- El motor de fórmulas ahora admite la compilación de fórmulas con estilo de referencia R1C1. Un nuevo método
GetCompiledFormulaR1C1enTXLSCalculator(yGetCompiledR1C1enTXLSFormula) acepta una fórmula escrita en notación R1C1 (R2C3para absoluta,R[-1]C[2]para relativa,RCpara la celda actual) y la compila convirtiéndola primero a notación A1 usando la fila y columna de la celda de la fórmula. Una función independienteR1C1ToA1realiza la conversión: detecta los marcadoresR/Cque son independientes (no parte de un nombre de función como ROUND), analiza los desplazamientos opcionales entre corchetes y produce la referencia A1 equivalente. Los literales de cadena y los identificadores se omiten. Antes solo se podían compilar fórmulas de estilo A1
Versión 2.174.0
Agregado
- La salida de AutoFilter de
TXLSDirectWriterahora admite columnas de filtro de hoja de cálculo y de tabla, filtros de valor, filtros de blancos, filtros de agrupación por fecha, filtros de comparación personalizados, filtros dinámicos, filtros superior/inferior, indicadores de botón de filtro, estados de ordenación, condiciones de ordenación, el escape XML y la supresión duplicada de rangos de filtro de hoja o de tabla al hacer streaming de archivos XLSX
Versión 2.173.0
Agregado
- La salida de tabla de
TXLSDirectWriterahora admite comentarios de tabla, conteos de fila de totales, etiquetas de fila de totales de columna, funciones de fila de totales de columna, fórmulas de columna calculada, fórmulas de fila de totales y el escape XML de los metadatos de columna de tabla al hacer streaming de archivos XLSX
Versión 2.172.0
Agregado
TXLSDirectWriterahora escribe partes de tabla de Excel al hacer streaming de archivos XLSX, incluidas las relaciones de tabla de la hoja de cálculo, los tipos de contenido de parte de tabla, los rangos de tabla, los nombres de columna, los indicadores de fila de encabezado y de fila de totales y los indicadores de visualización de estilo de tabla integrado, sin construir un modelo de objetos de libro completo
Versión 2.171.0
Agregado
TXLSDirectWriterahora escribe validaciones de datos de la hoja de cálculo al hacer streaming de archivos XLSX, incluidas lista, número entero, decimal, fecha, hora, longitud de texto, fórmula personalizada,sqrefarbitrario, avisos, alertas de error, permitir blancos, lista desplegable e indicadores de mensaje de entrada y de error, sin construir un modelo de objetos de libro completo
Versión 2.170.0
Agregado
TXLSDirectWriterahora escribe nombres definidos del libro y locales de hoja al hacer streaming de archivos XLSX, incluidos nombres ocultos, comentarios, rangos absolutos generados, áreas de impresión, filas de título de impresión, columnas de título de impresión, títulos de impresión combinados, referencias de nombres de hoja entre comillas, escape XML y la semántica de reemplazo para los establecedores repetidos de nombre de impresión, sin construir un modelo de objetos de libro completo
Versión 2.169.0
Agregado
TXLSDirectWriterahora escribe los hipervínculos de la hoja de cálculo al hacer streaming de archivos XLSX, incluidas las relaciones de URL externa, de mailto y de archivo, las ubicaciones internas de hoja, el texto de visualización, los informaciones sobre herramientas, los rangos de hipervínculo de celda única o de varias celdas, la normalización de URLwww.sin esquema, el escape XML y los destinos de relación codificados por ciento, sin construir un modelo de objetos de libro completo
Versión 2.168.0
Agregado
TXLSDirectWriterahora escribe los metadatos de impresión y de vista de hoja al hacer streaming de archivos XLSX, incluidos los conmutadores de visualización de cuadrícula y de encabezados de filas y columnas, los márgenes de página, el texto de encabezado y pie de página impares, las líneas de cuadrícula y los encabezados de impresión, el centrado de página, el tamaño de papel y la orientación horizontal, las dimensiones de ajuste a la página y los saltos de página manuales de filas o columnas, sin construir un modelo de objetos de libro completo
Versión 2.167.0
Agregado
TXLSDirectWriterahora escribe los metadatos de diseño de la hoja de cálculo al hacer streaming de archivos XLSX, incluidos los tamaños predeterminados de columna y fila, los anchos de columna personalizados, las filas y columnas ocultas, los rangos combinados, los rangos de autofiltro, los paneles congelados, los colores de pestaña de hoja y las vistas de hoja de derecha a izquierda, sin construir un modelo de objetos de libro completo
Versión 2.166.0
Agregado
- Los flujos de trabajo de streaming de XLSX ahora incluyen el listado de nombres de hoja sin recorrer las hojas de cálculo, la selección de hoja por cursor de filas basada en nombre, el streaming de fechas numéricas sin procesar, la reutilización del escritor directo, la escritura de celdas de error y los escritores de resultados de fórmula en caché para valores numéricos, de cadena, booleanos, de fecha y de error
Versión 2.165.0
Corregido
TXLSDirectReader.ReadStreamahora restaura la posición del flujo del llamador tras el análisis directo, coincidiendo con el contrato documentado del flujo y permitiendo a las aplicaciones reutilizar el mismo flujo tras una pasada de lectura directa
Versión 2.164.0
Agregado
- Las exportaciones de conjunto de datos de
TDataToXLSahora admiten las listas de cadenasIncludeFieldsyExcludeFields. Las aplicaciones pueden incluir en una lista blanca los campos exportados, omitir columnas sensibles y mantener los encabezados, las filas de datos, los anchos de columna y las retrollamadas de exportación alineados con el conjunto de campos seleccionado
Versión 2.163.0
Agregado
- La exportación a CSV gana un entrecomillado de texto configurable en los motores XLS y XLSX.
TXLSWorkbookahora exponeCSVEmitFormulasyCSVQuoteAllStrings, yTXLSXWorkbookañadeCSVQuoteAllStrings. Cuando se activan, la exportación de fórmulas escribe el texto de la fórmula y los campos de cadena se entrecomillan, mientras que los campos numéricos, de fecha, booleanos, nulos y vacíos mantienen las reglas normales de entrecomillado
Versión 2.162.0
Agregado
- El motor XLSX gana un sistema de eventos de progreso abortable. Una nueva retrollamada
OnProgressExenTXLSXWorkbookse dispara junto con laOnProgressexistente con tres mejoras: (1) un parámetroTXLSXProgressState(ppsBegin/ppsWork/ppsEnd) que delimita cada fase, de modo que las interfaces sepan cuándo empieza y termina una operación; (2) un parámetro varAbort: Booleanque permite a la retrollamada cancelar la operación actual en medio del flujo; los bucles de lectura, escritura y cálculo compruebanWorkbook.Abortedy se interrumpen de forma limpia; (3) una nueva fasexlsxProgressExportingpara operaciones de exportación (HTML/RTF/CSV/ODS). Un método auxiliarFireProgresscentraliza el despacho de doble retrollamada. El indicadorFAbortedse restablece al inicio de cada operación de nivel superior (Open / SaveAs / Recalculate)
Versión 2.161.0
Agregado
- El modelo de gráficos XLSX ahora admite cuatro nuevos elementos de gráfico para una mayor compatibilidad con Excel. Tabla de datos del gráfico (
c:dTable):TXLSXChartgana los conmutadoresShowDataTableyShowDataTableKeys: cuando se activan, el escritor emite el elemento de tabla de datos dentro del área de trazado para que Excel represente los datos de origen como una cuadrícula debajo del eje del gráfico. Barras arriba/abajo + líneas de máximo y mínimo (elementos de gráfico de acciones/OHLC):TXLSXChartganaHasUpDownBars+UpDownGapWidthyHasHiLowLines; el escritor emitec:upDownBarsyc:hiLowLinesdentro del elemento de gráfico (gráficos de líneas y de acciones). Controles de vista 3D:TXLSXChartganaRotation3DX/Rotation3DY/Elevation3D/Perspective3D/RightAngleAxes3D; el escritor emitec:view3Da nivel de gráfico cuando cualquier propiedad 3D difiere del valor predeterminado. Antes no se emitía ninguno de estos elementos, de modo que los gráficos construidos con tablas de datos, elementos de gráfico de acciones o vistas 3D los perdían en el traspaso de ida y vuelta
Versión 2.160.0
Agregado
- Las referencias de fórmula ahora se ajustan automáticamente cuando se insertan o eliminan filas o columnas en el motor XLSX. El método
ShiftSheetGeometry— llamado porInsertRows/DeleteRows/InsertCols/DeleteCols— ahora recorre cada celda de fórmula superviviente y reescribe sus referencias A1 para reflejar el cambio estructural. Un nuevo escáner de textoXlsxAdjustFormulaRowColRefsdetecta referencias de celda única (A1,$B$2) y de rango (A1:B3), desplaza sus componentes de fila y columna más allá del punto de inserción y convierte las referencias eliminadas en#REF!. Tanto las referencias relativas como las absolutas se desplazan (coincidiendo con el comportamiento de Excel). Antes las fórmulas se dejaban silenciosamente apuntando a las celdas equivocadas tras una edición estructural
Versión 2.159.0
Agregado
- El estado de ordenación del autofiltro ahora traspasa de ida y vuelta a través del motor XLSX.
TXLSXWorksheetgana una propiedadSortStateXmlque transporta el XML interno sin procesar del elemento<sortState>de OOXML (dirección de ordenación de columnas, distinción de mayúsculas y minúsculas, método de ordenación y cada<sortCondition>con su indicador de descendente y su referencia). El escritor emite el elemento después de<autoFilter>; el lector analiza de vuelta los atributos y las condiciones de ordenación. Antes el estado de ordenación se descartaba silenciosamente al leer y nunca se escribía - Los ajustes fonéticos y de ruby CJK ahora traspasan de ida y vuelta a través del motor XLSX.
TXLSXWorksheetganaPhoneticFontId,PhoneticType(hiragana / katakana / fullWidthKatakana / noConversion) yPhoneticAlignment(left / center / distributed). El escritor emite<phoneticPr>después de<sheetData>; el lector analiza de vuelta los atributos. Antes el elemento fonético se descartaba silenciosamente al leer; los archivos del mercado japonés perdían sus ajustes de ayuda de lectura furigana
Versión 2.158.0
Agregado
- El motor XLSX ahora traspasa de ida y vuelta la tabla de estilos de celda con nombre (
<cellStyles>). Una nueva claseTXLSXNamedStyley la colecciónTXLSXNamedStylesenTXLSXWorkbooktransportan la superficie completa:Name,XfId,BuiltInId,CustomBuiltIn,Hidden,BuiltinLevel. El escritor emite un<cellStyle>por entrada cuando la colección no está vacía; el lector los analiza de vuelta. Antes el escritor codificaba de forma fija una única entrada"Normal"y el lector descartaba todos los estilos con nombre, de modo que los archivos con estilos «Good» / «Bad» / «Total» / con nombre personalizado perdían esos nombres en el traspaso de ida y vuelta
Versión 2.157.0
Agregado
- El motor XLSX ahora traspasa de ida y vuelta el elemento
<calcPr>completo, no solo los conmutadores de cálculo iterativo.TXLSXWorkbookganaCalcId(el identificador del motor de cálculo que Excel usa para decidir si los valores en caché están desfasados),FullCalcOnLoad(obliga a Excel a hacer un recálculo completo al abrir; crítico para los libros producidos por un motor que no es de Excel) yCalcMode(auto / manual / autoNoTable). El escritor emite los atributos coincidentes en<calcPr>; el lector los analiza de vuelta. Antes solo se manejabaniterate/iterateCount/iterateDeltay el resto se descartaba silenciosamente
Versión 2.156.0
Agregado
- El evaluador de fórmulas ahora implementa 37 funciones de hoja de cálculo que antes estaban registradas (ptg asignado en InitFuncHash) pero sin implementación de despacho y que caían a
#NAME?. Las nuevas implementaciones abarcan cinco familias de funciones: Regresión (FORECAST,LINEST,TREND,GROWTH,LOGEST,CORREL,PEARSON,SLOPE,INTERCEPT,RSQ,STEYX), Depreciación (SLN,SYD,DB,DDB,VDB), Estadística descriptiva (AVEDEV,DEVSQ,KURT,SKEW,GEOMEAN,HARMEAN,TRIMMEAN,FREQUENCY), Pareja de matrices por elementos (SUMXMY2,SUMX2MY2,SUMX2PY2) y Combinatoria y matemáticas (COMBIN,PERMUT,FACT,QUOTIENT,ROMAN,DEGREES,RADIANS,STANDARDIZE). Las funciones de regresión usan un resolvedor de mínimos cuadrados; las de depreciación implementan los métodos de línea recta, de suma de los dígitos de los años y de saldo decreciente; las funciones de estadística descriptiva calculan la desviación media absoluta, la curtosis, la asimetría y las medias geométrica, armónica y recortada; y las funciones por parejas calculan la suma de las diferencias al cuadrado entre dos rangos del mismo tamaño. Un nuevo auxiliarCollectRangeValuesenTXLSCalculatorextrae los valores numéricos de los argumentos de rango para las funciones estadísticas
Versión 2.155.0
Agregado
- El evaluador de fórmulas ahora admite cinco nombres adicionales de compatibilidad estadística y de ingeniería:
ERFC,ERFC.PRECISE,BINOM.INV,CHI.INV.RTyF.TEST.ERFCcomplementa la serie existente de la función de error,BINOM.INVbusca el umbral de la CDF binomial,CHI.INV.RTes un alias de la inversa de la ji-cuadrado de cola derecha yF.TESTdevuelve el valor p de dos colas de la varianza de muestras
Versión 2.154.0
Agregado
- El evaluador de fórmulas ahora resuelve las referencias entre libros mediante una nueva retrollamada
OnGetExternalValueenTXLSCalculator. Cuando una referencia de rango 3D apunta a un libro externo ([1]Sheet1!A1), el evaluador se enruta a través de la retrollamada en lugar de devolver#REF!. El motor XLSX conecta esta retrollamada aGetExternalCellValue, que asigna el índice de SupBook y el de hoja a la caché<sheetDataSet>delTXLSXExternalLinkcorrespondiente y decodifica el valor en caché de la celda según su atributo de tipo de OOXML (numérico / booleano / cadena / error). Antes las fórmulas entre libros devolvían#REF!incondicionalmente; la infraestructura de retrollamadas ahora permite a cualquier motor (BIFF8, XLSX o un host de calculadora personalizado) suministrar valores externos - El evaluador de fórmulas ahora realiza difusión de matrices por elementos sobre operadores binarios (
+/-/*///^). Cuando cualquiera de los operandos es una matriz variante 1D o 2D (p. ej. el resultado de una función de matriz, un rango derramado o un operando de matriz CSE), el operador se aplica elemento por elemento; un operando escalar se difunde a todos los elementos del operando de matriz. El nuevo auxiliarApplyArrayBinaryOpmaneja la validación de forma, la difusión de escalares y la propagación de la división por cero. La aritmética escalar heredada no cambia; la ruta de matriz solo se activa cuando al menos un operando es una matriz variante - El evaluador de fórmulas ahora reconoce la función
TABLE(Tabla de datos de Análisis de hipótesis). Excel almacena las tablas de datos como fórmulas de matriz CSE cuyo cuerpo esTABLE(rowRef, colRef); antesTABLEno se reconocía y caía a#NAME?. La función se registra con un ptg sintético (ftabTABLE = 4232) de modo que traspasa de ida y vuelta a través de la codificación de fórmulas BIFF8, y en tiempo de evaluación devuelve un valor de marcador de posición (0); los resultados reales los precalcula Excel y se almacenan como valores en caché de la celda, de modo que HotXLS no vuelve a evaluar la lógica de sustitución
Versión 2.153.0
Agregado
- El modelo con tipo de tabla dinámica ahora transporta las propiedades con tipo del eje de página (Hier / Caption / Name), el ámbito de ordenación automática y los anzuelos de traspaso de ida y vuelta de XML sin procesar para
<formats>y<extLst>necesarios para una mayor compatibilidad con Excel.TXLSPivotFieldganaPageHier/PageCaption/PageName(F16: nombre de jerarquía OLAP, título del eje de página y nombre para mostrar) yAutoSortScope(F20: referencia de rango A1 que fija las celdas que Excel usa para ordenar automáticamente los elementos del campo);TXLSPivotTableganaFormatsXml/ExtLstXml(F17: traspaso de ida y vuelta de XML interno sin procesar para el bloque de anulaciones de CF y de formato numérico de<formats>y para el bloque de segmentación, escala de tiempo y x14 de<extLst>, emitido de forma literal al establecerlo, de modo que el traspaso de ida y vuelta es seguro incluso entre versiones del motor). El escritor XLSX emite los atributos coincidentes<pageField hier=... cap=... name=.../>, el elemento secundario<autoSortScope>de<pivotField>, y los bloques<formats>y<extLst>antes de la centinela de cierre - El trazador de fórmulas ahora registra instantáneas de la pila de operandos paso a paso, lo que habilita un verdadero depurador paso a paso de «Evaluar fórmula».
TXLSFormulaStepganaStepKind(push / reduce / function),StackBefore/StackAfter(instantáneas separadas por comas de la pila de operandos en el momento en que cada paso empezó y terminó) yTokenStart/TokenEnd(intervalo de caracteres basado en 1 que ancla el paso a la fórmula de origen).TXLSFormulaTracerganaTraceReversed(devuelve los mismos pasos en orden inverso de evaluación; útil para una interfaz de retroceso que recorre desde el resultado final hacia los operandos originales) y una propiedadStepCount. Antes el trazador solo registraba Depth / Source / Expression / Value sin estado de la pila - La exportación a HTML ahora incrusta imágenes por celda mediante una nueva retrollamada
OnCellImageenTXLSHTMLExporty una nueva opciónxhImages. Cuando la opción está activada y la retrollamada está conectada, el exportador pide al implementador el fragmento<img>de cada celda (normalmente un URI de datos en Base64) y lo añade después del texto de la celda. Esto desacopla al exportador del almacenamiento de imágenes BIFF8 del motor XLS (que reside en el registro MsoDrawing de cada hoja), de modo que el exportador no tiene que analizar los anclajes por sí mismo. La exportación a HTML del motor XLSX ya incrustaba imágenes; esto cierra la brecha para el motor XLS - La importación de RTF ahora aplica las propiedades de carácter (negrita / cursiva / subrayado / tachado / tamaño) de las palabras de control de RTF a la fuente de la celda de destino.
TXLSRTFImportrastrea\b/\i/\ul/\strike/\fsa lo largo del documento e inserta el formato de la ejecución dominante en el XF de la celda al confirmar. Una nueva propiedadImportCharFormat(True de forma predeterminada) conmuta el comportamiento; establézcala en False para restaurar la importación heredada de solo texto. Las celdas con varias ejecuciones se colapsan a un único XF (gana la última ejecución activa) porque la API de celda del motor XLS es a nivel de celda, no por fragmento, pero esto es mucho mejor que descartar todo el formato, que es lo que hacía el importador heredado - Una nueva clase
TXLSHTMLImportanaliza tablas HTML hacia celdas de la hoja de cálculo. Recorre la primera<table>del origen, emitiendo una fila de hoja de cálculo por cada<tr>y una celda por cada<td>/<th>. Respetacolspan/rowspan(fusión al estilo de Excel), elimina las etiquetas dentro de una celda (colapsando el formato anidado a texto sin formato), decodifica las cinco entidades de carácter estándar (&/</>/"/'/ ) y las formas numéricas&#NNN;/&#xNN;, y convierte las cadenas numéricas limpias a Double de modo que las tablas importadas sigan siendo calculables. Diseñado para la salida que el propio HotXLS produce (SaveAsHTML) más tablas HTML de calidad de copiar y pegar en general; no es un analizador HTML5 completo
Versión 2.152.0
Agregado
- Las tablas XLSX ahora conservan los metadatos de totales a nivel de columna y las fórmulas de tabla.
TXLSXTableexponeColumnTotalsRowFunctions[],ColumnTotalsRowLabels[],ColumnCalculatedColumnFormulas[]yColumnTotalsRowFormulas[];SaveAsemite el XML de columna de tabla coincidentetotalsRowFunction,totalsRowLabel,calculatedColumnFormulaytotalsRowFormula,Openlos lee de vuelta, y los clones de tabla los conservan
Versión 2.151.0
Agregado
- El modelo con tipo de tabla dinámica ahora transporta la colección de filtros por campo, el conmutador de selección múltiple, la superficie discretePr y groupItems del fieldGroup, y el modelo de elementos calculados y de miembros calculados necesarios para una mayor compatibilidad de tabla dinámica.
TXLSPivotFieldgana una colección con tipoTXLSPivotFilters(cada entrada transportaFilterTypeen la enumeraciónST_FilterTypede OOXML de 80 miembros: familias count / percent / sum / caption / value / date, másValue1/Value2/StrValue1/StrValue2,EvalOrder,DataField,MemberPropertyId,Name,Description), un conmutadorMultipleItemSelectionAllowed(F9) y una colecciónTXLSPivotCalculatedItem(F14).TXLSPivotCacheFieldganaDiscreteIndices[]+AddDiscreteIndexyGroupItemLabels[]+AddGroupItempara los bloques discretePr y groupItems del fieldGroup (F13).TXLSPivotTablegana una colecciónTXLSPivotCalculatedMember(F14). El escritor XLSX emite los<pivotField multipleItemSelectionAllowed="1">coincidentes, el bloque por campo<filters><filter .../>, el elemento<fieldGroup><discretePr>...</discretePr><groupItems>...</groupItems></fieldGroup>, el bloque por campo<calculatedItems>y el bloque a nivel de tabla<calculatedMembers>, de modo que las tablas dinámicas construidas mediante programación con filtros, selección múltiple, agrupación o elementos calculados traspasan de ida y vuelta
Versión 2.150.0
Agregado
- Los nombres definidos ahora mantienen válido el texto de su fórmula cuando se elimina o renombra la hoja de cálculo a la que hacen referencia. Eliminar una hoja reescribe todos los calificadores
SheetN!dentro de la fórmula de un nombre definido a#REF!(coincidiendo con el comportamiento de Excel); renombrar una hoja reescribe el calificador al nuevo nombre. Antes el texto de la fórmula seguía apuntando a un nombre de hoja inexistente, que Excel luego marcaba como un vínculo roto al volver a abrir - El modelo con tipo de tabla dinámica ahora transporta el orden de ordenación a nivel de campo y los conmutadores de diseño, además de los atributos de diseño y de visualización a nivel de tabla necesarios para una mayor compatibilidad de diseño de tabla dinámica.
TXLSPivotFieldganaSortType(manual / ascending / descending),Compact,Outline,SubtotalTop,DragToRow/DragToCol/DragToPage/DragToData,ShowAll,InsertBlankRow,NumFmtId;TXLSPivotTableganaCompact/CompactData/Outline/OutlineData/Indent/ShowEmptyRow/ShowEmptyCol/ShowHeaders/ShowDrill/EnableDrill/FieldListSortAscending/GridDropZonesmásRowHeaderCaption/ColHeaderCaption/ErrorCaption/MissingCaption/ShowError/ShowMissingy el par de diseño de eje de páginaRowPageCount/ColPageCount. El escritor XLSX emite los atributos coincidentes<pivotField sortType=... compact=... outline=...>y<pivotTableDefinition indent=... outline=... showEmptyRow=...>y el elemento<location rowPageCount=... colPageCount=.../>, de modo que las tablas dinámicas construidas mediante programación transportan el diseño definido por el usuario en lugar de los valores predeterminados de Excel - Un nuevo método
FormulaIsVolatileenTXLSWorkbookinforma de si una fórmula forzaría un recálculo en cada pasada de cálculo, es decir, si llama a una función volátil (NOW / RAND / TODAY / OFFSET / INDIRECT) o transporta una referencia no resoluble. La comprobación comparte el mismo extractor de dependencias que usa el motor de recálculo, de modo que la respuesta coincide con lo queRecalculatehace en realidad. Los llamadores pueden usarlo para marcar celdas para una interfaz de verificación, para rellenar un conjunto volátil de cadena de cálculo en un libro nuevo o para omitir el almacenamiento en caché del resultado de una fórmula recién introducida
Versión 2.149.0
Agregado
- Las cachés de tabla dinámica ahora se pueden actualizar a partir de su rango de origen mediante programación. Un nuevo método
RefreshPivotCache(ACacheId)enTXLSXWorkbookvuelve a examinar el rango de origen de la caché, reconstruye el dominio de elementos compartidos por campo (volviendo a desduplicar valores y a derivar los límites por tipo) y reescribe los índices de elementos por registro. Antes HotXLS se basaba en el indicador codificado de forma fijarefreshOnLoad="1"y aplazaba todo el trabajo de actualización a Excel en la próxima apertura; las canalizaciones mediante programación ahora pueden actualizar dentro del proceso
Versión 2.148.0
Agregado
InsertColsen el motor XLSX ahora hereda el ancho de columna de su vecino izquierdo, coincidiendo con el comportamiento predeterminado de Excel para «insertar columna». Antes la columna insertada tomaba el ancho predeterminado del libro, lo que producía una brecha de fidelidad visible tras una reapertura- El motor XLSX gana unos auxiliares cómodos de colapso de esquema
ToggleColGrouped/ToggleRowGroupedenTXLSXWorksheet, que recorren el árbol de esqueto y colapsan o expanden el grupo en un nivel dado. Los indicadores de colapso en sí ya traspasaban de ida y vuelta; esto añade la API cómoda faltante de recorrido del árbol
Versión 2.147.0
Agregado
- La exportación a HTML ahora emite anclajes
<a name>en las celdas que son destinos de hipervínculo interno, de modo que los hipervínculos#SubAddressse resuelven correctamente cuando el lector hace clic en ellos. Antes los vínculos se emitían pero los destinos no tenían anclajes, de modo que los saltos internos no resolvían a nada - La exportación a CSV ganó una propiedad
CSVEmitFormulasenTXLSXWorkbook. Cuando es True, las celdas de fórmula exportan su texto de fórmula (=SUM(A1:A2)) en lugar del valor calculado; útil para la depuración y para las canalizaciones que vuelven a importar a un motor diferente - Las URL de los hipervínculos externos ahora se codifican por ciento al escribir (
XlsxEncodeHyperlinkUrl): el espacio, los corchetes angulares, las comillas, las llaves, las barras verticales, las barras inversas, los circunflejos y los acentos graves se codifican como%XXen el atributo<Relationship Target="..."/>de modo que el archivo se abra correctamente en todos los navegadores. Las secuencias codificadas por ciento existentes (%20) se conservan tal cual - La información de estilo de tabla dinámica ahora transporta la superficie completa de
pivotTableStyleInfo:StyleName,ShowRowHeaders,ShowColHeaders,ShowRowStripes,ShowColStripes,ShowLastColumnenTXLSPivotTable. El escritor XLSX emite el elemento coincidente, de modo que las tablas dinámicas construidas mediante programación transportan el estilo de bandas elegido por el usuario en lugar del predeterminado codificado de forma fija - Un nuevo método
CalculateAndVerifyenTXLSXWorkbookvuelve a evaluar cada celda de fórmula y compara el resultado calculado con el valor en caché de la celda. Devuelve el conteo de discrepanias (0 = todos los valores en caché coinciden con el cálculo reciente del motor; las fórmulas volátiles se excluyen). Útil para QA al portar libros entre motores o para validar que un escritor no corrompió los valores en caché
Versión 2.146.0
Agregado
- El motor XLSX ahora admite el cálculo iterativo de referencias circulares (el modo de cálculo iterativo de Excel). Un nuevo trío de propiedades
Iterate/IterateCount/IterateDeltaenTXLSXWorkbookcontrola el comportamiento: cuandoIterate=Truey se detecta un ciclo de referencia duranteRecalculate, el motor vuelve a evaluar las celdas miembros del ciclo hastaIterateCountveces (100 de forma predeterminada) o hasta que el cambio de cada celda sea< IterateDelta(0,001 de forma predeterminada), en lugar de devolver#REF!. Los ajustes traspasan de ida y vuelta a través del elemento<calcPr iterate="1" iterateCount="N" iterateDelta="X"/>de OOXML. Los modelos financieros con referencias circulares intencionales (interés sobre interés, asignaciones circulares) ahora convergen en lugar de generar un error - Los campos de caché de tabla dinámica ahora transportan un modelo de agrupación para la agrupación por rango numérico y por jerarquía de fechas.
TXLSPivotCacheFieldganaHasGroup+GroupStartNum/GroupEndNum/GroupInterval(rango numérico) yGroupByDate/GroupDays/GroupMonths/GroupQuarters/GroupYears/GroupHours/GroupMinutes/GroupSeconds/GroupStartDate/GroupEndDate(fecha). El escritor XLSX emite el elemento<fieldGroup><rangePr groupBy="range|days|months|..."/>de modo que las tablas dinámicas construidas mediante programación con campos agrupados coinciden con la salida de Excel - La exportación a HTML ahora emite notas al pie de los comentarios. Cuando
xhCommentsestá entre las opciones de exportación, cada celda con comentario recibe un vínculo en superíndice[n]y el texto completo del comentario (autor y cuerpo) se lista como una sección de nota al pie después de la tabla con un ancla de retorno a la celda. Antes los comentarios solo estaban disponibles mediante el atributotitle=de la celda, que es invisible al imprimir o al copiar y pegar
Versión 2.145.0
Agregado
- Los literales de error de fórmula BIFF8 (token
tErr) ahora se decodifican hacia un elemento de sintaxisSA_ERRORcon tipo en lugar de hacer fallar el análisis de la fórmula. Una celda que almacena=#N/A(o cualquiera de las siete constantes de error de Excel) antes hacía que toda la fórmula se descartara al leer; ahora el byte de error traspasa de ida y vuelta a través de leer, evaluar y escribir y se reconstruye a su forma de texto (#NULL!,#DIV/0!,#VALUE!,#REF!,#NAME?,#NUM!,#N/A) mediante un nuevo auxiliarXlsErrorToString - El token BIFF8
tIsect $0F(operador de intersección implícita) ahora se decodifica en el traductor de fórmulas binarias, construyendo el mismo nodoSA_ISECTque el analizador de texto produce para@. Antes una fórmula binaria que contuvieratIsectno se podía analizar - El formato condicional de barras de datos ahora emite el bloque de extensión
x14de Excel 2010+ en elextLstde la hoja de cálculo cuando el modelo transporta cualquier campo x14 no predeterminado (color de relleno negativo, degradado desactivado, color del eje, dirección, borde). Un nuevoBuildDataBarExtXmlconstruye el elementoext<x14:conditionalFormattings>con la prioridad coincidente, el par cfvo, los colores de relleno, negativo y del eje y los atributos de degradado, borde, dirección y negativeBarColorSameAsPositive
Versión 2.144.0
Agregado
- El motor XLSX ahora puede escribir libros cifrados Agile (
TXLSXWorkbook.SaveAsEncryptedAgile), con lo que se cierra una brecha de compatibilidad de lectura y escritura de alto valor. Agile es lo que Excel 2010+ escribe de forma predeterminada para los archivos .xlsx protegidos con contraseña; HotXLS podía leer Agile antes, pero solo escribir cifrado estándar (AES-128). La nueva canalización de escritura refleja la ruta de descifrado existente: hash de contraseña SHA-512 con un conteo de giro de 100000 iteraciones, cifrado de paquete por segmento AES-256-CBC, una clave intermedia generada de forma aleatoria envuelta según las tres claves de bloque fijadas por la especificación, y un descriptor XML<encryption>completo que transporta el verificador cifrado y los blobs de clave. La salida es fiel al byte de lo que produce Excel y traspasa de ida y vuelta de forma limpia a través deXlsLoadAgileEncryptedFile(verificado por prueba: la contraseña correcta descifra, la incorrecta se rechaza) - Nuevas primitivas criptográficas sustentan la ruta de escritura Agile:
XlsHMACSHA512(RFC 2104, necesaria para el elementodataIntegrity),XlsBase64Encode(codificador RFC 4648 que refleja el decodificador existente) yAESEncryptCBC(cifrado AES-CBC para cualquier tamaño de clave 128/192/256, la inversa delAESDecryptCBCexistente). La unidad AES ahora importaaes_encrypt_key192/aes_encrypt_key256del obj de Gladman (antes solo estaba disponible el cifrado de 128 bits)
Versión 2.143.0
Agregado
- El evaluador de fórmulas ahora analiza y evalúa el operador de intersección explícito
@(sintaxis de matriz dinámica de Excel 365, p. ej.=A2:A4 @ B2:B4). El analizador léxico emite un nuevo tokenLT_ISECTpara el símbolo@, el analizador de precedencias construye un nodoSA_ISECT(con más fuerza de enlace que^, menos que%) y un nuevo evaluadorIntersectRangesresuelve ambos operandos como rangos y devuelve el valor de la única celda de cruce, la regla de intersección implícita de Excel. El serializador de tokens BIFF emitetIsect $0Fde modo que el operador traspasa de ida y vuelta a través de XLS, y la ruta de reconstrucción de texto de la fórmula emite la forma de espacio implícito. Antes esas fórmulas no se podían analizar - Ya hay disponible un codificador Base64 estándar (
XlsBase64Encode), que refleja elXlsBase64Decodeexistente. Es el requisito previo para la ruta de escritura del cifrado Agile, que emite saltValue / encryptedVerifierHashInput / encryptedKeyValue / encryptedHmacValue como valores de atributo en Base64 - El evento
OnProgressdel libro ahora también se dispara durante el recálculo completo (Recalculate), con una nueva fasexlsxProgressCalculating. Antes el evento solo se disparaba durante la lectura y la escritura, de modo que los recálculos completos largos no daban pulso a la interfaz. El evento se dispara aproximadamente cada 4 % de las celdas para evitar saturar - Las propiedades extendidas del documento (
docProps/app.xml) ahora traspasan de ida y vuelta tres campos más que Excel escribe para los documentos protegidos con contraseña o basados en plantilla:Manager,TemplateyDocSecurity(un campo de bits: 1 = protegido con contraseña, 2 = recomendado solo lectura, 4 = solo lectura aplicado, 8 = bloqueado para anotación)
Versión 2.142.0
Agregado
- El modelo con tipo de tabla dinámica ahora transporta la superficie de metadatos, de origen, de campo calculado, de «mostrar valores como» y de límites de elementos compartidos que la ronda anterior de análisis marcó como brechas.
TXLSPivotCacheganaRefreshOnLoad/RefreshedBy/RefreshedDate/MissingItemsLimit/CreatedVersion/RefreshedVersion/MinRefreshableVersion/EnableRefresh/BackgroundQuery/SaveDatamás una forma de origen de hoja de cálculo con tipo (SourceName/SourceRelId/SourceIsNamedRange);TXLSPivotCacheFieldganaFormula/DatabaseField/MemberPropertyField(campos calculados) y los límites de elementos compartidos (ContainsBlank/ContainsInteger/ContainsString/ContainsNumber/ContainsDate/MinValue/MaxValue/MinDate/MaxDate/HasBounds);TXLSPivotDataFieldganaShowDataAs/BaseField/BaseItempara las transformaciones de «mostrar valores como» (percent-of / difference / running-total / index). El escritor XLSX (BuildPivotCacheDefinitionXml/BuildPivotTableXml) respeta todo esto, de modo que una tabla dinámica construida mediante programación (AddPivotTable) emite unpivotCacheDefinitiony unpivotTableDefinitionmás completos: refreshOnLoad / trío de versión / refreshedBy / origen de rango con nombre / fórmula de cacheField calculada / límites de sharedItems / subtotal de dataField + showDataAs. Las tablas dinámicas leídas de un archivo siguen traspasando de ida y vuelta su XML sin procesar de forma literal - El comportamiento del ancla de imagen ahora traspasa de ida y vuelta mediante una nueva propiedad
AnchorTypeenTXLSXImage(xaTwoCell= mover y cambiar de tamaño con las celdas,xaOneCell= mover pero no cambiar de tamaño,xaAbsolute= ni mover ni cambiar de tamaño). El escritor elige el elemento de ancla (xdr:oneCellAnchor/xdr:twoCellAnchor editAs=.../xdr:absoluteAnchor) para que coincida; el lector analiza de vuelta el nombre del elemento y el atributoeditAs. Corresponde al cuadro de diálogo Excel clic derecho y Tamaño y propiedades y Propiedades - El encabezado y pie de página ahora traspasan de ida y vuelta la diferenciación de página par y de primera página.
TXLSXWorksheetganaEvenHeaderText/EvenFooterText/FirstHeaderText/FirstFooterTextademás de los cuatro conmutadores de<headerFooter>(DifferentOddEven,DifferentFirst,ScaleWithDoc,AlignWithMargins). Los archivos en los que el usuario activó «Diferentes páginas pares e impares» o «Diferente primera página» ya no pierden las secciones de página par o de primera página en el traspaso de ida y vuelta - La configuración de página ahora traspasa de ida y vuelta los atributos extendidos de
<pageSetup>que Excel escribe para configuraciones de impresión no predeterminadas:Copies,FirstPageNumber+UseFirstPageNumber,HorizontalDpi,VerticalDpi,PrintErrors(displayed / blank / dash / NA),UsePrinterDefaults <sheetFormatPr>ahora traspasa de ida y vueltacustomHeight,zeroHeight,outlineLevelRowyoutlineLevelCol, de modo que los archivos en los que el usuario definió un alto de fila predeterminado fijado por el usuario, filas predeterminadas ocultas o un nivel de esqueto predeterminado ya no pierden ese comportamiento- El formato condicional de barras de datos traspasa de ida y vuelta el atributo estándar
gradient(degradado frente a relleno sólido), yTXLSDataBarSpecgana los campos de extensiónx14de Excel 2010+ (NegativeBarColor,NegativeBarColorSameAsPositive,GradientFill,AxisColorcon tema y matiz,Direction,Border) en el modelo, de modo que los consumidores de la API pueden establecerlos - Los globos de comentario traspasan de ida y vuelta su dibujo VML de forma literal. El lector captura
xl/drawings/vmlDrawingN.vmltal cual y el escritor lo reproduce al guardar (en lugar de la plantilla integrada de globo amarillo), de modo que sobreviven la posición, el tamaño, el color de relleno y la visibilidad definidos por el usuario de cada globo - Los cuerpos de comentario traspasan de ida y vuelta el formato por ejecución.
TXLSXCommentgana una carga diferidaRichText: TXLSXRichText(que reutiliza el modelo de ejecución de cadenas compartidas); el escritor emite un<r><rPr>...</rPr><t>...</t></r>por ejecución cuando RichText transporta formato, y el lector analiza de vuelta<b/>,<i/>,<sz val=N/>,<color rgb=.../>, de modo que sobreviven la negrita, la cursiva, el tamaño y el color - El evaluador de fórmulas ahora implementa
SUBTOTAL(los once agregadores: AVERAGE / COUNT / COUNTA / MAX / MIN / PRODUCT / STDEV / STDEVP / SUM / VAR / VARP, además de las variantes 101–111 de omisión de ocultas) yAGGREGATE(diecinueve agregadores con los indicadores de código de opción 0–7 que seleccionan la omisión de error y de oculta, incluida la familia LARGE / SMALL / MEDIAN / PERCENTILE / QUARTILE con su argumentok). Antes ambos caían a la ruta de función no admitida;SUBTOTALestaba registrada pero sin implementación,AGGREGATEno estaba registrada en absoluto - Las funciones de hoja de cálculo
CELLeINFOahora se evalúan:CELLadmiteaddress,col,row,type,contents,filename,format, y losinfo_typede estado de la interfaz (color,parentheses,prefix,protect,width) devuelven valores neutros predeterminados;INFOadmiteosversion,system,recalc,memavail,numfile,release,origin. Ambas estaban registradas pero caían a#NAME? - El formato condicional ahora traspasa de ida y vuelta los atributos
stopIfTrue,stdDev,equalAverageytimePerioddecfRule, además de la familia completa de diez miembros detimePeriod(yesterday / today / tomorrow / last7Days / lastWeek / thisWeek / nextWeek / lastMonth / thisMonth / nextMonth). Estos se descartaban silenciosamente al leer; Excel los escribe de forma rutinaria en las reglas de promedio por encima y de banda de fechas, y descartarlos cambiaba cómo se volvía a evaluar la regla al reabrir - La exportación a CSV ganó una propiedad
TXLSCsvEncodingenTXLSCSVSavercon tres modos:ceSystemAnsi(predeterminado heredado),ceUtf16(el modo Unicode histórico) yceUtf8, que escribe un archivo UTF-8 con la marca de orden de bytes EF BB BF, el predeterminado moderno apto para Excel que se vuelve a abrir sin el asistente de importación de texto en cualquier configuración regional - La importación de CSV ganó una propiedad
LocaleTolerantNumbersenTXLSCSVLoader. Cuando se activa, un campo numérico que no se puede analizar con.como separador decimal se reintenta con,(y viceversa), de modo que un3,14europeo se importa como el número 3,14 en una máquina de EE. UU. El modo estricto (el predeterminado) no cambia, de modo que el texto con ceros a la izquierda, los códigos postales y otros token con coma siguen siendo texto
Corregido
- La inferencia numérica de modo estricto del motor XLSX ya no convierte campos de texto con coma (p. ej.
3,14) en números mediante elTryStrToFloatde Delphi, que tolera una coma como separador de miles incluso cuandoThousandSeparatorestá establecido en#0. Esos campos ahora se mantienen como texto a menos que se active la nueva opciónLocaleTolerantNumbers
Versión 2.140.0
Cambiado
- El motor XLSX ahora compacta sus seis agrupaciones de estilo por atributo (Fonts / Fills / Borders / NumberFormats / Alignments / Protections) antes de cada guardado: una nueva pasada
CompactStylePoolsexamina los índices de estilo de cada celda y descarta las entradas de agrupación a las que ya no hace referencia ninguna celda, las entradas que se acumulan cuando las celdas se vacían, se eliminan o se restablece su estilo después de que se añadió la entrada a la agrupación. Las agrupaciones compactadas producen una tabla<cellXfs>más pequeña en el archivo de salida (normalmente de un 30 a un 70 % más pequeña para los documentos que han pasado por varios ciclos de edición), coincidiendo con la compactación que el motor XLS ya hace medianteCreateAllReferredList
Versión 2.139.0
Agregado
- Las formas de la capa de dibujo, los conectores, las formas de grupo y los marcos gráficos que no son de gráfico ahora traspasan de ida y vuelta de forma literal: cuando el lector XLSX encuentra un ancla
<xdr:sp>,<xdr:cxnSp>,<xdr:grpSp>o un ancla<xdr:graphicFrame>que no es de gráfico y que el modelo con tipo (imágenes, gráficos, cuadros de texto) no cubre, captura el XML completo del ancla y lo reproduce sin cambios al guardar, de modo que los dibujos creados en Excel (flechas, llamadas, formas agrupadas, marcos de arte inteligente) sobreviven a un ciclo de lectura y escritura sin pérdida. Cada hoja de cálculo exponeRawDrawingAnchorCount/RawDrawingAnchor(i)para inspección
Versión 2.138.0
Agregado
- Los valores en caché de las celdas de los vínculos externos ahora traspasan de ida y vuelta en el motor XLSX: un nuevo modelo
TXLSXExternalCell/TXLSXExternalRow/TXLSXExternalSheetDatacuelga de cadaTXLSXExternalLinkmedianteAddSheetData/AddRow/AddCell, el escritor emite el bloque<sheetDataSet>coincidente dentro deexternalLinkN.xmly la reapertura restaura cada valor en caché.FindCachedCell(sheetIdx, row, col)busca el último valor conocido de una celda referenciada de forma externa, los datos que el propio Excel muestra cuando el libro remoto está sin conexión
Versión 2.137.0
Agregado
- El indicador
quotePrefixde cellXf de OOXML — el mecanismo de Excel para marcar el texto almacenado como literal de modo que sobreviva a la coerción numérica (códigos importados de CSV como00123, números de cuenta largos, cualquier cosa que el usuario prefijó con un apóstrofo) — ahora traspasa de ida y vuelta en el motor XLSX:TXLSXAlignmentgana una propiedadQuotePrefix, el desduplicado de la agrupación de alineación la cuenta, el escritor emitequotePrefix="1"en el<xf>coincidente y la reapertura lo restaura tanto si el cellXf transportaba un elemento secundario<alignment/>como si era un<xf quotePrefix="1"/>de autocierre puro
Versión 2.136.0
Added
- Los ejes de los gráficos son ahora totalmente programables: un nuevo modelo
TXLSXChartAxisen laCategoryAxisy laValueAxisde cada gráfico exponeLogBase(escala logarítmica, p. ej. 10 para logaritmo en base 10),Orientation(normal / invertida),MajorGridlines/MinorGridlines,MinValue/MaxValue(NaN = automático),MajorUnit/MinorUnit,CrossesAt,TickLblPosyDispUnits(unidades de visualización: centenas / miles / millones / miles de millones / billones). Todo por defecto sigue el comportamiento automático de Excel, de modo que los gráficos existentes emiten el mismo XML que antes; el escritor añade<c:logBase>,<c:orientation>,<c:majorGridlines>,<c:majorUnit>,<c:crossesAt>,<c:tickLblPos>y<c:dispUnits>solo cuando el llamador establece un valor no predeterminado, y al reabrir dicho gráfico se restaura cada ajuste
Versión 2.135.0
Added
- Las barras de error de los gráficos son ahora programables y se conservan en el ciclo de ida y vuelta en el motor XLSX: cada
TXLSXChartSeriesganaAddErrorBar(dir)que devuelve unTXLSXChartErrBarconValueType(fijo / porcentaje / stdDev / stdErr / personalizado),Value,PlusValue/MinusValue(personalizado) yNoEndCap; se almacena una ranura de barra de error por dirección (X / Y), el escritor emite el bloque<c:errBars>correspondiente y al reabrir se restauran la dirección, el tipo y la magnitud para que los gráficos científicos / técnicos conserven sus indicadores de incertidumbre
Versión 2.134.0
Added
- Las etiquetas de datos de los gráficos son ahora programables y se conservan en el ciclo de ida y vuelta en el motor XLSX: cada
TXLSXChartSeriesgana las propiedadesShowValue,ShowCategoryName,ShowSeriesName,ShowLegendKey,ShowPercent,ShowBubbleSizeySeparatorque emiten el bloque<c:dLbls>correspondiente con sus elementos hijos<c:show*/>; al reabrir dicho gráfico se restauran los conmutadores, de modo que los ajustes de «mostrar valor» / «mostrar porcentaje» sobreviven a un ciclo de guardar-editar-guardar
Versión 2.133.0
Added
- Los formatos de imagen vectorial EMF y WMF son ahora tipos de imagen de primera clase en el motor XLSX:
TXLSXImageFormatganaxlsxImageEmf/xlsxImageWmf, el escritor emite los tipos de contenidoimage/x-emf/image/x-wmfy las extensiones.emf/.wmfcorrespondientes, y el detector de formato reconoce las cabeceras EMF (01 00 00 73), WMF colocable (D7 CD C6 9A) y WMF estándar — de modo que las imágenes pegadas desde Word o PowerPoint que Excel incrusta como datos vectoriales ahora se conservan en el ciclo de ida y vuelta en lugar de descartarse
Fixed
- Los subflujos de gráficos BIFF8 cuyo registro GELFRAME (
$1066) cruza el límite de continuación de 8224 bytes ya no pierden la geometría de relleno/línea: el lector ahora acepta la autocontinuación de GELFRAME (Excel escribe otro$1066en lugar del$003CCONTINUE estándar) y también permite que los registros CONTINUE estándar se ensamblen dentro del contexto del gráfico, en consonancia con el reparto multi-fragmento existente del escritor - Las imágenes de fondo de cabecera/pie BIFF8 (
$0866) cuya carga útil abarca registros de continuación ya no se corrompen: cada segmento de continuación repite una cabecera MSO de 14 bytes que el lector ahora elimina antes de concatenar, de modo que los datos de imagen incrustados ya no se desplazan 14 bytes por segmento
Versión 2.132.19
Fixed
- La limpieza del almacenamiento XLS heredado y XLSX cifrado ahora libera los flujos del archivo compuesto de forma determinista, evitando que los archivos temporales permanezcan bloqueados tras operaciones de guardado, carga, VBA o de paquete cifrado
- La visualización formateada de los valores variant enteros extendidos ahora aplica el formato numérico solicitado de forma coherente, en consonancia con el comportamiento existente para los valores enteros estándar
- Las cadenas compartidas, la validación de datos, las hojas de gráfico, los archivos ZIP, el dibujo PNG y las fórmulas de texto repetidas ahora limpian las memorias intermedias temporales de forma más defensiva durante las rutas de error y las operaciones de texto grandes
Versión 2.132.18
Fixed
- La asignación de valores del constructor de cadenas interno ahora borra el texto previo cuando se le asigna una cadena vacía, evitando que las memorias intermedias de XML y de texto reutilizadas conserven contenido obsoleto
Versión 2.132.17
Corregido
- La creación de hojas de gráfico XLS ahora acepta nombres de hoja de origen entrecomillados que contienen un signo de exclamación, rechaza referencias de fila sobredimensionadas antes de que puedan convertirse en una fila BIFF válida y limita los nombres de leyenda de la línea de tendencia al límite de texto corto de BIFF para que los registros de gráfico generados se mantengan bien formados
Versión 2.132.16
Corregido
- Las listas internas de claves de cadena y claves de objeto ahora eliminan las claves de búsqueda obsoletas cuando se sobrescribe una ranura existente, lo que evita que las claves antiguas se resuelvan en entradas de reemplazo
- Los reemplazos internos de listas de objetos y las cachés de claves únicas transformadas ahora liberan las entradas propias al sobrescribir, limpiar y destruir, lo que evita fugas durante operaciones repetidas de libros y estilos
Versión 2.132.15
Corregido
- Las lecturas directas de flujo XLSX ahora decodifican celdas booleanas que almacenan valores literales OOXML como true y false
- Las actualizaciones del índice de la lista de cadenas internas ahora eliminan las claves obsoletas cuando se sobrescribe una ranura existente, lo que evita que los nombres antiguos se resuelvan en el nuevo valor
Versión 2.132.14
Corregido
- Los mensajes de advertencia y de error de validación de datos de BIFF8 cuyo primer carácter es NUL ahora preservan los límites del registro en lugar de escribir una longitud de DV discordante
Versión 2.132.13
Corregido
- El análisis de texto XML ahora rechaza los inicios de entidades anidadas como && en lugar de omitir silenciosamente la entidad sin terminar
- Las fórmulas descompiladas ahora escriben constantes numéricas con un separador decimal de punto invariable para que el texto de la fórmula siga siendo portable entre configuraciones regionales
Versión 2.132.12
Corregido
- La transparencia PNG de paleta ahora ignora los colores transparentes que no están presentes en la paleta de imágenes en lugar de marcar un índice de paleta arbitrario como transparente
- Las fórmulas SUMPRODUCT ahora dejan de escanear las filas restantes después de la primera fila fuera del rango utilizado en argumentos de rango largo, evitando lecturas de celda innecesarias mientras se preserva el resultado calculado
Versión 2.132.11
Corregido
- Las fórmulas TEXT ahora devuelven #VALUE! cuando no se puede aplicar un formato de número no válido o sobredimensionado, en lugar de ser absorbido como un resultado exitoso en blanco
- La truncación de la tabla de cadenas compartidas ahora libera los bloques de cola correctos y mantiene la tabla reutilizable después de grandes ciclos de eliminación
Versión 2.132.10
Corregido
- Las búsquedas exactas de MATCH ahora respetan los comodines de Excel, y los metadatos de desplazamiento de fila XLS clásicos ahora ignoran las filas fuera de bloque en lugar de corromper la estructura del libro guardado
- Los metadatos de texto comprimidos PNG ahora liberan los búferes temporales de forma segura si el procesamiento de fragmentos genera una excepción
Versión 2.132.9
Corregido
- Los metadatos de texto comprimidos PNG, la inserción en la lista de fragmentos y el manejo del orden de bytes CRC ahora permanecen estables en todas las plataformas Windows compatibles
Versión 2.132.8
Corregido
- Las fórmulas LEFT y RIGHT ahora informan #VALUE! cuando num_chars no se puede convertir en un entero válido
Versión 2.132.7
Corregido
- Las fórmulas SEARCH ahora admiten comodines ?, * y ~ al estilo de Excel
- La validación del nombre de la hoja de trabajo ahora rechaza caracteres no válidos para nombres de hoja de Excel al cambiar el nombre de las hojas
- La eliminación manual de saltos de página ahora funciona después de insertar un salto antes de los saltos existentes
Versión 2.132.6
Corregido
- Las fórmulas DATE ahora coinciden con el comportamiento de traspaso de mes y día compatible con Excel, incluyendo llamadas como DATE(2008,14,2)
- Las lecturas de Hidden en rangos de columnas ahora informan la visibilidad de cada columna en lugar de mezclar el estado de visibilidad de las filas
- Los metadatos de fila BIFF en el límite de filas de Excel 97-2003 ahora se cargan correctamente, de modo que se preservan las configuraciones para la fila 65536
Versión 2.132.5
Corregido
- La carga de libros de trabajo BIFF ahora tolera colores de pestañas de hojas de cálculo mal formados, etiquetas de tabla dinámica truncadas y fragmentos de fecha de caché de tabla dinámica no válidos sin generar excepciones
- La carga de paquetes y flujos de libros de trabajo ahora limpia las rutas de configuración de almacenamiento y archivos fallidos de manera más consistente, evitando la fuga de recursos ante entradas malformadas o aperturas fallidas de almacenamiento respaldadas por flujo
Versión 2.132.4
Corregido
- El manejo de archivos ZIP ahora finaliza el paquete actual antes de reutilizar el mismo objeto de archivo para otro paquete, y la apertura de archivos basada en archivos ahora permite lectores compartidos concurrentes
Versión 2.132.3
Corregido
- La escritura de paquetes de libros de trabajo ahora preserva los nombres de entrada de ZIP que no son ASCII con metadatos UTF-8, evitando el mojibake cuando los nombres de las partes del paquete contienen texto Unicode
- La salida XML ahora escribe texto sin formato y valores de atributos como bytes UTF-8 cuando el escape está deshabilitado, coincidiendo con la codificación de documento declarada
- La evaluación de fórmulas ahora borra su estado en progreso después de excepciones de devolución de llamada y maneja correctamente la cancelación de números grandes en compilaciones Unicode de Delphi
- La extracción de matrices de fórmulas de matriz ahora respeta los límites inferiores distintos de cero de los arreglos Variant en lugar de generar una excepción para arreglos válidos basados en uno
Versión 2.132.2
Modificado
- La ordenación de rangos ahora utiliza un paso de ordenamiento estable O(n log n) para rangos grandes ordenados, al tiempo que preserva el comportamiento de ciclo de ida y vuelta del contenido de las filas existentes
- El análisis y formateo numérico de ODS y XLSX ahora reutilizan el estado de formato invariable en lugar de crearlo repetidamente en rutas críticas
Corregido
- El análisis XML ahora acepta bloques CDATA válidos e instrucciones de procesamiento UTF-8 sin corromper el texto ni fallar con marcado válido
- El análisis de fórmulas ahora acepta notación científica con signo y rechaza de manera limpia los bytes de fórmula malformados o truncados
- Las rutas de apertura y guardado de libros clásicos ahora liberan flujos y almacenamientos de manera confiable después de errores, lo que evita que los archivos temporales permanezcan bloqueados
- El manejo de búferes binarios ahora valida los límites de copia y lectura, aumenta los búferes de destino antes de copiar y rechaza de forma limpia las referencias inversas de compresión VBA mal formadas
Versión 2.132.1
Corregido
- Se corrigió el mensaje de error que se genera cuando un libro de trabajo cifrado utiliza un esquema de cifrado no compatible: anteriormente afirmaba que no se podía leer ECMA-376 Agile Encryption, aunque el descifrado Agile (AES-128/192/256) es compatible desde la versión 2.119.0; el mensaje ahora enumera los esquemas realmente compatibles
- Open ahora remite a los llamadores a TXLSXWorkbook.OpenEncrypted cuando rechaza un paquete OOXML cifrado, en lugar de indicar que no se admiten libros cifrados
Versión 2.132.0
Modificado
- La carga de XLSX is sustancialmente más rápida: el lector XML ahora interna los nombres de elementos repetidos y convierte los valores de texto y atributos directamente desde su búfer de escaneo, reduciendo las asignaciones de memoria por celda a más de la mitad; la apertura multihilo (2.128.0) es la más beneficiada — las asignaciones eliminadas eran las que serializaban los hilos de trabajo —, abriéndose ahora los libros de trabajo de varias hojas casi el doble de rápido que la ruta de un solo hilo en máquinas multinúcleo; la apertura de un solo hilo también gana un pequeño porcentaje
Versión 2.131.0
Agregado
- Los bloques de extensión de hoja de trabajo que HotXLS no modela — entradas
<ext>en el<extLst>de una hoja de trabajo que no sean líneas de chispa (sparklines), según lo escrito por Excel para características como el formato condicional x14 o segmentadores (slicers) — ahora se conservan textualmente cuando se abre un libro de trabajo y se escriben de nuevo al guardar, por lo que abrir y volver a guardar un archivo ya no elimina esas extensiones. Los bloques capturados son visibles como solo lectura a través deWorksheet.RawWorksheetExtsy viajan con la hoja cuando esta se copia a otro libro de trabajo
Versión 2.130.0
Agregado
- Los libros de trabajo guardados que contienen fórmulas ahora incluyen la sección de cadena de cálculo
xl/calcChain.xml, permitiendo a Excel alimentar su motor de dependencias desde el orden grabado en lugar de tener que reconstruirlo al cargar. Después de una llamada aRecalculatela cadena sigue el orden topológico del grafo de dependencias; en caso contrario, las celdas con fórmulas se listan en el orden del documento (una indicación válida que Excel optimiza sobre la marcha). La sección, su tipo de contenido y su relación con el libro de trabajo se emiten de forma conjunta y sobreviven a los ciclos de ida y vuelta de apertura y guardado
Versión 2.129.0
Agregado
- La nueva propiedad
Workbook.ParallelParseThreadsajusta el recuento de hilos de trabajo para la ruta de Open multihilo introducida en 2.128.0 (0 = automático, un hilo de trabajo por núcleo de CPU). El análisis de hojas de trabajo realiza una gran cantidad de asignaciones de memoria y estas asignaciones se serializan entre hilos, por lo que en algunas cargas de trabajo un límite explícito bajo funciona tan bien o mejor que el recuento total de núcleos; la propiedad permite a los integradores elegir qué medida funciona mejor para sus archivos
Versión 2.128.0
Agregado
- Carga XLSX multiproceso: la apertura de un libro ahora analiza el XML de cada hoja de trabajo (el costo principal en archivos grandes) en hilos de trabajo, por lo que los libros con varias hojas se abren más rápido en computadoras con múltiples núcleos. Las partes de la hoja se extraen del paquete por adelantado y cada proceso de trabajo solo toca su propia hoja, por lo que el libro cargado es idéntico al resultado secuencial
- La nueva propiedad
Workbook.ParallelParse(predeterminada enTrue) vuelve al análisis de un solo hilo cuando se establece enFalseantes deOpen— una opción de exclusión de una sola línea para entornos con limitaciones
Modificado
- La devolución de llamada de lectura
OnProgressse sigue activando una vez por hoja de trabajo en el hilo de llamada, ahora a medida que cada hoja se envía para su análisis en lugar de estrictamente entre hojas
Versión 2.127.0
Agregado
- Recálculo incremental en el motor XLSX: el nuevo método
Workbook.Recalculatecompila un gráfico de dependencia de fórmulas, evalúa cada celda de fórmula una vez en orden de dependencia y almacena cada resultado en el valor almacenado en caché de la celda; las llamadas posteriores vuelven a evaluar solo las celdas afectadas por los cambios de valor desde la última pasada; en modelos encadenados (hojas financieras, cascadas de informes), la edición de una entrada recalcula solo sus fórmulas posteriores en lugar de todo el libro de trabajo - Las funciones volátiles (
NOW,TODAY,RAND,OFFSET,INDIRECT) se recalculan en cada pasada, al igual que las fórmulas cuyas referencias no se pueden resolver estáticamente (nombres de varias áreas, libros externos) — el motor calcula en exceso en lugar de arriesgarse a obtener un resultado desactualizado - Los ciclos de referencia se detectan en lugar de entrar en bucle:
Recalculatedevuelve un código de error cuando las fórmulas forman una cadena circular, omite los miembros del ciclo y continúa evaluando todas las fórmulas fuera del ciclo. Las referencias entre hojas de cálculo, los rangos con nombre y las fórmulas de matriz CSE (cuyos resultados se desbordan por el rango anclado) participan plenamente en el grafo de dependencias
Modificado
- La ruta existente bajo demanda
Calculateno se modifica;Recalculatees una API opcional separada y los libros que nunca la llaman se comportan exactamente como antes
Versión 2.126.0
Agregado
- Minigráficos en el motor XLSX: las hojas de trabajo ahora contienen grupos de minigráficos —los minigráficos integrados en celdas que Excel genera a partir de un rango de datos— con los tres tipos de Excel (línea, columna, ganancia/pérdida apilada). Cree uno con
Worksheet.AddSparklineGroupo cree grupos manualmente a través de la nueva colecciónWorksheet.SparklineGroups, agregando cualquier cantidad de minigráficos por grupo con un rango de origen y una celda de visualización cada uno - Los grupos de minigráficos exponen el conjunto completo de opciones que ofrece Excel: grosor de línea, marcadores de puntos de datos, selectores de énfasis para puntos alto/bajo/negativo/primer/último, ocho ranuras de color ARGB (serie, negativo, eje, marcadores, primero, último, alto, bajo), escalado del eje vertical por grupo o por minigráfico, y manejo de brechas/cero/abarcar para celdas de origen vacías
- Los minigráficos sobreviven a un ciclo completo de guardado y apertura: al guardar se emite el bloque de extensión
extLstde la hoja de trabajo ([MS-XLSX] §2.3.6) para que Excel 2010 y versiones posteriores representen los minigráficos, y al abrir dicho libro —ya sea escrito por HotXLS or Excel— se reconstruye cada grupo, opción y rango para que persistan a través de los ciclos de edición. Al copiar una hoja a otro libro también se clonan sus grupos de minigráficos
Versión 2.125.0
Agregado
- Siete funciones de texto para conteo de bytes DBCS obtenidas del análisis de brechas de XLSSuit ahora se evalúan en ambos motores:
LEFTB,RIGHTB,MIDB,LENB,FINDB,SEARCHByREPLACEB. Cada una trata su entrada como una cadena de bytes bajo la página de códigos ANSI del sistema, de modo que los caracteres CJK (chino/japonés/coreano) ocupan 2 bytes mientras que ASCII ocupa 1; las operaciones que dividirían un par de bytes principal/secundario (lead/trail) de DBCS vuelven al límite de carácter más cercano, coincidiendo con el comportamiento de Excel
Versión 2.124.0
Agregado
- Cinco funciones de prueba de hipótesis y distribución del análisis de brechas de XLSSuit ahora se evalúan en ambos motores:
Z.TEST(probabilidad de una cola y de cola derecha de que la media de la muestra sea al menosxbajo la hipótesis nula),T.TEST(valor p de la prueba t de dos muestras emparejadas; se aplazan los tipos de varianza igual/desigual no emparejados),CHISQ.TEST(valor p de bondad de ajuste a través de la CDF de chi-cuadrado de cola superior),HYPGEOM.DIST(PMF/CDF hipergeométrica con la bandera acumulativa) yNEGBINOM.DIST(PMF/CDF binomial negativa); la matemática del valor p reutiliza los asistentes CDF de chi-cuadrado/t de Student/normal existentes del motor a través de rutinas anidadas independientes, por lo que ningún método Calc existente cambia
Versión 2.123.0
Agregado
- Catorce funciones de fórmulas que una comparación con XLSSuit identificó como brechas ahora se evalúan en ambos motores:
AVERAGEIF(promedio de criterio único, el elemento relacionado de SUMIF/COUNTIF que le faltaba al motor),WORKDAY.INTLyNETWORKDAYS.INTL(máscaras de fin de semana personalizadas a través de códigos numéricos del 1 al 17 o una cadena de 7 caracteres de lunes a domingo),XIRRyXNPV(tasa interna de retorno y valor neto actual para flujos de caja con fechas irregulares, resueltos mediante bisección de intervalos),CEILING.PRECISE/FLOOR.PRECISE/ISO.CEILING(redondeo independiente del signo),PERCENTRANK.INC/PERCENTRANK.EXC(rango porcentual con la interpolación inclusiva/exclusiva correspondiente),MODE.MULT(vuelca cada valor empatado con la frecuencia más alta),ERF.PRECISE(función de error de Gauss a través de su serie alternante),ACCRINT(interés acumulado) eISPMT(interés del período para amortización de capital constante)
Versión 2.122.0
Agregado
- Los comentarios encadenados (Excel 365) ahora realizan un ciclo completo en el motor XLSX:
AddThreadedCommentyAddThreadedReplyen una hoja de trabajo crean un árbol de respuestas padre→hijo anclado en una celda, registran automáticamente a cada autor en una nueva lista dePersonsa nivel de libro de trabajo y emiten la parte dedicadaxl/threadedComments/threadedCommentN.xmlpor hoja más el archivoxl/person/person.xmlcon ámbito de libro de trabajo; al volver a abrir dicho paquete se reconstruye el árbol de conversación y la lista de participantes a partir de esas partes, por lo que las cadenas de respuesta, los identificadores y los nombres para mostrar sobreviven a un ciclo completo de lectura y escritura
Versión 2.121.0
Agregado
- El evaluador de fórmulas ahora calcula las funciones de matriz dinámica de Excel 365
XMATCH,SORT,UNIQUEySEQUENCE, uniéndose a las ya admitidasXLOOKUPyFILTER; los resultados se desbordan como matrices bidimensionales, por lo queSEQUENCE(3;2;1;1)devuelve una cuadrícula de 3×2,SORTreordena las filas según cualquier columna clave de forma ascendente o descendente,UNIQUEcontrae las filas duplicadas conservando la primera aparición yXMATCHinforma la posición basada en 1 de un valor de búsqueda con los mismos modos de coincidencia exacta/comodín/siguiente más pequeño/siguiente más grande queXLOOKUP
Versión 2.120.0
Agregado
- El nuevo método
PasteFromClipboarden las hojas de trabajo de ambos motores lee texto delimitado por tabulaciones del portapapeles de Windows — la carga útil que Excel coloca allí cuando se copia un rango, o una selección simple de cualquier otra aplicación — y lo escribe en las celdas comenzando en la fila y columna dadas, con la misma promoción de tipo de número/fecha/booleano que el cargador de CSV ya utiliza; el texto que comienza con=se convierte en una fórmula en vivo, coincidiendo con la forma en que el propio Excel pega
Versión 2.119.0
Agregado
- Lectura de Cifrado ágil ECMA-376 — la protección con contraseña que Excel 2010 y versiones posteriores aplican de forma predeterminada:
OpenEncryptedahora analiza el descriptor de cifrado XML, deriva las claves con hashing SHA-512 mediante conteo de iteraciones (spin-count), verifica la contraseña y descifra el paquete segmentado AES-CBC (AES-128/192/256), de modo que los libros de trabajo protegidos con contraseña directamente en Excel se abren sin tener Excel instalado OpenEncryptedmaneja los tres casos a través de un único punto de entrada:.xlsxsin cifrar, Cifrado Estándar (nuestro ciclo completo deSaveAsEncrypted) y Cifrado Ágil; una contraseña incorrecta genera el mismo error claro en cada esquema
Corregido
- Guardar un libro de trabajo
.xlsxcuyo XML de hoja de cálculo superaba aproximadamente los 116 KB — unas 3,000 filas de datos de texto típicos — provocaba un desbordamiento de pila (stack overflow); la suma de comprobación CRC-32 del escritor ZIP ahora procesa los datos en bloques de 64 KB, lo que evita que el backend de compresión pase por su ruta de código para entradas grandes que asigna un búfer temporal (scratch buffer) sobredimensionado en la pila. El resultado de la suma de comprobación no varía
Modificado
- La deduplicación de cadenas compartidas ahora se realiza a través de una tabla hash en lugar de buscar en la lista de cadenas, y la sección
sharedStrings.xmlse ensambla mediante un constructor de cadenas con tamaño preasignado en lugar de concatenaciones repetidas — esto, junto con el índice de celdas en tiempo constante, reduce el guardado de 120,000 celdas de cadena de decenas de segundos a aproximadamente un tercio de segundo
Versión 2.117.0
Cambiado
- XLSX celda access es now constant-time: hoja de cálculo celda colección carries hash índice over (fila, columna), replacing previous linear scan — so populating, reading back, o loading large hoja scales linearly con celda count instead de quadratically; filling 100,000 celdas now takes well under second where it previously took minutes
- speedup applies across engine:
Cells[r, c],HasCell, libro loading, saving, cross-libro copies, auto-fit, y cada helper que touches celdas por position all benefit; fila y columna insertion o deletion rebuilds índice en single pass
Versión 2.116.0
Añadido
- PDF export en el clásico XLS engine: new
SaveAsPDFmétodos on hoja de cálculo y libro render usado rango (o caller-supplied rango medianteTXLSPDFExport) as paginated grid — celda display texto mediante number formato, gridlines, columna widths derived desde Excel widths y scaled fit página, y automatic multi-página pagination - Output es self-contained PDF 1.4 archivo con no external dependencies, usando built-en Helvetica fuente con WinAnsi texto encoding; portrait o landscape A4 orientation, página margin, y fuente size son configurable on exporter
- este es data-presentation export alongside HTML y RTF: it reproduces tabular content y layout para reports y document handoff rather than full per-celda styling
Versión 2.115.0
Añadido
- uno-call chart creation desde data rango en el XLSX engine: new
AddChartFromRangebuilds complete chart y derives its series automatically desde rectangular data block — equivalent de Excel's "insert chart desde selection" — con series-en-columnas o transposed series-en-filas layout - Named shortcuts
AddColumnChart,AddBarChart,AddLineChart,AddPieChart, yAddAreaChartpick chart type por nombre over same uno-call flow, reading series names desde header fila y category labels desde first columna - Series references son qualified con source hoja's quoted nombre, so generated chart keeps working cuando placed on any hoja y survives save y reload
Versión 2.114.0
Añadido
- RTF import en el clásico XLS engine, inverse de existente
SaveAsRTFexport: newOpenRTFmétodos on hoja de cálculo y libro read RTF document's table en hoja de cálculo celdas —\celladvances columna,\rowadvances fila — starting at A1 - Recovers tabular data desde archivos produced por
SaveAsRTF, Word, o WordPad: numeric texto es stored as números so fórmulas keep working, hex (\'hh) y Unicode (\uN) escapes decode correctly, y header groups (fuente table, color table, stylesheet, info) son skipped - Documents con no table fall back paragraph mode, importing each
\paras next fila en columna
Versión 2.113.0
Añadido
- Reading de encrypted
.xlsxlibros:OpenEncryptednow decrypts ECMA-376 Standard Encryption (AES-128) packages, completing round trip con existenteSaveAsEncrypted— it reads compound-archivo container, derives key desde contraseña, verifies it, y loads recovered libro - wrong contraseña raises clear "contraseña es incorrect" error, y
OpenEncryptedon plain unencrypted.xlsxcontinues load it directly, so callers puede route cada archivo mediante uno entrada point
Cambiado
- unsupported-encryption message now names ECMA-376 Agile Encryption specifically as remaining unsupported scheme, since Standard Encryption reading y writing son both disponible
Versión 2.112.0
Añadido
- New
TaggedTextpropiedad on XLSX celdas converts between rich texto y lightweight markup:<b>,<i>,<u>,<s>,<sub>,<sup>,<color=#RRGGBB>,<font=Name>, y<size=N>, con</>/&escapes — so multi-formato celda content puede be produced desde template Cadena instead de assembling run objetos por hand - Writing markup builds run list y keeps
Valueas concatenated plain texto; markup sin tags stores plain Cadena con no rich payload; reading serializes each run's attributes as complete tag establece; unknown tags pass mediante as literal texto
Corregido
- rich-texto run consisting entirely de whitespace (para example single styled space between words) now survives save y reload; previously space was dropped cuando archivo was reopened
Versión 2.111.0
Añadido
- New
OnProgressevento on XLSX libro reports load y save progress: it fires once per hoja de cálculo as it es parsed duringOpeno emitted duringSaveAs, carrying phase (reading o writing), current 1-basado hoja number, y total — so applications puede drive progress bar over long multi-hoja operations at negligible callback cost
Versión 2.110.0
Añadido
- New
TXLSRowCursordataset-estilo fila cursor para.xlsx/.xlsmarchivos:Open,SelectSheet, thenFindFirst/FindNextwalk hoja de cálculo uno fila at time con solo current fila's celdas en memory — pull-driven alternativeTXLSDirectReader's callbacks para sequentially processing multi-million-fila hojas - Each fila exposes its 1-basado hoja de cálculo fila number, populated celdas en document order (tipado valor, fórmula texto, estilo índice), y
ValueByCollookup que devuelveNullpara columnas not populated on que fila; filas con no populated celdas son skipped - hoja names y count son disponible after
Open(archivo y stream overloads), con shared strings y date-formato detection handled same way as streaming reader
Versión 2.109.0
Añadido
- New
TXLSXCellFormat"formato brush" para XLSX engine: describe fuente, fill, borde, alignment, number formato, y protection once, then stamp any number de targets conApply(single celda),ApplyRange,ApplyRows,ApplyCols, oApplySheet - solo aspects actually touched son applied — brush que establece just
Font.Boldleaves targets' fills, bordes, y number formatos untouched — so brushes compose con existente formatting like Excel's formato painter - Each apply resolves touched aspects en libro estilo pools once y then writes solo pool indices per celda, so formatting large rangos costs uno pool lookup per aspect rather than per celda;
ApplyRangematerializes missing celdas mientras fila/columna/hoja forms stamp existente celdas solo
Versión 2.108.0
Añadido
- Localizable Booleano display texto: new
XLSBooleanTrueText/XLSBooleanFalseTextvariables control how Booleano celda valores render wherever display texto es produced —FormattedText, HTML export, y auto-fit measurement — so localized applications puede show para example WAHR/FALSCH o VRAI/FAUX
Cambiado
- Booleano celdas now display as
TRUE/FALSEpor default, matching Excel's grid, instead de runtime'sTrue/Falsecapitalization
Versión 2.107.0
Añadido
- New
OnPasswordevento on clásico XLS libro: cuandoOpenmeets encrypted libro y supplied contraseña es missing o wrong, evento asks application para contraseña y retries open (up three attempts) — so interactive tools puede prompt user instead de pre-loading passwords o inspecting error codes - evento receives current contraseña por referencia y
Retryflag; leavingRetryatFalsegives up y devuelve original contraseña error
Versión 2.106.0
Añadido
- New
TXLSFileMonitorclase watches libro archivo on disk y firesOnFileChangedcuando another process — typically Excel — saves over it, so applications puede reload y refresh their view automatically - Polling-basado (last-write time plus size,
IntervalMsconfigurable, 1 s default), so it works on local disks y network shares alike sin message loop;SynchronizeEventchooses between main-thread delivery para UI handlers (default) y direct watcher-thread delivery para console o service code - archivo que briefly disappears during save cycle does not fire False evento; change es reported once new content es en place
Versión 2.105.0
Añadido
- Bounded auto-fit en el clásico XLS engine, matching limits XLSX engine already offers: new
AutoFit(Columns, AMin, AMax),ColumnsAutoFit(AMinWidth, AMaxWidth), yRowsAutoFit(AMinHeight, AMaxHeight)overloads clamp cada fitted columna ancho (Excel ancho units) o fila alto (points) given rango — 0 leaves side unbounded, y all-empty columna o fila still receives requested minimum
Versión 2.104.0
Añadido
- New Solo lectura
FormattedTextpropiedad Devuelve un celda's display texto — stored valor rendered mediante its number formato, way Excel shows it en el grid — covering thousands separators, decimals, percentages, date y time masks, multi-section positive/negative/zero masks, y Booleano formatos - disponible en both engines: on
IXLSRangeen el clásico XLS engine (multi-celda rangos render their anchor celda) y onTXLSXCellen el XLSX engine (rich-texto celdas devolver their concatenated run texto)
Versión 2.103.0
Añadido
- New
DetectExcelContentFormatfunción (archivo nombre y stream overloads) identifies libro's container desde its leading bytes rather than archivo extension — reporting BIFF/OLE compound archivo, OOXML.xlsxpackage, OpenDocument.odspackage, o plain delimited texto — so applications puede route renamed o extension-less archivos right loader
Cambiado
TXLSWorkbook.Opennow sniffs content signature y rejects ZIP-basado packages (.xlsxo.odsrenamed.xls) con clear message naming right loader, instead de failing con opaque error codeTXLSXWorkbook.Opennow recognizes OLE compound-archivo content (legacy.xlsrenamed.xlsx, o encrypted package) y reports what archivo actually es, instead de surfacing ZIP parser error
Versión 2.102.0
Añadido
- Cross-libro hoja de cálculo copy en el clásico XLS (BIFF8) engine now brings libro-level defined names fórmula uses over destination — same thing Excel does cuando hoja moves between libros: nombre destination already has es bound as-es (no duplicate es created), missing nombre es registered con its original definition y visibility so fórmula recompiles against it, y nombre whose definition cannot resolve en el destination (para example, it points at hoja que does not exist there) leaves fórmula on its computed valor as before
Versión 2.101.0
Añadido
- Cross-libro hoja de cálculo copy en el clásico XLS (BIFF8) engine now re-points fórmulas at source libro as external link cuando destination has no hoja de referenced nombre y source has been saved archivo: copied celda stays live fórmula (its references switch [SourceBook]hoja form), source's computed valor es kept as cached result so reads keep working until link es refreshed, y external libro referencia round-trips mediante save y reload; fórmulas carrying defined-nombre references, y copies desde unsaved source libros, keep computed valor as before
Versión 2.100.0
Añadido
- Array fórmulas now survive hoja de cálculo copies en el clásico XLS (BIFF8) engine: each array rango es rebuilt as whole en el copy — within same libro y across libros alike — con root fórmula recompiled against destination's hoja names; array destination cannot recompile keeps its computed valores instead
Corregido
- Copying rango que contiene array-fórmula celdas between clásico XLS hojas no longer risks crash on spill celdas (which carry no fórmula tree de their own); such celdas now transfer their computed valor
Versión 2.99.0
Añadido
- Chart hojas puede now be copied between clásico XLS (BIFF8) libros: chart record stream es cloned en destination, series category / valor / nombre references son recompiled against destination's hoja names (series whose hoja has no same-nombre counterpart falls back empty referencia so archivo still opens), chart fuente references migrate por valor en destination fuente table, y página setup, tab color, zoom, y visibility de chart hoja come along; este removes last documented limitation de cross-libro hoja de cálculo copy
Versión 2.98.0
Añadido
- Cross-libro hoja de cálculo copy en el clásico XLS (BIFF8) engine now preserves rich-texto formatting inside celdas: each formatting run's fuente es migrated por valor en destination libro's fuente table y run es rewritten point at it, so mixed-fuente strings keep their appearance instead de falling back plain texto; phonetic (Far-East) auxiliary data travels con Cadena as well
Corregido
- fuentes referenced solo por rich-texto runs (y not por any celda formato) son no longer dropped desde fuente table cuando saving clásico XLS libro, y runs now follow same fuente reordering as celda formatos on save, so rich-texto strings keep correct fuentes after save/reload cycle
Versión 2.97.0
Añadido
- Cross-libro hoja de cálculo copy en el clásico XLS (BIFF8) engine now also clones embedded pictures: image bytes migrate en destination libro's picture store (identical images son shared rather than duplicated), y each picture frame keeps its celda anchor, size, visibility, y transparent color; new CrossWorkbookCopyXls sample project demonstrates clásico-engine copy end end
Cambiado
- clásico XLS cross-libro copy limitations son now documented: chart hojas son not copied (AddCopy devuelve nil para them), y fórmula whose hoja referencia has no same-nombre hoja en el destination keeps source's computed valor instead de becoming external referencia
Versión 2.96.0
Añadido
- Cross-libro hoja de cálculo copy en el clásico XLS (BIFF8) engine now also clones conditional formatos (celda-es y expression rules, data bars, color scales, icon establece, y their differential styles), data validations (list, numeric, date, texto-length, y custom rules con prompt y error boxes), AutoFilter definition con its per-columna criteria (dropdown buttons son rebuilt en el copy), y tablas (ids y names son re-issued so they stay unique en el destination libro); rule fórmulas son recompiled against destination's hoja names, matching behavior de celda fórmulas
Versión 2.95.0
Añadido
- clásico XLS (BIFF8) hojas puede now be copied desde uno libro en another: TXLSWorksheets.AddCopy agrega new hoja destination libro y copies source hoja's celda valores, fórmulas (re-encoded as texto so destination recompiles them against its own hoja names, keeping same-nombre 3D references live), merged celdas, comentarios, hipervínculos, fila heights, columna widths, outline levels, frozen panes, hoja protection, página setup, manual página breaks, tab color, y view settings; celda, fila, y columna formatos son migrated por valor en destination libro's formato table, so styled source produces independently styled copy
- Cross-libro formato migration en el clásico XLS engine now carries full-precision RGB y tema colores alongside each formato entrada, so fills, fuentes, y bordes keep their exact colores instead de falling back palette approximations; este also applies rango-level paste between libros
Versión 2.94.0
Añadido
- Cross-libro hoja de cálculo copy now clones conditional formatos (con their differential styles y dataBar / colorScale / iconSet visual payloads), tablas, data validations, y charts (con cada series); each sub-objeto deep-copies its own state en destination hoja de cálculo
- Cross-libro fórmula references son rewritten: referencia whose hoja nombre exists en el destination resolves as-es, otherwise it becomes external referencia back source libro (which es registered as external link) o #REF! cuando source has no archivo identity; rewrite applies celda fórmulas, conditional-formato rules, data-validation fórmulas, y chart series rangos alike
Versión 2.93.0
Añadido
- hoja de cálculo puede now be copied desde uno libro en another: TXLSXSheets.AddCopy agrega new hoja destination libro y copies source hoja's celdas, fórmulas, merged rangos, columna/fila sizing, hidden/collapsed/outline flags, freeze panes, view state, protection, página setup, AutoFilter rango, y tab colour onto it; six per-celda estilo indices son remapped en destination libro's own fuente/Fill/borde/NumberFormat/Alignment/Protection pools via valor-equality lookup, so styled source produces independently-styled copy rather than indices pointing at wrong pool
- six per-attribute estilo pools (fuentes, Fills, bordes, NumberFormats, Alignments, Protections) each expose 1-basado LookupOrAdd que deduplicates por valor; new CrossWorkbookCopy sample project demonstrates cross-libro copy con estilo conservación
Versión 2.92.0
Añadido
- XLSX libros now soporte tablas dinámicas: TXLSXWorksheet.AddPivotTable scans flat source rango, auto-builds pivot cache, y Devuelve un tipado tabla dinámica para fila / columna / página / data-axis wiring, mirroring long-standing BIFF8 (XLS) engine API so same code targets either formato; PivotSetDataFieldFormat assigns number formato each aggregated valor field
- Excel-created tablas dinámicas ida y vuelta sin loss mediante Open then Save: XLSX engine preserves each pivot cache definition, cache records, y tabla dinámica part verbatim y replays original bytes on save, so re-saving libro never drops o alters its pivots even cuando they use funciones tipado modelo does not expose
Versión 2.91.0
Agregado
- Un AutoFilter de hoja de cálculo ahora se puede aplicar a los datos para que el libro guardado se abra con las filas no coincidentes ya ocultas, reflejando lo que hace Excel cuando se elige un valor del menú desplegable del filtro
- Las imágenes incrustadas exponen su geometría en unidades reales (centímetros, pulgadas, puntos) junto con los valores de EMU, y se pueden redimensionar por un factor de escala con bloqueo de relación de aspecto opcional
- Los márgenes de configuración de página se pueden establecer en centímetros directamente, como una conveniencia métrica sobre los márgenes basados en pulgadas
- Las hojas de cálculo XLSX protegidas ahora exponen quince opciones detalladas de permisos (formato de celdas, insertar/eliminar filas y columnas, ordenar, AutoFilter, seleccionar celdas bloqueadas/desbloqueadas y más) a través de una nueva propiedad AllowOption, coincidiendo con la lista de casillas de verificación de Revisar > Proteger hoja de Excel; la configuración por acción se conserva al guardar el archivo
- Las hojas de cálculo XLSX ahora se pueden duplicar (TXLSXSheets.Duplicate): se agrega una nueva hoja y se copian en ella las celdas de origen, los rangos combinados, el tamaño de columnas/filas, los paneles inmovilizados, el estado de visualización, la protección, la configuración de página y el color de la pestaña, reflejando la opción Clic derecho > Mover o copiar > Crear una copia de Excel
- Veintidós nuevos proyectos de muestra cubren las capacidades que admite la biblioteca: cifrado de libros de trabajo, comentarios de celdas, hipervínculos, nombres definidos, evaluación de AutoFilter, imágenes incrustadas, una plantilla de factura, formato condicional XLSX avanzado, celdas combinadas, agrupación de filas/columnas, paneles inmovilizados, diseño de varias hojas, fórmulas de matriz, copiar/mover rangos, buscar/reemplazar, sistemas de fechas, texto enriquecido, CSV avanzado, opciones de exportación HTML, formatos de números personalizados, filas/columnas ocultas y protección de hojas de cálculo
Versión 2.90.29
Modificado
- El lector directo de flujo ahora cuenta cada celda poblada incluso cuando no hay un manejador por celda adjunto, por lo que una simple llamada a ReadFile se puede usar para dimensionar una hoja de cálculo rápidamente; el conteo devuelto y la propiedad CellCount informan el número de celdas pobladas escaneadas
Versión 2.90.28
Agregado
- Las fórmulas ahora se pueden evaluar paso a paso, el equivalente al comando Evaluate Formula de Excel: un nuevo trazador reduce una expresión un subpaso a la vez, comenzando por el más interno, y reporta cada reducción con su subexpresión de origen, la misma subexpresión después de que sus operandos sean reemplazados por sus valores, y el valor resultante, de modo que las aplicaciones puedan mostrar cómo se construye un resultado; respeta la precedencia de operadores, mantiene intactas las referencias de rango para funciones como SUM, y reutiliza el motor de cálculo de la hoja de cálculo para que cada paso coincida con un recálculo completo
Versión 2.90.27
Agregado
- Los libros de trabajo XLSX ahora se pueden producir celda por celda a través de un nuevo escritor directo de flujo que emite cada hoja de cálculo directamente en el paquete a medida que llegan las filas, sin construir un árbol de celdas completo en la memoria, por lo que se pueden generar archivos muy grandes con una huella de memoria casi constante; el escritor maneja cadenas en línea, números, booleanos, fechas y fórmulas a través de múltiples hojas y realiza el ciclo completo con el lector directo de flujo
Versión 2.90.26
Agregado
- Los libros de trabajo XLSX ahora se pueden escanear celda por celda a través de un nuevo lector directo de flujo que desencadena eventos por celda y por hoja sin construir un árbol de celdas completo en la memoria, manteniendo la huella de memoria casi constante para archivos muy grandes; cada celda reportada lleva su valor, tipo (número, cadena, booleano, fecha o error), texto de fórmula e índice de estilo, con detección de fecha opcional y soporte de cancelación anticipada
Versión 2.90.25
Añadido
- Las hojas de cálculo XLS clásicas ahora pueden agregar hipervínculos desde referencias de celdas de estilo A1 preservando la normalización de URL, las subdirecciones de destino del libro de trabajo, el texto de visualización y la información en pantalla
Versión 2.90.24
Agregado
- Los saltos de página clásicos de XLS ahora se pueden agregar desde posiciones de fila o columna con base uno y referencias de celda estilo A1 a través de la colección de saltos de página y las sobrecargas de funciones auxiliares de la hoja de cálculo
Versión 2.90.23
Agregado
- Las hojas de cálculo clásicas de XLS y las colecciones de formas ahora pueden crear objetos de dibujo de rectángulo, óvalo, línea y autoformas tipadas a partir de cadenas de rangos estilo A1
Versión 2.90.22
Agregado
- Las colecciones de formas clásicas de XLS ahora pueden crear cuadros de texto a partir de cadenas de rangos estilo A1 a través de una sobrecarga de AddTextBox
Versión 2.90.21
Agregado
- Los cuadros de texto clásicos de XLS ahora se pueden reposicionar a partir de cadenas de rangos estilo A1 a través de una nueva sobrecarga de SetArea
Versión 2.90.20
Agregado
- Los cuadros de texto de las hojas de cálculo clásicas de XLS ahora se pueden crear a partir de cadenas de rangos estilo A1 a través de una sobrecarga de AddTextBox
Versión 2.90.19
Agregado
- Las hojas de cálculo clásicas de XLS ahora pueden crear cuadros de texto de dibujo directamente desde anclajes de fila y columna a través de un nuevo método AddTextBox
Versión 2.90.18
Agregado
- Las hojas de cálculo clásicas de XLS ahora pueden crear comentarios de celda directamente desde coordenadas de fila y columna a través de nuevas sobrecargas de AddComment