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 portable de XLS clásico admite gráficos ordinarios de columnas, barras, líneas, dispersión, circular, 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 quien llama
- Las declaraciones de apariencia de gráficos de solo lectura conservan las identidades de hoja y de gráfico, las dimensiones explícitas del marco, los tamaños en puntos efectivos de la leyenda y la geometría nativa de fuentes, para una salida PDF, SVG y PNG autónoma
- Los helpers acotados inspeccionan referencias simples de fórmulas almacenadas y celdas de gráfico en caché, sin evaluación de fórmulas ni expansión de 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 malformados, apariencia sin resolver y presupuestos de recursos agotados antes de la salida
- Las actualizaciones de propiedades de valor doble de los gráficos rechazan los valores no finitos antes de comparar o modificar
- La inicialización repetida de celdas portables 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 malformado levanta un error
- Los separadores comprimidos Unicode de etiquetas de datos conservan íntegros sus caracteres almacenados
Versión 2.384.118
Añadido
- La inspección de gráficos clásicos expone los diámetros de marcador en puntos, incluidos los tamaños fraccionarios, conservando las unidades almacenadas originales
Corregido
- Las tablas de relleno admitidas de gráficos clásicos nativos decodifican las propiedades después de las entradas complejas, y las tablas malformadas conservan el relleno tipado precedente
Versión 2.384.117
Añadido
- Los helpers de codificación explícita en bytes conservan los nulos incrustados y rechazan el texto que la página de códigos seleccionada no puede representar
Cambiado
- El texto, las fórmulas y los metadatos de libro del BIFF5 clásico usan su codificación declarada en Windows, Linux y macOS, con longitudes en bytes codificadas y fronteras de caracteres completos
- El texto heredado de gráficos admitido conserva su decodificación original tras ediciones y copias de la página de códigos, y se transcodifica explícitamente antes de guardar con una codificación distinta
Corregido
- El Unicode comprimido de BIFF8 preserva 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 la estructura real de sus registros
- 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 comparación de mayúsculas y minúsculas admitida
- La búsqueda de estilos con nombre resuelve la primera entrada almacenada sin tratarla como un nombre inexistente
- Las lecturas repetidas de entradas ZIP liberan los metadatos de cabecera previos, conservando el comportamiento concurrente de los flujos stored y 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, subtotal y 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 de resolución global en los campos admitidos con miembros de cadena sin agrupar
- Los cálculos de visualización admitidos de elementos calculados y los filtros de agregación conservan el orden visible de miembros, el orden original de los filtros y las identidades inequívocas de las medidas mostradas
Corregido
- La proyección de fechas de fórmulas nativas de tabla dinámica conserva el sistema de fechas del libro a través de la importación, clonación y cálculo de la caché
- La limpieza de cachés de elementos ausentes preserva la propiedad validada de los informes materializados en ambos sistemas de fechas del libro y en los informes guardados heredados
- Los metadatos no admitidos de tabla dinámica calculada y la salida nativa editada se rechazan antes de modificar los resultados de la hoja
Versión 2.384.115
Añadido
- La salida nativa portable a PDF, SVG y PNG admite texto enriquecido, formas modeladas, imágenes ordinarias, imágenes en celda, casillas booleanas y las siete familias de gráficos XLSX en caché admitidas
- Los planes de impresión inmutables del libro aplican áreas de impresión completas, títulos repetidos de filas y columnas, saltos de página, configuración de papel, márgenes, orientación, centrado, escalado y orden de páginas en Linux y macOS
- La geometría explícita de fuentes nativas permite capturas con comprobación de generación sin cambiar el proveedor de geometría del libro
Corregido
- El modo ajustar a página sobrevive a los ciclos de guardado y reapertura del libro e ignora el escalado porcentual obsoleto, incluidas las dimensiones de ajuste sin límite
- Las fuentes de títulos de gráficos admitidas, 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 sustituciones explícitas a 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 para Linux x64 y macOS ARM64 cargan, editan, calculan y guardan libros BIFF8 clásicos, incluidas las propiedades de documento admitidas y el cifrado RC4
- El almacenamiento compuesto portable admite ámbitos anidados, contenedores DIFAT encadenados grandes, metadatos y propiedad explícita de la interfaz de almacenamiento nativa
Corregido
- Los libros con CryptoAPI de 128 bits anuncian un proveedor criptográfico compatible y mantienen legibles en texto plano las propiedades del documento
- Las marcas de tiempo nativas del documento usan la época FILETIME correcta y conservan los valores UTC entre plataformas
- Los nombres definidos clásicos comparten una identidad Unicode canónica en la búsqueda por ámbitos, las fórmulas y la reapertura del libro
- Los separadores escapados de formatos de fecha y los literales entrecomillados incrustados conservan íntegro el formato de fecha 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 protección y comprobación previa estructural
- Las imágenes locales en celda tipadas y los formatos Checkbox admiten ciclos de guardado y reapertura de 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 durante las ediciones y los ciclos de XLSX
- La compatibilidad ampliada con XLSB incluye fórmulas y cachés, nombres, celdas combinadas, hipervínculos, paneles, tablas y filtros
- Las API nativas de libro para Linux x64 y macOS ARM64 cargan, editan, calculan y guardan los archivos XLSX, XLSB y ODS admitidos
- La salida nativa de tablas dinámicas admite la agrupación numérica, por fecha y manual, y las once funciones de subtotal personalizadas
Corregido
- Los nombres con ámbito usan normalización Unicode y comparación 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 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 a deshacer de rangos y al guardado sin materializar celdas ausentes
- Las cachés de fórmulas importadas conservan los metadatos de valor originales, y los metadatos ordinarios se distinguen del contenido de imágenes en celda
- La comparación semántica distingue el contenido local de imágenes, los metadatos de accesibilidad y los formatos heredados efectivos de controles mediante 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 matrices y evaluación acotada en Windows, Linux x64 y macOS ARM64
- GROUPBY y PIVOTBY admiten callbacks de agregación con ámbito, varias medidas, encabezados, filtros, totales jerárquicos, ordenación 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 matrices mantiene sus reglas de omisión existentes
- Los literales booleanos con ámbito y las fórmulas de callback de agregación sobreviven al almacenamiento como funciones futuras y a la reapertura del libro
Versión 2.384.111
Añadido
- La salida nativa local de tablas dinámicas admite diferencias y porcentajes respecto al elemento base, totales acumulados, porcentajes de fila y de columna, índice, porcentajes del elemento primario, porcentajes acumulados y clasificación densa
Corregido
- Los cálculos de visualización conservan la semántica nativa de totales, valores ausentes, divisores 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 desde Excel
Versión 2.384.110
Añadido
- La salida nativa local de tablas dinámicas admite los diseños compacto, tabular y de esquema, etiquetas repetidas de ancestros, colocación de subtotales predeterminada y varias medidas en cualquiera de los ejes de datos
Corregido
- La configuración de etiquetas repetidas sobrevive a los alias de espacios de nombres importados y a guardar y reabrir, y la salida nativa distingue las intersecciones ausentes del cero numérico
- Los metadatos de diseño por etapas mantienen consistentes los títulos de campos y datos cuando Excel actualiza explícitamente los informes generados
Versión 2.384.109
Añadido
- La comparación de libros distingue valores tipados y enteros grandes exactos, admite tolerancias numéricas finitas y, opcionalmente, la comparación de cachés de fórmulas almacenadas, estilos y geometría
- La comparación semántica acotada cubre los nombres, reglas, tablas, orden de dibujo, regiones de estilo en blanco, tramos efectivos de texto enriquecido, modelos locales de tabla dinámica, selecciones de Slicer y estado de Timeline admitidos
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 admitidos o agotamiento de recursos
Corregido
- La validación de precisión de parámetros REAL de bases de datos tipados compila con Delphi XE5 manteniendo las comprobaciones de valor exacto, desbordamiento y nulos
Versión 2.384.108
Añadido
- Los ciclos de guardado y reapertura de ODS conservan el texto y los autores ordinarios de las notas, los filtros de valores representables y personalizados, la protección explícita de celdas y una protección equivalente de la hoja sin contraseña
- Los informes de conversión conservan con precisión las pérdidas de metadatos a través de copias de hojas y guardados posteriores, incluidas las expresiones de filtro no admitidas y las protecciones no equivalentes
Corregido
- Los guardados de ODS en flujo cancelados o fallidos preservan los bytes, el tamaño y la posición del destino mediante una preparación por etapas acotada de archivos temporales
- Los guardados de ODS con éxito que empiezan en una posición de flujo distinta de cero preservan 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 de agregación de tabla dinámica conscientes de las referencias funcionan en los contextos de XLS clásico, XLSX, solo lectura y evaluación aislada, incluidos los resultados de matriz disponibles y los errores tipados
- Las consultas de agregación de tabla dinámica respetan los miembros visibles modelados, los filtros de informe y los subtotales admitidos mediante una evaluación autónoma acotada de la caché, sin actualizar los datos de origen
Corregido
- Las cachés de tabla dinámica nativas de XLS de Excel conservan los valores numéricos sucesivos en línea y los metadatos de validez de caché actuales, en lugar de devolver totales repetidos incorrectos
- Las referencias de tabla dinámica incluyen el área modelada del filtro de informe situada encima de la ubicación de la tabla principal
Versión 2.384.106
Añadido
- Las consultas automáticas de base de datos enlazan parámetros tipados de literales y celdas almacenadas en orden posicional, preservando Unicode, texto vacío, cero, booleanos, fechas y nulos, sin sustituir valores dentro del 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 preservan los valores DATE, TIME y TIMESTAMP mediante enlaces OLE DATE tipados, con independencia de las proyecciones de marca de tiempo dependientes de la configuración regional
Versión 2.384.105
Añadido
- Los metadatos de fórmula leen la identidad real del archivo referenciado, los formatos numéricos base admitidos, los colores negativos, los paréntesis 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 de XLS y XLSX
- La inspección autónoma de estilos base y de la huella dispersa de ejes conserva las celdas almacenadas y empaquetadas, los valores predeterminados de la hoja, los colores del tema y la propiedad del libro prestada
Cambiado
- Los metadatos de ancho de columna devuelven el ancho en caracteres redondeado y el indicador de ancho predeterminado como una matriz de dos columnas; la información no disponible del entorno de la aplicación Excel y los formatos no clasificables informan de 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 de Excel explícitos, unicidad compuesta y relaciones entre columnas
- Las infracciones estructuradas identifican la hoja, la celda, la regla, la columna relacionada y la primera fila duplicada, mientras que la validación de valores almacenados conserva las celdas empaquetadas e informa de 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 los archivos de ancho fijo usando los inicios de campo declarados, las codificaciones de caracteres admitidas, la conversión tipada de campos, los campos omitidos y la selección de cabecera o de primera fila
- La actualización de ancho fijo conserva las comillas literales, recorta el relleno de los campos y rechaza los límites inválidos, las entradas demasiado grandes y la cancelación antes de aplicar cambios a la hoja
Versión 2.384.102
Cambiado
- Las auditorías de símbolos de fórmulas clásicas analizan más rápido conservando los hallazgos de funciones y nombres, la deduplicación sin distinción de mayúsculas, el ámbito y el orden de hallazgos
Corregido
- Los guardados de libros 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 admitidos, conservando las comprobaciones de bloqueo, la protección de solo lectura y la ruta heredada en los sistemas no admitidos
Versión 2.384.101
Añadido
- Las matrices de selección de área de INDEX se difunden con los selectores de fila y columna sobre matrices calculadas y uniones de referencias admitidas de la misma hoja, conservando la orientación, los tipos de valores seleccionados y los errores individuales
- Los nombres definidos y los enlaces de LET conservan la identidad de referencia multiárea admitida, y el CHOOSE escalar retiene la referencia seleccionada para el cálculo posterior
Corregido
- INDEX acepta un argumento de área explícito igual a 1 para los orígenes calculados y distingue los selectores de área inválidos, ausentes, fraccionarios y fuera de rango
- Las uniones entre hojas y las uniones de matrices calculadas se rechazan con su contrato de errores admitido en lugar de adquirir una identidad de referencia incorrecta
- Las referencias inválidas calificadas por hojas locales existentes conservan sus errores de referencia en las fórmulas directas y los nombres definidos, incluidos los nombres de hoja entrecomillados, sin cambiar las cadenas de fórmula ni interpretar los calificadores desconocidos como hojas locales
Versión 2.384.100
Añadido
- Salida portable headless a PDF, SVG y PNG en Linux con archivos de fuentes explícitos, conformado nativo del texto, recursos acotados y publicación exclusiva del archivo por etapas
- Captura de solo lectura en Windows de rectángulos de XLS clásico y XLSX admitidos como instantáneas inmutables y transferibles, incluidos los resultados almacenados de las fórmulas, las tablas con ámbito y la apariencia condicional, las dimensiones físicas y las combinaciones completas
Corregido
- La validación portable de apariencia rechaza de forma consistente las representaciones de enum inválidas en todas las compilaciones optimizadas del compilador
Versión 2.384.99
Añadido
- Actualización explícita de consultas automáticas para las conexiones Text, ADO, ODBC y Web de Windows admitidas, con registro de proveedores personalizados y resultados acotados
Corregido
- Las relaciones nativas de resultados de consultas y las identidades de columnas persisten a través del guardado y la reapertura admitidos, tanto respaldados por tabla como independientes
- Los tipos de conexión de proveedor inválidos se rechazan antes del despacho sin cambiar los resultados de la hoja
Versión 2.384.98
Añadido
- Creación local de Timeline de tabla dinámica, conexiones de vistas compartidas, filtrado inclusivo de días completos y eliminación protegida que limpia o conserva la selección
- Actualización nativa explícita de los elementos sin datos de Slicer en las vistas conectadas, con límites de recursos acumulativos, cancelación y conservación de la selección y de la identidad de los elementos
Corregido
- El manejo nativo de las relaciones de Timeline y de la propiedad de los filtros conserva las selecciones importadas admitidas durante la materialización, el guardado y la reapertura
- La configuración de filtrado cruzado de los Slicers de tabla dinámica persiste mediante su representación tabular nativa
- El descubrimiento de Timeline conserva la decodificación UTF-16 del libro y de las partes vinculadas durante la carga de Open XML
Versión 2.384.97
Añadido
- Nombres definidos escalares y de matriz calculada en los cálculos de agregación numérica y de conteo admitidos, 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 hoja, 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 matriz calculada para la unión de texto y para los cálculos admitidos de mediana, estadísticos de orden, percentiles, cuartiles, rango porcentual, múltiples modas y covarianza poblacional
Cambiado
- La recolección de matrices y referencias conserva la coerción escalar nativa, los errores tipados, el emparejamiento original de la covarianza y los límites de recursos de cálculo
Corregido
- El cálculo finito del punto medio de la mediana evita el desbordamiento de igual signo, y los percentiles exclusivos aceptan rangos válidos de extremo y singleton
Versión 2.384.95
Añadido
- Salida transaccional nativa de informes de tabla dinámica compactos, con valores de hoja sincronizados, metadatos de diseño y propiedad de celdas persistida
- Disponibilidad de miembros de Slicer de solo lectura en las vistas conectadas bajo otros filtros activos
- Limpieza explícita de los miembros históricos de la caché de tabla dinámica, con retención configurable y reasignación coordinada de las selecciones vinculadas
Cambiado
- La salida nativa admitida de tablas dinámicas conserva los filtros manuales y los títulos actuales, y rechaza los diseños no admitidos o las celdas propias editadas antes de la mutación
Versión 2.384.94
Añadido
- Vistas de tabla dinámica con caché compartida y creación local de Slicers de tabla dinámica con límites explícitos de la hoja
- Eliminación transaccional de Slicers 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 de cachés agrupadas numéricas, de fecha y discretas fijas, con identidades de miembros estables
- Vistas previas autónomas de los metadatos de diseño nativo de tablas dinámicas compactas usando identidades exactas de miembros y agregados
Corregido
- Reabrir un libro ya poblado reemplaza ahora las cachés de tabla dinámica tipadas anteriores, y los enlaces nativos de Slicer creados 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 eje de datos
Versión 2.384.93
Añadido
- Un lector y escritor de XLSB validado para valores de celda tipados, estilos básicos, vistas ordinarias de hoja y dimensiones
- Salida binaria explícita al guardar libros en archivo y en flujo, con detección automática de entrada binaria e informes de fidelidad de conversión
Cambiado
- La conversión a XLSB prepara por etapas los paquetes completos y rechaza las funciones o los ajustes de cálculo no admitidos antes de la salida, incluidos los guardados sin comprobació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 la caché de tabla dinámica y materialización segura de la hoja para los orígenes locales admitidos de nombres definidos y tablas
- Búsqueda de nombres definidos con ámbito de hoja y límites de origen resueltos por quien llama para la actualización de la caché
Corregido
- La identidad local del origen y el ámbito de los nombres definidos sobreviven a los movimientos y renombrados de hojas, incluidos los nombres entrecomillados 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 de totales de la tabla sigue el recuento real de la fila de totales, preservando todas las filas de datos cuando solo está presente la pista de UI de totales
Versión 2.384.91
Añadido
- Entradas de matriz calculada y resultados tipados para la transposición, la multiplicación de matrices, los determinantes y la inversión de matrices
- Vectores de selectores ordenados, duplicados e índices negativos para la selección de filas y columnas
- Vectores de búsqueda calculados y peticiones de búsqueda con valores de matriz, incluidos slices completos 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 matrices en toda la composición
Corregido
- Las cachés de texto de fórmulas y de resultados de matriz se muestran correctamente en Excel antes del recálculo
- Las cachés modernas de errores enriquecidos incluyen la versión del libro y las declaraciones de características de cálculo necesarias para la visualización nativa en caché
- Las opciones de búsqueda y de aplanado rechazan los valores fuera de rango antes del estrechamiento numérico, y las opciones fraccionarias siguen el truncado nativo
- 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 tabla dinámica conservan las selecciones compartidas de Slicer y los filtros de quien llama sin cambiar la caché calculada activa
- La materialización segura de hojas para los orígenes locales de tabla dinámica admitidos prepara los resultados por etapas, rechaza los contenidos y estructuras en conflicto y preserva 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 redimensionar y mover resultados con seguridad y adoptar explícitamente valores escalares de tabla dinámica existentes
Corregido
- Eliminar la última vista de Slicer de tabla dinámica vinculada se rechaza antes de quitar su dibujo, su caché, su nombre reservado o su selección
- Limpiar vistas de Slicer valida cada caché afectada antes de la mutació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 matriz sobre matrices calculadas y rangos de la hoja, incluidas las selecciones emparejadas y los productos cruzados fila-columna
Corregido
- Los resultados de los selectores conservan los valores y errores tipados, rellenan con #N/A las posiciones de selector ausentes 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 del truncado
- 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 tras 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 de Slicer de tabla dinámica no OLAP importadas admitidas
- Los cálculos conectados de tablas dinámicas intersectan las selecciones de Slicer con restricciones independientes sobre otros campos y con filtros de registros aportados por quien llama
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 preservan las representaciones de caché no admitidas
- Los cambios en la colección de cachés de Slicer respetan la protección contra escritura del libro cuando afectan a cálculos conectados de tablas dinámicas
- Eliminar cachés vinculadas de Slicer de tabla dinámica no OLAP se rechaza de forma atómica para preservar un estado consistente de los filtros en ejecución y guardados
Corregido
- Las selecciones editadas de Slicers de tabla dinámica y las máscaras de miembros de las vistas conectadas se guardan juntas conservando los espacios de nombres importados y las extensiones desconocidas
- Las conexiones de Slicer admitidas siguen las identidades de hoja guardadas y resuelven los identificadores extendidos de caché de forma independiente de los identificadores ordinarios de caché del libro
- Las definiciones importadas de tablas dinámicas permanecen asociadas a sus vistas originales cuando se reordenan las hojas
Versión 2.384.87
Cambiado
- La actualización local de cachés rectangulares de tabla dinámica conserva las identidades existentes de campos y miembros, añade los nuevos miembros tipados y mantiene los filtros y selecciones de vistas compartidas vinculados a sus miembros originales tras reordenar, quitar o reintroducir el origen
- Las cabeceras 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 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, agrupaciones derivadas y nuevos miembros de grupos discretos sin mapear, sin cambios parciales
Corregido
- Los valores de error de la tabla dinámica conservan sus tipos y códigos en los elementos compartidos y en los registros a través del 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 la caché XLSX describen con precisión los valores mixtos, las fechas, los errores, los booleanos y las celdas en blanco
- La actualización del origen lee las celdas ausentes sin crear celdas de hoja y compara las cabeceras Unicode de los campos sin estrechar su texto
- Las vistas de tabla dinámica 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 las vistas 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 de XLSX
Versión 2.384.86
Añadido
- INDEX acepta matrices calculadas y constantes con selección escalar, selección de la matriz completa y extracción de fila o columna, conservando el comportamiento de referencia en los orígenes de rango
- SORT y UNIQUE aceptan matrices calculadas y constantes, lo que permite componerlas directamente con FILTER, SEQUENCE, LET y otras expresiones que producen matrices
Cambiado
- Las expresiones de matriz compuestas conservan el redimensionado automático de desbordamientos de XLSX, el cálculo de matriz de rango fijo, los errores tipados y el recálculo tras guardar y reabrir
Corregido
- La selección y ordenación de matrices trunca las opciones numéricas fraccionarias, el texto inválido de opciones booleanas devuelve #VALUE!, y las operaciones sobre matrices calculadas respetan los límites de memoria y de pasos de evaluación
Versión 2.384.85
Añadido
- Las matrices dinámicas de XLSX ahora calculan en rangos de desbordamiento redimensionados automáticamente, preservan las obstrucciones del usuario con #SPILL!, admiten referencias de desbordamiento y la intersección implícita explícita, y recuperan la propiedad en caché del desbordamiento tras reabrir
- La comprobación previa de conversión informa de las pérdidas conocidas del formato de destino, y el guardado comprobado puede rechazar esas pérdidas antes de escribir un archivo o flujo existente
- La salida explícita de plantillas con macros preserva los proyectos VBA existentes en los paquetes XLTM
- La actualización de tablas de consulta aportada por quien llama admite resultados acotados de esquema fijo, rangos sincronizados de tabla y filtro, progreso, cancelación y reversión transaccional
Cambiado
- Las bandas de informe repetidas clonan conversaciones de hilo completas con identidades remapeadas y preservan la reversión cuando un destino falla
- La validación booleana personalizada de ODS, los límites con valores de fórmula admitidos, los orígenes de lista y las referencias calificadas se traducen con reajuste de la celda base; las definiciones no admitidas y las referencias de celda se omiten juntas
Corregido
- Las fórmulas de matriz de rango fijo evalúan la aritmética cruda del rango elemento a elemento, el MAP de varias matrices acepta parámetros lambda coincidentes, y FILTER evalúa matrices calculadas y máscaras
- Los errores modernos #SPILL! y #CALC! conservan los metadatos tipados de valores enriquecidos de XLSX preservando los metadatos importados no relacionados y los cubos de valores enriquecidos
- Las fórmulas XLSX recién creadas se guardan con separadores de argumentos canónicos y prefijos de funciones futuras para la interoperabilidad con Excel; el guardado preserva la expresión en memoria y la reapertura devuelve la sintaxis canónica de la fórmula
- Las series de gráficos locales admitidas actualizan las cachés numéricas, de texto, de fecha, de error, de burbujas y de categorías jerárquicas tras las ediciones y el recálculo
- 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 iniciación de Delphi y C++Builder incluyen ahora un pedido de ventas práctico con fechas tipadas, precios, descuentos y totales calculados, y verifican los libros XLS y XLSX guardados tras reabrirlos
- El ejemplo de factura conecta ahora una factura imprimible con condiciones de pago editables y un registro de cobros, calculando descuentos, impuestos, pagos y el saldo pendiente
- El ejemplo de diseño de hoja demuestra ahora la creación, enumeración, eliminación y conservación de encabezados combinados tras reabrir
- Nueve familias más de ejemplos enfocados de la API se han movido a Miscellaneous, manteniendo el catálogo principal centrado en flujos de negocio completos y herramientas interactivas
Eliminado
- Los ejemplos mínimos independientes de celdas combinadas y texto enriquecido se han consolidado en los ejemplos de diseño de hoja y de dashboard
Versión 2.384.83
Cambiado
- El catálogo de demos separa ahora las experiencias completas y los flujos de trabajo sustanciales de las recetas enfocadas de la API en la carpeta Miscellaneous de cada plataforma, con navegación directa y proyectos listos para compilar en ambos niveles
Eliminado
- Se han eliminado tres demos redundantes de rangos y diseño de hojas; sus escenarios completos siguen disponibles en RangeOps y SheetLayout
Versión 2.384.82
Cambiado
- Las galerías de dashboard de Delphi y C++Builder abren directamente sobre un libro poblado con totales en vivo, gráficos renderizados, detalles editables, escenarios de precios y exportación del resultado actual
- El recorrido por la API ofrece navegación directa a dashboards, datos de ventas, vista previa de gráficos y recetas de la API, con un conjunto de datos repetible que cubre los doce meses
- Los ejemplos llevan localmente sus unidades de escenario y recursos de manifest necesarios, de modo que cada proyecto se puede copiar sin un directorio común aparte
Corregido
- El recorrido por la API crea sus datos de ventas antes de entrar en las fórmulas del dashboard, de modo que su demostración en vivo se inicializa correctamente
- Los gráficos de la demostración en vivo actualizan sus valores y etiquetas en caché tras el recálculo, y las exportaciones repetidas de la galería de C++Builder preservan las ediciones actuales sin acumular hojas de informes generados
Versión 2.384.81
Cambiado
- Los ejemplos de copia de hojas verifican el contenido independiente, los formatos remapeados, las fórmulas y los objetos incrustados tras reabrir su salida
- Los ejemplos de sistema de fechas, búsqueda, agrupación, fórmulas de matriz e imágenes verifican su comportamiento distintivo y reportan la salida fallida con 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 tras guardar y reabrir, incluidos los filtros copiados con criterios activos
- Las galerías de dashboard crean las hojas referenciadas antes de entrar en las fórmulas, calculan los totales antes de exportar y generan todos los formatos complementarios solicitados aunque otra salida falle
- La galería de dashboard de C++Builder produce los archivos complementarios CSV, HTML y RTF documentados
- Los informes compilados preservan la notificación ordinaria de fallos en las compilaciones estáticas clásicas de C++Builder para Win64 cuando no se puede reemplazar un destino
- Los ejemplos interactivos de la API informan de los fallos de exportación a PDF, HTML y CSV en lugar de afirmar que los archivos se escribieron
- La demo de características completa su demostración admitida de hash semántico y valida sus libros guardados sin invocar instantáneas modernas de dibujo no admitidas
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 de cada formato y los nombres de proyecto compatibles
- Los ejemplos de diseño de hoja 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 demuestran flujos de trabajo completos con verificación de los datos guardados y notificación explícita de fallos
Corregido
- Los cuadros de texto XLSX reabiertos conservan sus relaciones de dibujo al volver a guardarse, de modo que las anotaciones siguen disponibles tras 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 orígenes o invocar escritores, y verifican los códigos de éxito del libro antes de informar de la finalización
- El ejemplo de factura incluye las condiciones de pago y su título completo dentro del área imprimible
- El ejemplo de consola de configuración de página arranca con privilegios ordinarios de usuario en lugar de activar la detección del instalador de Windows
Versión 2.384.79
Corregido
- Al guardar archivos ODS con opciones de exportación, se conserva el destino existente cuando la serialización falla o el guardado se cancela, y los errores al reemplazar el destino se notifican de forma consistente
- Las opciones de exportación de ODS usan el ciclo de vida normal de guardado, incluidas la política de recálculo, la cancelación del progreso, los diagnósticos y la protección contra escritura del libro, tanto para la salida a archivo como a flujo
- Los guardados de XLSX en flujo respetan la política de recálculo configurada: conservan los valores en caché en modo manual y actualizan las fórmulas pendientes de recálculo cuando se solicita
- Las notificaciones de guardado completado de XLSX y ODS ya no convierten una salida ya confirmada en un fallo por cancelación
- Cuando la inicialización o la finalización de un parche de hojas en streaming falla, se liberan los manejadores del archivo de origen, de modo que quien llama puede limpiar sus orígenes temporales y reutilizar el escritor tras un fallo de inicialización
Versión 2.384.78
Corregido
- Las copias y los clones de rangos conservan el formato virtual que se superpone a ellos y sustituyen el formato de superposición previo solo dentro del destino, incluidas las copias solapadas y el formato entre libros
- Los restablecimientos de formato explícitos siguen siendo efectivos tras guardar y reabrir libros con formato predeterminado de filas o columnas
- Las celdas XLSX que usan explícitamente el formato predeterminado del libro conservan sus fuentes, rellenos y formatos numéricos personalizados
Versión 2.384.77
Corregido
- Los destinos de formato condicional y de validación de datos de filas y columnas enteras siguen las ediciones de filas y columnas y la clonación de rangos cuando están completamente contenidos en el origen, con una geometría de destino acotada y los anclajes de las fórmulas relativas preservados
- Los estilos finitos de celdas en blanco repetidas importados de ODS conservan toda su extensión del rango usado, y los libros recién creados o restablecidos informan de la versión actual de la biblioteca en las propiedades del documento
- Las copias de celdas de filas, columnas y hojas enteras conservan el almacenamiento disperso, limpian el contenido reemplazado del destino sin expandir coordenadas en blanco y preservan los datos del origen solapados y el formato entre libros
Versión 2.384.76
Corregido
- Las reglas de formato condicional y de validación de datos ahora se aplican de forma consistente a destinos absolutos, invertidos, de filas enteras, de columnas enteras y separados por espacios en blanco, durante la búsqueda, el borrado, el cálculo condicional y las comprobaciones de validación
- Las áreas de destino malformadas y 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 la cuadrícula completa conservan el almacenamiento disperso de celdas
- Los destinos de validación de ODS usan anclajes de celda válidos para filas y columnas enteras, y los destinos condicionales solapados equivalentes ya no crean reglas duplicadas al reabrir
Versión 2.384.75
Corregido
- Las reglas de comparación de celdas y de expresiones de ODS conservan íntegros sus rangos de destino de filas enteras, columnas enteras y anchos en la salida compatible con Excel; los portadores de celdas en blanco repetidas mantienen los rangos dispersos compactos y preservan las reglas solapadas y los metadatos de la hoja
- Reabrir regiones en blanco con estilo repetidas de ODS mantiene compacto su formato base, y las reglas condicionales estándar conservan la precedencia solapada y la cobertura dentro de las regiones combinadas
Versión 2.384.74
Corregido
- El formato condicional de ODS conserva las sustituciones admitidas de fuente, fondo y formato numérico al guardar y reabrir, incluidos los restablecimientos explícitos; las reglas con resaltados o rangos de destino distintos se mantienen separadas
- El formato condicional de XLSX conserva los formatos numéricos integrados y personalizados, incluidos los formatos que usa únicamente una regla condicional; al guardar ya no se eliminan esos formatos personalizados ni se redirigen las reglas a un formato distinto
- Los estilos de porcentaje de ODS incluyen el símbolo de porcentaje que requieren otras aplicaciones de hojas de cálculo 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 de forma aleatoria en Windows 10 y 11. Tras cada cambio del portapapeles, el Explorador y el servicio Clipboard User Service (historial del portapapeles) abren el portapapeles durante unos milisegundos para leerlo; las operaciones de texto solo intentaban abrirlo una vez y podían fallar con «acceso denegado» en ese instante
- Todas las operaciones del portapapeles usan ahora la misma política que copiar y pegar en formato BIFF8 (formato de Excel): siguen intentando abrir el portapapeles durante unos 500 ms. Cuando otra aplicación lo retiene más tiempo, la operación sigue fallando y el contenido existente del portapapeles queda sin cambios
Versión 2.384.72
Corregido
- Al abrir un archivo ODS se lee correctamente el formato numérico General. Excel y LibreOffice escriben General como un estilo numérico sin número de decimales, lo que se leía como dos decimales fijos, de modo que un valor como 1.5 se mostraba como 1.50; esas celdas ahora no llevan formato numérico, 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 informan de 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 mantienen la altura predeterminada, y los tamaños de columna que llegan hasta la última columna pasan a ser 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 ajustadas a mano, y las alturas automáticas en filas con contenido (por ejemplo, filas que crecieron para albergar texto con ajuste de línea), siguen conservándose
- Al guardar en ODS se escribe el ancho de columna estándar de la hoja (
StandardWidth) en las columnas que no tienen ancho propio; antes se perdía, porque 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 añaden un bloque de relleno hasta la fila 1048576; un archivo de 10 filas procedente de Excel tardaba más de 5 minutos en abrirse, y uno de LibreOffice tampoco terminaba nunca
- 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 estas celdas. Las celdas vacías con relleno, borde, fuente, alineación, formato numérico o protección propios siguen conservándose
Versión 2.384.69
Corregido
- Los formatos condicionales guardados en ODS ahora se muestran en Excel. Las reglas de valor (igual a, entre, mayor que, etc.) y las reglas de fórmula también se escriben como condiciones
style:mapestándar de ODF en las celdas que cubren, la única forma que Excel lee; Excel solía abrir 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 todas ellas en «igual a 0»
- Al abrir un archivo ODS se leen los formatos condicionales almacenados como condiciones
style:map, tal como los escriben Excel y otros productores de ODF. Cuando el archivo también lleva las mismas reglas en la forma propia de LibreOffice, cada regla se lee una sola vez - Al abrir un archivo ODS se lee la grafía de LibreOffice para las reglas de valor (
=5,between(1,10),!="x"); los archivos de versiones anteriores de HotXLS siguen abriéndose 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 misma forma que en Excel 365, de modo 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. Excel solía abrirlas con intersección implícita (=SUM(@A1:B1*@{10,100})) y mostrar #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; Excel solía evaluar 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; Excel rechazaba el archivo entero porque los metadatos de matriz dinámica usaban un identificador de extensión con distinto uso de mayúsculas y minúsculas
Versión 2.384.67
Corregido
- Las comparaciones de texto siguen el orden de Excel en ambos motores: ignoran las mayúsculas y minúsculas y usan el orden de palabras de la configuración regional del sistema, de modo 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 afecta 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 de tipo SORT y a la ordenación de rangos - VLOOKUP y HLOOKUP comparan texto sin distinguir mayúsculas de minúsculas, de modo que
VLOOKUP("ABC",...)encuentra «abc», como en Excel
Versión 2.384.66
Corregido
- El formato condicional basado en fórmulas escrito en ODS ahora lo reconoce LibreOffice: la regla se guarda como
formula-is(...)con su celda base, que es la forma que el propio LibreOffice escribe. Antes, LibreOffice leía todas estas reglas como una regla sencilla 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
$igual que las fórmulas de celda (COUNTIF($A:$A,A1)>1pasa a serCOUNTIF([.$A:.$A];[.A1])>1) - Al abrir un archivo ODS se lee el formato condicional basado en fórmulas escrito por LibreOffice (
formula-is), además del 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]). Excel solía abrir esas celdas como=SUM(A:(A))con #NAME?, o descartaba la fórmula; los archivos ODS de HotXLS ahora muestran las mismas fórmulas y valores en Excel y en LibreOffice
Versión 2.384.64
Corregido
- Las funciones de base de datos (DSUM, DCOUNT, DCOUNTA, DAVERAGE, DGET y el resto) tratan un criterio de texto sin operador como «empieza por», 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 por 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), en los motores XLS y XLSX; introducirlas 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 forma que Excel las lee: 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 vuelta con su texto de fórmula
Versión 2.384.62
Corregido
- El operador de intersección (un espacio entre dos referencias) devuelve 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 común dan #NULL!, y una intersección se puede pasar a funciones que aceptan referencias como ROWS, COLUMNS o INDEX. Esto se aplica a ambos motores, a las fórmulas calculadas y a las fórmulas almacenadas en celdas - Los archivos XLS mantienen las fórmulas de intersección utilizables en Excel: los rangos referenciados ahora se escriben como referencias, de modo 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 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 devolvían #N/A. Los argumentos de formas distintas devuelven #VALUE!, un error dentro de cualquier argumento se devuelve 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 a 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*1devolvía -1 - Las comparaciones elemento a 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 venga detrás se tome literal y un~final se ignora, como en Excel:a~bencuentraab, ya~~bencuentraa~b
Versión 2.384.59
Corregido
- Las horas 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 lleva fracciones de segundo (2026-03-15T08:30:00.123Z) o un desfase horario (+08:00,-05:00): la hora se convierte a la hora local en lugar de tomarse tal cual como hora local - Las marcas solo de fecha (
2026-07-01) se leen como esa fecha; las que llevan 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 a través de
TXLSAutoFit(FitXlsxSheet,FitXlsxSheetColumns,FitXlsxSheetRows,MarkSheet) mide cada celda con la fuente con la que se muestra; desde 2.384.46 elegía la siguiente fuente de la lista de fuentes del libro, así que un encabezado en negrita podía medirse con la fuente pequeña de otra celda y salir demasiado estrecho - 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 con "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}pasa a ser{1;2|3;4}en lugar de una única fila), una unión de referencias como(A1,B2)pasa a ser el operador~en lugar de dos argumentos de función, y las referencias absolutas conservan sus marcas$ - Leer de vuelta una unión así desde ODS ya no añade un segundo par de paréntesis, de modo 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 informaba de contraseña incorrecta para todos esos archivos, y corregida solo la clave, los daba por dañados
- Los libros con ofuscación XOR se leen con la misma matriz corregida, de modo 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 el vacío como FALSE en los motores XLS y XLSX, como hace Excel: con A1 vacía,
=A1=FALSEy=A1<TRUEdevuelven TRUE y=A1=TRUEdevuelve FALSE. Antes el vacío 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 en los motores XLS y 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 encontraba 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<>ya no distingue entre mayúsculas y minúsculas - La coincidencia con comodines de MATCH y XLOOKUP trata
~como un escape del carácter que venga detrás 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 informes a un flujo de destino vacío se salta la instantánea de copia de seguridad 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 con más eficiencia conservando los valores Variant en caché, los resultados de evaluación y los hallazgos notificados
Corregido
- El pegado del portapapeles en XLS y XLSX captura los datos BIFF8 y el texto alternativo juntos bajo un único bloqueo del portapapeles, de modo 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 al abrir el portapapeles no cambia
- La publicación fallida del texto requerido o del BIFF8 en el portapapeles preserva el código de error Win32 original a través de la limpieza, de modo que el código que llama puede recuperar 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 a través de 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 XLS dispersos, conservando los hallazgos notificados 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 lo acepten los parsers JSON estrictos; las hojas XLS informan de su rango de AutoFilter; los nombres definidos XLSX que apuntan a otro libro muestran el archivo enlazado en lugar de su índice; las ejecuciones por línea de comandos ya no sobrescriben la configuración guardada; un cuadro de carpeta vacío recurre a la carpeta del programa en vez de a la raíz de la unidad; un guardado de ejemplo fallido se registra en el log en lugar de anunciarse como creado - Demos ApiTour: si la reconstrucción del libro de muestra falla se conserva el anterior, de modo que los botones de exportación ya no fallan; los libros se liberan cuando la construcción lanza una excepción; la exportación HTML registra sus errores; el log informa de los cinco formatos condicionales que realmente se crean
- Demos ExcelGraphics: un tipo de imagen no soportado se informa en lugar de guardar una hoja vacía, y el diálogo de apertura muestra solo los formatos soportados
- Los demos OdsExport comparan el tamaño de fuente en la comprobación de ida y vuelta y devuelven un código de salida distinto de cero cuando la comprobación o el guardado fallan; el demo OdsImport de C++Builder comprueba el resultado del guardado y ya no crea celdas vacías mientras informa
- Los demos DataExport / ExportWithColoring estrechan solo 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 usan de verdad
Versión 2.384.48
Corregido
- Las horas de creación y de último guardado de los documentos se escriben ahora en UTC, como exigen los formatos de archivo, y se leen 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 desplazadas según 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 Excel 5.0/95,
EncryptionType = xletXor): la posición de la clave usada en cada registro sigue ahora la especificación del formato de archivo, igual que la leen y 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 siempre con Arial 10, así que el texto en Calibri 11, los encabezados en negrita y los títulos grandes ya no salen demasiado estrechos - El AutoFit de XLSX mide el texto tal como se muestra a través del formato de número (fechas, moneda, porcentajes), no el valor almacenado en bruto
- El AutoFit de XLSX mantiene los anchos de columna ajustados dentro de
MaxWidth; antes el margen de celda se añadía después de aplicar el límite - El AutoFit de XLSX dimensiona las filas de las celdas con ajuste de línea 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 baja
Versión 2.384.45
Corregido
- Libros XLS: los criterios de
ApplyAutoFiltercomo'>=100'o'=2.5'se guardan ahora como condiciones numéricas; antes se guardaban como texto, Excel los comparaba como texto y el filtro acababa ocultando 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.DataTypeinforma 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 más abajo y una columna a la derecha (INDIRECT("D1")devolvía E2), en libros tanto XLS como XLSX; el texto R1C1 ya era correcto. Una referencia más allá de la última fila o columna devuelve ahora#REF!
Versión 2.384.43
Corregido
- Libros XLSX: las fórmulas ya pueden referenciar la hoja entera de 1048576 × 16384. Las referencias más allá de la columna IV o de la fila 65536 (
=XFD1,=A100000,=SUM(XFC1:XFD1),Data!C1048576) antes se rechazaban como nombres desconocidos al introducirlas o daban error al evaluarlas; ahora se analizan, se calculan, se desplazan con las filas y columnas insertadas y se guardan tal como se escriben - Libros XLSX: las referencias de columna y de fila completas (
A:A,1:1) cubren toda la hoja, de modo queROWS(A:A)devuelve 1048576 ySUM(A:A)incluye los valores por debajo de la fila 65536;ADDRESSdevuelve columnas de tres letras como$XFD$1 - Libros XLS: se aceptan las referencias a la última fila y columna de la hoja de 65536 × 256 (
=A65536,=IV1); antes se rechazaban como nombres desconocidos
Versión 2.384.42
Corregido
- Unidades heredadas
lxRows/lxCols(se conservan por compatibilidad de código fuente; las clases de libro no las usan): un índice de fila por encima de 1048575 lanzaERangeErroren lugar de hacer wrap-around hasta la fila 1, el registro ROW ya no marca cada cambio de nivel de esquema como contraído, y escribir COLINFO de una columna sin ajustes propios usa los valores predeterminados en lugar de fallar
Versión 2.384.41
Corregido
- Compilaciones de Lazarus / Free Pascal en modo de cadenas ANSI: los archivos de trabajo cuya ruta contiene caracteres fuera de la página de código del sistema ahora se eliminan en la limpieza; antes sus nombres se almacenaban con pérdidas y los archivos se quedaban huérfanos en la carpeta temporal
Versión 2.384.40
Corregido
TlxCellMMU(el almacén empaquetado de celdas) lanzaEInvalidOperationcuando se escribe una celda fuera del orden de filas dentro de un bloque de 256 filas o sobre una celda ya existente, yERangeErrorpara una posición negativa o una columna más allá de 65534; antes una escritura así corrompía en silencio la fila vecina. Las escrituras masivas de la propia biblioteca ya mantienen el orden de filas y no se ven afectadas
Versión 2.384.39
Cambiado
- Libros XLSX: asignar
TXLSXWorksheet.TabColorpone ahora tambiénTabColorIsAutoa False, de modo que el color de pestaña se muestra sin necesidad de una segunda asignación, igual que las propiedades de color de fuente, relleno y borde. Poner despuésTabColorIsAutoa True sigue eliminando el color de pestaña
Versión 2.384.38
Cambiado
- Libros XLS:
TXLSWorksheet.AddPivotTabletrata ahoraDestRowyDestColcomo basados en 1, 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 basadas en 0 debe sumar 1, y un ancla de 0 o fuera de la hoja devuelve ahoranil - Libros XLS: las posiciones de
TXLSPivotTable(FirstRowaFirstDataCol) y el rango de origen deTXLSPivotCache(SourceFirstRowaSourceLastCol) pasan a basarse en 1 tanto en tablas dinámicas nuevas como en las abiertas, así que el mismo código lee las mismas celdas en ambos motores y una tabla dinámica copiada entre ellos conserva su sitio
Versión 2.384.37
Corregido
- Libros XLSX: una tabla dinámica situada por debajo de la fila 65535, o empujada hasta ahí al insertar filas, ya conserva su posición real; antes el ancla se recortaba a 16 bits y la tabla dinámica guardada acababa en filas equivocadas
- Las propiedades de posición de la tabla dinámica (
FirstRow,FirstCol,LastRow,LastCol,FirstHeaderRow,FirstDataRow,FirstDataCol) son ahoraIntegeren lugar deWord - Libros XLSX:
AddPivotTableyAddPivotTableCopydevuelvennilcuando el ancla 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 y InteractiveFeatures escriben sus columnas de texto como texto; al pasar un
const wchar_t*a unOleVariantse elegía el constructorbooly todos los encabezados y etiquetas salían como TRUE - El demo DefinedNames lista los nombres XLS desde el índice 1 en lugar de fallar en el índice 0, WorkbookAudit cuenta las referencias externas de los nombres de los libros XLS, y FileMonitor escribe
Monitored.xlsxen lugar del.xlsxxmal escrito que hacía fallar cualquier lectura de nombre de hoja - Los demos Pictures y OdsExport incrustan un PNG válido; el literal de bytes estaba corrompido por la conversión de cadena y las longitudes de los chunks de Pictures eran erróneas
- ApiTour evalúa su paso
DEMOADDen la hoja API Tour en lugar de en la hoja Dashboard activa, donde un argumento de texto podía abortar el arranque; el tour clásico de C++Builder muestra ahora el resultado del paso - FreezePanes, QuickStart y ApiTour inmovilizan exactamente sus filas y columnas de encabezado;
FreezePanestoma recuentos, no la primera celda desplazable - Los colores de formato condicional de 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 de top-N, duplicados y por encima de la media
- MemoryDataExport y HtmlExport ya no informan como fallidas exportaciones CSV, HTML y RTF que han tenido éxito (estos escritores devuelven 0 cuando terminan bien), y MemoryDataExport escribe los tres archivos aunque alguno falle
- Los demos que guardan y luego informan o abren el archivo (QuickStart, ExcelGraphics, HotXLSInMemory, OrderCalc, PurchaseOrder y varios demos de consola) comprueban el resultado del guardado en lugar de anunciar éxito cuando el archivo está bloqueado
- ConversionWorkbench trata cualquier resultado negativo del escritor como un fallo y elimina antes la salida antigua, de modo que un archivo obsoleto ya no oculta una conversión fallida; la versión de C++Builder exporta todas las hojas a HTML
- InvoiceTemplate, OrderCalc y DataExport ya no dependen del formato de número y fecha de Windows: las fórmulas de impuestos, los precios y los umbrales de fecha funcionan en sistemas que usan coma decimal o fechas con el año delante
- Correcciones menores: los totales de QuickStart usan texto oscuro sobre su relleno claro, DateSystems muestra los números de serie en bruto 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 de verdad, Hyperlinks muestra el texto de enlace previsto, SheetProtection describe y establece correctamente las acciones permitidas, OdsImport ya no crea celdas vacías mientras explora, InteractiveFeatures guarda un libro sin contenido VBA como .xlsx, WorkbookAudit informa de los archivos XLS cifrados y de sus proyectos VBA, ChartTypes mantiene sus gráficos apartados 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 comprueba 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 fragmento de texto enriquecido XLSX ahora surte efecto por sí solo. Estos objetos arrancan con el color automático, y un
Color,ForegroundColoroBackgroundColorexplícito se descartaba en silencio salvo que también se limpiara el indicadorColorIsAuto/ForegroundIsAuto/BackgroundIsAutocorrespondiente - Asignar un color RGB también limpia una procedencia de color de tema o indexada definida antes, que de otro modo prevalecería; asignar un índice de tema o de color indexado de 0 o superior limpia el indicador automático
- Los colores de borde pegados en un libro XLSX desde el portapapeles, los colores de borde de libros clásicos exportados a XLSX y el color de fuente pasado a
TXLSXComment.SetFontse escriben ahora 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 de tabla dinámica 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 de tabla dinámica de archivos Excel conservan su subtotal predeterminado: Excel omite
defaultSubtotalcuando está activado, y HotXLS trataba el atributo ausente como desactivado - Los campos de caché de tabla 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 que escribe 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 antiguos - Los campos de tabla dinámica 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 de tabla dinámica ocultos y contraídos conservan su estado cuando la tabla 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 caché de tabla dinámica llevan un
numFmtIdnumérico en lugar del textoGeneral
Versión 2.384.32
Corregido
- La importación ODS convierte correctamente las filas de matrices en línea:
{1;2|3;4}pasa a{1,2;3,4}en lugar de una fórmula que Excel no puede analizar - La importación ODS convierte el operador de unión de referencias:
SUM([.A1:.B2]~[.C3])pasa aSUM((A1:B2,C3))
Versión 2.384.31
Corregido
- La importación ODS lee las celdas de hora 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 una longitud fija, recurren ahora 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 termina el procesoTGWmfEmfReadtrata un WMF placeable cuya cabecera declara cero unidades por pulgada como un archivo sin tamaño en lugar de dividir por ceroTGWmfEmfReadmantiene tamaños y límites de 32 bits enBSEWMF, en consonancia con la cabecera de imagen que describe
Versión 2.384.29
Corregido
- Las imágenes WMF y EMF de 64 KB o más en libros XLS clásicos sobreviven a la apertura y al guardado; sus tamaños almacenado y descomprimido se recortaban a 16 bits, así que Excel no podía decodificar la imagen del archivo guardado
- Los límites de las imágenes de metarchivo fuera del rango -32768..32767 se conservan en lugar de hacer wrap-around
Versión 2.384.28
Corregido
TXMLWriterya no produce XML malformado cuando los valores de texto o de atributo contienen caracteres de control, suplentes aislados o U+FFFE / U+FFFF; los caracteres que XML 1.0 no puede representar se omitenTXMLWriterescribe un retorno de carro dentro del texto de un elemento como referencia de carácter, de modo que el texto se recupera igual en lugar de que el CR se convierta en LFTXMLWriterlanza un error cuando el flujo de destino acepta menos bytes de los escritos, como 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, pega ahora con la referencia todavía una fila más arriba; antes quedaba clavada a la celda original y una fórmula podía acabar referenciándose a sí misma - Los datos de Excel que HotXLS publica en el portapapeles mantienen las celdas copiadas en su posición de hoja, así que las aplicaciones que los leen ven las direcciones originales
Versión 2.384.26
Corregido
- Los helpers de cadena de zlib (
ZCompressStr,ZDecompressStry las variantes in situ) procesan ahora la cadena entera; 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 clásicos cuyo texto mostrado viene marcado sin el indicador de sitio se leen correctamente, y los hipervínculos con un tipo de destino inusual ya no hacen fallar toda la apertura ni devuelven una subdirección ilegible
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; sigue vigilando e informa de los cambios posteriores
Versión 2.384.23
Corregido
- Los colores de tema con un tint por debajo de -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 por la API se guardan con el atributo de versión de actualización que exige el formato de archivo
- Una conexión con un nombre o id ausente o repetido ya no provoca que todo el libro falle al abrir; la entrada se conserva tal cual y se vuelve a guardar sin cambios
Versión 2.384.21
Corregido
- Cambiar el código fuente de un módulo VBA surte ahora efecto en Excel: el proyecto se guarda de forma que Office compile el nuevo fuente en lugar de ejecutar el código compilado en caché del anterior
- El fuente de los módulos VBA se guarda ahora 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 flujo de directorio VBA malformado ya no deja colgada la apertura del libro, y una entrada de módulo sin su información de flujo ya no deja un módulo vacío en el proyecto
Versión 2.384.20
Corregido
- Los nombres definidos cargados de un libro clásico conservan sus referencias desplazadas después de insertar o eliminar filas o columnas y de guardar el libro; 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 a cero el ancho de cada columna medida, o el alto de cada fila medida, cuando no tenían un tamaño explícito
Versión 2.384.18
Corregido
- Los criterios de AutoFilter de los libros clásicos se combinan tal como se definieron: 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; antes se almacenaban de 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 clásicos ya coinciden con Excel; se escribían un día tarde y se leían un día temprano
- La fecha de último guardado se almacena en su propiedad de documento correspondiente; antes se guardaba en la ranura del recuento de páginas, donde Excel y Windows no la mostraban como fecha
- El tiempo total de edición se almacena como una duración, así que Excel y Windows muestran los minutos reales en lugar de unos 299 años; las horas escritas por versiones anteriores siguen leyéndose correctamente
Versión 2.384.16
Corregido
- La regla de valores únicos de la comprobación de importación compara ahora los valores de celda; antes se informaba de un duplicado para todo valor posterior al primero de una columna
- Añadir una segunda regla a la misma columna reemplaza limpiamente a la primera; la regla antigua se liberaba pero seguía comprobándose, y liberar el comprobador lanzaba un error de puntero no válido
- Comprobar una hoja ya no crea celdas vacías por los blancos que lee
- Conservar solo las filas que incumplen ya no escribe más allá de su tabla de filas cuando una infracción cae por debajo del rango usado, y la fila de títulos se inserta encima de los datos en lugar de sobrescribir la primera infracción
Versión 2.384.15
Corregido
- Leer una entrada ZIP en trozos pequeños ya no pierde los últimos bytes de la entrada cuando los datos comprimidos acaban en medio 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 lanza ahora un error en lugar de reventar el proceso de 64 bits
- El flujo de descompresión devuelve todos los datos restantes tras agotarse 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 búfer de imagen, lo que podía provocar un crash o corromper píxeles vecinos al exportar o imprimir un libro que las contenga
- Las imágenes PNG entrelazadas se decodifican correctamente cuando una pasada empieza con el filtro Average o Paeth
- Las imágenes PNG en escala de grises de 2 bits muestran ahora 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 devuelve 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 no válida o una longitud de chunk que rebasa el final del archivo se rechazan limpiamente en lugar de provocar un crash o de 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 clásicos cifrados con RC4 usan ahora 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 producían antes 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
- Una cabecera RC4 CryptoAPI malformada con una longitud desmesurada se informa como archivo corrupto en lugar de lanzar un error genérico
Versión 2.384.12
Corregido
- Los libros con cifrado Agile que declaran SHA-256 se descifran ahora correctamente; los segmentos de datos se descifraban siempre con vectores de inicialización SHA-512, así que el libro no abría ni con la contraseña correcta
- HotXLS ya no informa de contraseña errónea para los archivos Agile cuyos datos de clave y cifrador de clave de contraseña usan algoritmos de hash distintos
- Un spin count por encima del límite de 10000000 que marca el formato se rechaza al instante en lugar de tener la CPU ocupada horas
- Un verificador de contraseña truncado ya no lee más allá de su búfer, y la clave de integridad que escribe
SaveAsEncryptedAgiletiene ahora la longitud que exige el formato
Versión 2.384.11
Corregido
- Los libros guardados con
SaveAsEncryptedabren ahora 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, de modo que Excel rechazaba la contraseña; los libros cifrados así por Excel 2007 también pueden abrirse ya - Los libros cifrados guardados por versiones anteriores de HotXLS siguen abriendo con la contraseña correcta
- Una cabecera de cifrado malformada con una longitud desmesurada 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 de paso, 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 acaba convertida enLOG11(y en#NAME? - Las referencias calificadas con nombre de hoja, como
Sheet2!A1o'My Sheet'!B3, se desplazan ahora al pegar igual que las que no lo están - Pegar en un libro clásico texto que empieza por
=o por un apóstrofo lo mantiene como texto; antes se convertía en una fórmula o perdía su primer carácter
Versión 2.384.9
Corregido
- Los formatos de número de tiempo transcurrido como
[h],[mm]y[ss].00se reconocen ahora como formatos de hora en lugar de confundirse con nombres de color; con la precisión tal como se muestra desactivada (FullPrecisionpuesto aFalse), una duración formateada como[ss].00ya no se redondea como si fuera un número normal 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, se leen ahora como minutos y no como meses cuando se analiza un formato de número
Versión 2.384.8
Corregido
- Copiar texto, HTML o datos de hoja de cálculo al portapapeles de Windows usa ahora un propietario temporal válido, también en programas de consola y worker threads sin ventana de aplicación; los datos copiados siguen disponibles después de destruirse ese propietario
- Cuando la publicación en el portapapeles falla, ahora se libera cada bloque de datos asignado que Windows no aceptó, incluidos los bloques de texto y HTML acompañantes cuando falla la publicación de la hoja de cálculo
Versión 2.384.7
Corregido
- Compilar la biblioteca desde código fuente con RAD Studio de XE5 a 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 siguen analizando la comprobación de versión de Free Pascal aunque luego la salten, y rechazan el cast numérico que hay detrás del caso especialDATE(1900,2,29). Ambos puntos usan ahora formas que cualquier compilador soportado acepta, así que todo el rango de RAD Studio vuelve a compilar
Versión 2.384.6
Corregido
- Copiar celdas que llevan un comentario en un libro .xls clásico, ya sea dentro del mismo libro, a otro libro o desplazando filas y columnas, conservaba el texto del comentario pero perdía sus fragmentos con formato, de modo que cada copia mostraba la nota entera en una sola fuente; ahora los fragmentos viajan con el texto, y entre libros sus fuentes se añaden al libro de destino
- Copiar una hoja entera con
Sheets.AddCopyen un libro .xls clásico perdía los comentarios de las celdas sin valor ni formato; ahora esos comentarios también se copian - Los comentarios de los libros .xlsx se reabrían sin el nombre de fuente, el tachado y el color de sus fragmentos con formato, y los fragmentos guardados nunca llevaban subrayado ni superíndice/subíndice; todo esto ahora sobrevive a un guardado y reapertura, incluidos los fragmentos copiados de otro libro con
CloneRangeTo
Versión 2.384.5
Corregido
- Los fragmentos con formato de los comentarios y cuadros de texto de los libros .xls clásicos ya no pierden sus fuentes al guardar. Una fuente usada solo por un fragmento de ese tipo podía desaparecer de la lista de fuentes guardada, la mayoría de las veces cuando HotXLS volvía a guardar un libro que ya había guardado una vez, y el fragmento mostraba entonces en Excel la fuente predeterminada o recogía una fuente añadida mientras tanto; esas fuentes ahora se conservan, y los fragmentos 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 manera
Versión 2.384.4
Corregido
- El cambio de numeración de fuentes de 2.384.1 era él mismo el error: los archivos .xls clásicos numeran las fuentes como 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 simple conteo de base cero; los libros guardados mostraban entonces en Excel cada fuente personalizada una posición antes (la primera recaía en la fuente predeterminada), y los libros creados en Excel se abrían con cada fuente personalizada desplazada una posición después. Guardar y abrir siguen de nuevo la numeración de Excel, verificado frente a libros escritos y leídos por el propio Excel
- Las celdas de texto enriquecido conservan la fuente de cada fragmento con formato a través de apertura, guardado y copias de hojas entre libros, incluidos los fragmentos cuya fuente no usa directamente ninguna celda
- Los libros guardados por 2.384.1 a 2.384.3 con cinco o más fuentes ya llevan 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 del 1900-01-01 al 1900-02-28 estaban desfasadas un día respecto a Excel en ambos motores de libro, porque el calendario 1900 de Excel cuenta un 1900-02-29 fantasma; la lectura y la escritura aplican ya la corrección documentada,
DATE(1900,2,29)responde con 1900-02-28 en lugar 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 encadenan de izquierda a derecha tal como las evalúa Excel, de modo que
=1<2<3ahora se lee como(1<2)<3y da FALSE como Excel (TRUE va por delante de cualquier número en una comparación), mientras que antes se agrupaba como1<(2<3)y daba TRUE; un operando vacío equivale tanto a 0 como a una cadena vacía en las comparaciones; los criterios con comodines se aplican al "no igual" enCOUNTIFySUMIFexactamente igual que ya hacían con el "igual"; el rango de suma deSUMIFy sus hermanas cambia de tamaño desde su celda superior izquierda hasta la forma del rango de criterios en vez de recortarse; yINDIRECTrespeta su segundo argumento (texto R1C1 absoluto) y rechaza la basura que quede tras la referencia YEARFRACcon base 0 aplica los ajustes NASD de fin de febrero queDAYS360ya implementaba, así los tramos que tocan el final de febrero cuentan correctamente- Un texto que diga "endstream" dentro de una celda ya no puede truncar una página PDF durante la compresión de flujos; el parche del token de páginas totales mantiene la longitud del flujo coherente cuando se omite la compresión, los desplazamientos de objeto por encima de 32 bits fallan de forma ruidosa en vez 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 cuyo almacenamiento de cachés de tabla dinámica fue eliminado o truncado se abre con las cachés afectadas marcadas como incompletas en vez de fallar toda la carga, y vuelve a guardar esas cachés mediante el diseño en línea heredado en lugar de dar error
- Una tabla de cadenas compartidas cuyo recuento declarado de cadenas excede lo que entrega la cadena de registros ahora hace fallar la apertura en vez de resolver en silencio las celdas restantes como cadenas vacías
Versión 2.384.2
Corregido
- Al convertir un libro .xls clásico a .xlsx se perdían en silencio las celdas combinadas situadas a la izquierda de una combinación anterior en una fila inferior; 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 de un libro se reemitía con marcadores
<!--duplicados en cada guardado, produciendo un archivo que Excel debe reparar; los nodos de comentario ahora hacen la ida y vuelta byte a byte - Los registros de hoja no reconocidos capturados de un .xls abierto se eliminaban en cada guardado posterior pese a conservarse para reproducirlos, y perdían memoria en cada apertura; ahora persisten y se reproducen literalmente 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 corrompían el enmarcado del registro NAME al guardar; ambos se rechazan ahora de antemano
- Un guardado abortado perdía los búferes de registros del libro y de la hoja cuando un desajuste de cifrado saltaba a mitad de escritura; el guardado libera ahora sus búferes en cada ruta de salida
- El escritor de parcheo in situ eliminaba el archivo original antes de renombrar el reemplazo a su lugar, de modo que un renombrado fallido destruía el libro; el intercambio es ahora un reemplazo atómico único que conserva ambos archivos si falla
- Las referencias de celda del lector directo imponen los límites de 16384 columnas y 1048576 filas en vez de aceptar coordenadas desbordadas, los atributos enteros malformados recurren a los valores predeterminados en vez de abortar toda la lectura, y las fechas entre 1900-01-01 y 1900-02-28 se convierten con el día bisiesto fantasma de Excel tenido en cuenta en ambas direcciones
- Los valores de atributo que contienen tabulación, salto de línea o retorno de carro hacen la ida y vuelta sin cambios en vez de colapsar a espacios, y una entidad sin terminar en el texto de un elemento se rechaza ahora igual que en la rama de atributos
- Las copias literales de entradas ZIP de 4 GiB o más, que la ruta de copia no puede enmarcar correctamente, se rechazan ahora como hace el escritor de streaming en vez de producir un archivo corrupto
- El ejecutor del corpus escribe sus resultados de forma atómica para que una ejecución interrumpida no pueda destruir la evidencia retenida, registra los timeouts de compilación en vez de fallar y tolera líneas de traza de etapa malformadas; el verificador de LibreOffice escribe su evidencia de forma atómica y la sonda de reemplazo de archivos vuelve a recopilar de verdad la lista de productos antivirus
Versión 2.384.1
Corregido
- Cada fuente a partir de la quinta se escribía con un índice de registro una posición pasado el final de la lista de fuentes, así que Excel reparaba el libro y las fuentes personalizadas volvían como la predeterminada; guardar y abrir usan ahora el índice basado en cero documentado, de modo que las fuentes personalizadas sobreviven a una ida y vuelta y los archivos creados por Excel conservan sus fuentes al abrirse en HotXLS
- Evaluar
=0^-1o una base negativa con exponente fraccionario hacía fallar el recálculo con una excepción de coma flotante en lugar de devolver#DIV/0!o#NUM! - Las reglas de expresión de formato condicional leídas de un .xls existente se guardaban de nuevo como un registro CF12 huérfano bajo la cabecera heredada 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 redimensionados de
OFFSETy deINDIRECTmulticelda seguían el eje equivocado o rechazaban rangos válidos de una sola fila o columna, devolviendo la celda equivocada o#REF! - El lector de filas en streaming informaba de cada booleano de fórmula en caché como FALSE y de cada error en caché como
#NULL!al leer archivos .xls clásicos - Los archivos .xls grandes cuyo contenedor de archivo compuesto supera los 109 sectores FAT residentes en la cabecera no podían abrirse con el lector de archivos compuestos autocontenido porque la cadena de extensión DIFAT nunca se seguí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 volvía con el color equivocado
- Las imágenes PNG malformadas incrustadas en un libro podían hacer fallar el proceso mediante una escritura fuera de límites durante la incrustación de imágenes PDF o un escaneo de chunks de texto sin límite; las PNG incrustadas se comprueban ahora por dimensiones y los chunks malformados se rechazan
- Las regiones EMF de varios rectángulos se renderizaban como su cuadro delimitador, las imágenes EMF sin extensión de viewport explícita se escalaban mal y el texto en superíndice se renderizaba por 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 llevaban todas prioridad 1, lo que Excel señala como reparación; las prioridades automáticas son ahora únicas por hoja como sus homólogas XLSX
- El estilo de borde
xlSlantDashDotse escribía comoxlDashDotDoten la salida de bordes .xls clásicos - Un registro de cabecera de libro cifrado truncado lanzaba una excepción a través de
Openen lugar de devolver el código de error de contraseña, y varias rutas de error perdían memoria al analizar archivos de imagen o de libro malformados
Versión 2.384.0
Cambiado
- Las cachés de tabla dinámica de XLS clásico se guardan como las guarda Excel: los registros de cada caché van a su propio flujo de almacenamiento, mientras que el identificador de flujo, el ámbito 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 diseño en línea anterior salvo que se active la actualización de enmarcado opcional
- Los libros protegidos por contraseña cifran el flujo de cada caché de tabla dinámica como su propio flujo de registros que empieza de cero al inicio del flujo en lugar de continuar la posición de cifrado del flujo del libro
Corregido
- Una tabla dinámica podía apuntar a la caché equivocada tras guardar un libro que mezclaba cachés leídas de un archivo existente con cachés creadas por código; la referencia vista-a-caché sigue ahora el orden real de guardado
- Todos los paquetes de HotXLS seguían llevando el recurso de versión 2.379.7, y recompilar un paquete en C++Builder podía eliminar por completo el recurso de versión; todos los paquetes llevan ahora la versión actual
Versión 2.383.4
Corregido
- Las auditorías profundas de fórmulas mantienen ahora los resultados cambiados disponibles para las fórmulas dependientes incluso cuando los cambios entran dentro de la tolerancia de notificación, y la aplicación explícita actualiza esos resultados no notificados
- La tolerancia relativa se honra ahora para los resultados en caché de doble precisión en ambos motores de libro, mientras que los resultados sin cambios evitan una comparación duplicada
Versión 2.383.3
Corregido
- Los guardados de libro basados en archivo conservan ahora el error nativo de Windows cuando una salida XLSX, XLTX u ODS completada no puede reemplazar su destino, incluido el caso en que 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 informe y de rangos reutilizan las búsquedas de sufijos de nombres definidos en lugar de reescanear cada copia anterior, conservando el primer nombre disponible, el ámbito 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 reescanear repetidamente las filas de fórmulas anteriores, reduciendo el coste de las cadenas de cálculo grandes a la vez que preserva 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 flujos y salida con búfer o en streaming
- La salida de plantilla preserva fórmulas, nombres definidos, áreas de impresión y metadatos de hoja dejando intacto el comportamiento de guardado por defecto del libro; 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, evitando 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 calificadas por hoja sobreviven a una ida y vuelta sin añadir un prefijo de hoja a una función ni truncar referencias dentro de una expresión
- Las partes del paquete generadas y conservadas comparten declaraciones de tipos de contenido únicas, y las propiedades personalizadas ya no colisionan con identificadores de relaciones raíz opacos
Versión 2.382.4
Corregido
- Las referencias escalares a nombres definidos usan la intersección de 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 números en coma flotante conserva la precisión en coma flotante en lugar de truncarse a cuatro decimales
- El recálculo da prioridad a los precedentes de búsqueda disponibles antes de leer sus cachés, evitando recuentos de pagos obsoletos y resultados de búsqueda parecidos
Versión 2.382.3
Corregido
- AGGREGATE gestiona los errores sin calcular y la agregación anidada con ajustes de selección independientes, conserva los cálculos de matriz y propaga los tipos de error originales
- Los guardados de XLS clásico conservan las cachés de fórmulas existentes hasta un 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 escapados, sin alterar el texto similar dentro de las cadenas de fórmulas
- El formato condicional XLSX conserva los colores RGB, los indicadores de fuente explícitos, los estilos de subrayado, los nombres de fuente, los tamaños y los esquemas
- Los gráficos no modificados conservan sus definiciones originales y sus 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 sin especificar, y el XLS clásico conserva la ausencia de los márgenes de página importados en lugar de añadir 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 se guardan sin expandir cada altura de fila y cada estilo de celda en blanco heredado en objetos individuales
- La salida ODS conserva las alturas de fila explícitas y las filas con estilo repetidas y compactas, incluidas las anulaciones de fila única y las alturas borradas; los rangos de altura de fila también sobreviven a la copia de hojas de cálculo, a la inserción y eliminación de filas, al mosaico y a la exportación a XLSX
Versión 2.382.1
Corregido
- Abrir y guardar libros de trabajo XLSX con ajustes de columnas de ancho completo ya no vuelve a escanear repetidamente los metadatos de columnas ni copia el XML de columnas en constante crecimiento, lo que elimina los timeouts de ida y vuelta en libros de fechas y de plantillas manteniendo los ajustes de columnas
- Las definiciones de tablas dinámicas ODS conservan las declaraciones de espacios de nombres XML heredadas, incluidas las extensiones del productor, de modo que el XML guardado sigue estando bien formado
Versión 2.382.0
Corregido
- Al guardar un libro de trabajo XLS clásico, las celdas
SUBTOTALanidadas quedan ahora fuera de los resultados de subtotal que las contienen, 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 referenciada por cada hoja de cálculo, de modo que una parte de dibujo convencional sin enlazar ya no puede duplicar un gráfico durante una ida y vuelta
- Las definiciones de tablas data-pilot de OpenDocument sobreviven al 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
AGGREGATEsiguen ahora las reglas documentadas de filas ocultas, errores y selección anidada deSUBTOTAL/AGGREGATE, tanto en la forma de referencia como en la forma 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 lo respalda, con el nombreSlicer_<column>, el nombre definido reservado#N/A, la extensiónslicerListde la hoja de cálculo y un ancla de dibujo con compatibilidad de marcado que lleva un aviso de fallback para versiones anteriores de Excel se escriben automáticamente, y la vista se puede posicionar, dotar de título y aplicar estilos medianteCaption,ColumnCount,StartItem,StyleName,RowHeightySetBounds - Modelo de ida y vuelta de slicers: las vistas y las cachés de slicer se interpretan de nuevo al abrir (las cachés compartidas se reutilizan entre vistas y al eliminar la última vista se elimina 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 en el momento de abrirse; cuando el guardado renumeraba los identificadores de tabla de todo el libro, el
tableIdobsoleto podía enviar Excel a 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 se pueden crear, guardar y volver a abrir. Se serializan como partes de gráfico extendido dedicadas, con su propio tipo de contenido, su vinculación de datos a la hoja de cálculo y un ancla de dibujo con compatibilidad de marcado que lleva 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 nuevo como su propio nivel dentro de la dimensión de categorías, conservando las etiquetas de las hojas y de los niveles 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 entero al ministream incluso cuando solo una parte de él pertenecía allí, seguía la tabla de asignación mini 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 a partir de un recuento sin comprobar. Las cadenas de sectores y de minisectores quedan ahora protegidas contra ciclos, y un nombre de flujo que llena su campo sin terminador se acota
- 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 claves solo comprobaban el límite inferior, de modo que un índice de 12 bits procedente del archivo podía llegar más allá de la matriz
- Una cabecera local de archivo escrita con información extendida ZIP64 ya no desborda su búfer: el tamaño de cabecera declarado contabiliza ahora el campo extra de 28 bytes que el escritor añade. Los desplazamientos de entradas y las posiciones de flujo se registran como valores de 64 bits, una entrada ZIP64 se lee usando 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 resto
- Un nombre de entrada ZIP que contiene un separador de Windows se normaliza. Una sola barra invertida nunca se convertía en barra inclinada, de modo que
..\..\namesuperaba la comprobación de recorrido de directorios, que divide por barras inclinadas - 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 empieza por un conjunto de caracteres ya no filtra 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 exige ahora que el patrón coincida con la celda entera, en consonancia 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 informa de 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 nada más que su byte de opciones cuando una cadena se desborda solo 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 reserva escritos como\\'hh, que la lógica de omisión no reconocía, de modo que cada uno se emitía además como texto. Los grupos omitidos respetan ahora 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 lanzar 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 una ida y vuelta 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 in situ, de modo que la segunda lectura de archivo a través del mismo cargador no omitía nada - Una parte
xl/tables/se reconoce al decidir qué partes se conservan; 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 descodifica 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 se veían afectadas; ambas formas rechazan ahora los valores fuera del rango representable en lugar de emitir un carácter extraño - La exportación de HTML conserva 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.AddFromFiletoma ahora su tamaño del descriptor de pantalla lógica. Todos los GIF informaban antes de 100 por 100 puntos sin atender a sus dimensiones reales, de modo que la imagen llegaba estirada o aplastada - El dimensionamiento de BMP lee la cabecera 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 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 solo línea base, secuencial extendido y progresivo. Los JPEG sin pérdida, con codificación aritmética y jerárquicos caían antes en el valor predeterminado de 100 por 100
Versión 2.379.1
Corregido
- Las imágenes WMF se descodifican ahora como escenas vectoriales para SVG, PDF y la salida paginada. Desde la versión 2.363.0 el descodificador leía cada registro como un tamaño de 16 bits seguido del código de función, pero un registro de metarchivo empieza 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 mapa de bits. Los registros se delimitan ahora conforme a
[MS-WMF] §2.3, y los parámetros de pluma, pincel, fuente, texto, forma y polígono se leen en sus desplazamientos especificados META_STRETCHDIBesperaba el DIB antes del rectángulo de destino y asumía una cabecera de mapa de bits de 40 bytes; el rectángulo precede ahora al DIB como 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 desplazamiento erróneo- Las imágenes de metarchivo incrustadas en una representación de página leen sus píxeles en el desplazamiento que indica la cabecera del mapa de bits y no en 40 bytes fijos, de modo que una imagen con
BITMAPV4HEADERoBITMAPV5HEADERya no se representa como ruido de colores desplazados
Versión 2.379.0
Añadido
TGridToXLSforma ahora parte del paquete de tiempo de ejecución de Free Pascal, de modo que unaTDBGridde Lazarus se exporta igual que 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 conjunto de datos, y el resultado se guarda como XLS, XLSX, HTML o RTF mediante la misma llamadaSaveAs
Versión 2.378.4
Corregido
- TEXTBEFORE y TEXTAFTER leían su recuento 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!, según el contenido residual de la pila; el recuento procede ahora de la propia llamada
- Un OFFSET redimensionado, es decir, uno con un alto o un ancho distintos de 1, evaluado en una sola celda comparaba la celda de la fórmula con un ancla que aún no se había calculado, de modo que la intersección implícita podía devolver #REF! o la celda equivocada; el ancla desplazada se calcula ahora antes de la prueba de intersección
Versión 2.378.3
Corregido
- Bajo Free Pascal, buscar coincidencias o reemplazar una cadena vacía lanzaba el error de expresión regular, de modo que una expresión de informe como
regexreplace(Code,"[^0-9]","")fallaba conREPORT_EXPRESSION_INVALID_REGEXsiempre que el campo estuviera en blanco. El backend de FPC responde ahora como lo haceTRegExbajo 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+informan de que no hay coincidencia
Versión 2.378.0
Añadido
- HotXLS ahora se 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 conjuntos de datos y las ayudas de representación funcionan todos desde código FPC con la semántica de cadenas Unicode de Delphi; el tema Compatibilidad con Free Pascal y Lazarus cubre la configuración de la aplicación y las diferencias de backend
- 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 baterías de pruebas de humo de Lazarus enTests/Lazaruscubren idas y vueltas de libros de trabajo, compresión, cifrado, flujos COM, gráficos, lectura de texto, expresiones regulares, exportación de conjuntos de datos y expresiones de informe - Las compilaciones FPC usan backends 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 enlaza Delphi; PNG conserva 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 tiempo de ejecución de GDI+
Versión 2.377.2
Añadido
- Una PivotCache de XLS clásico escrita por HotXLS incluye ahora los registros frente a los que el formato define la cabecera de la caché. El identificador de flujo y el tipo de datos de origen de la cabecera nombraban antes un SXStreamID y un SXVS que nunca se escribían, de modo que ningún lector podía comprobar ninguno de los dos; ambos registros se escriben ahora y ambos campos de la cabecera se toman de los mismos valores, de manera que concuerdan por construcción
- Los subflujos de la caché también incluyen SXDBEx, el registro que sigue a la cabecera de la caché en cada caché que escribe Excel. Registra cuándo se actualizó la caché por última vez, de modo que
TXLSPivotCache.RefreshedDatesobrevive ahora a un guardado y recarga 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 la cabecera de la caché. Una caché creada conAddPivotTableinforma del flujo 0 y de un origen de rango de hoja de cálculo
Cambiado
- La reescritura opcional de la estructuración antigua de cachés (
UpgradeLegacyPivotCacheFraming) produce ahora también estos tres registros, de modo que una caché actualizada no solo queda correctamente estructurada, sino completa igual que las recién escritas. Una caché que ya incluyera un SXStreamID, un SXVS o un SXDBEx conserva lo que llevaba; una cuyo SXDBEx declare registros de fórmula que HotXLS no escribe sigue 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 aún no tiene modelo —entre ellos el DConRef o el DConName que nombran un rango de origen— siguen conservándose byte a byte en una ida y vuelta
Versión 2.377.1
Añadido
- Un libro de trabajo puede pedir ahora que sus subflujos de PivotCache antiguos se reescriban al guardar.
TXLSWorkbook.UpgradeLegacyPivotCacheFramingestá desactivado de forma 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 serie de correcciones de cachés de tabla dinámica de v2.376.1 a v2.376.7 alcanza también a los archivos ya existentes y no solo a la salida nueva - La actualización se aplica solo donde se puede demostrar que no cuesta nada. Una caché leída de un archivo se reemite únicamente 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 solo como bytes opacos— sigue reproduciendo sus propios bytes con la opción activada.
TXLSPivotCache.CanUpgradeFraminginforma del veredicto de una caché, yRawFramingIsLegacy/RawModelIsCompleteinforman de las dos partes en las que se basa - Una caché actualizada se escribe donde estaba su subflujo en lugar de moverse por delante 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 entregada después 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 mediante el constructor de gráficos compartido y viaja en la lista de registros de la hoja, de modo que la disposición del archivo coincide con lo que el lector vuelve a adjuntar al abrir; una ida y vuelta devuelve el marco con su modelo de gráfico —series, título y referencias de rango intactos
Corregido
- Los registros SeriesText descodifican su carga útil de cadena con el ancho correcto: el lector pasaba el recuento de caracteres donde se esperaba un recuento de bytes, de modo que las leyendas de 16 bits y las etiquetas de serie volvían 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 hay 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 escribía antes un esquema propio, comprimiendo cada campo en los bits justos para contar sus valores y empaquetando muchas filas en un registro, que ningún otro programa podía descodificar y que contradecía el indicador de más de 255 valores que la definición del campo ya llevaba
- Excel ya 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 es de lo que dependía un libro cuyos datos de origen se hubieran movido, cambiado o eliminado entretanto
- Las filas en caché también se vuelven a leer. HotXLS ignoraba antes el registro por completo, de modo que una caché cargada de un archivo volvía con cada fila apuntando al primer valor de cada campo, y todo lo calculado a partir de esa caché seguía esos valores erróneos. Esto se aplica a un libro de trabajo escrito por Excel lo mismo 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 cabecera de la PivotCache en un archivo XLS clásico se dispone como lo describe [MS-XLS] 2.4.275. El recuento 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 resultaba cuatro bytes más largo: el número de campos de caché acababa dentro del recuento de registros, la palabra de indicadores caía sobre el identificador de flujo y el recuento 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 de la cabecera dicen ahora 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 se ejecuta 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 de la cabecera se escribe como un rango de hoja de cálculo en lugar de quedarse en un valor que el formato no define, y los recuentos de campos y el recuento 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 recuento de registros de caché. Nunca se almacenó nada más en la cabecera antigua —el escritor rellenaba cada campo detrás del recuento 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 vuelven 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 recarga 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é volvía sin nombre
- El registro de definición de campo de caché se dispone como lo describe [MS-XLS] 2.4.283: grbit, ifdbParent, ifdbBase, citmUnq, csxoper, cisxoper, catm y después el nombre del campo. HotXLS escribía antes tres campos que el registro no tiene —un índice de elemento de subtipo, un formato de número y un segundo recuento 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 describe ahora 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 recuento de elementos del registro coincide ahora 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 disposició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 usan ahora 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 una ida y vuelta. 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 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 que llegó, de modo que reabrir y guardar un libro antiguo no cambia sus bytes silenciosamente
Versión 2.376.3
Corregido
- Las vistas de tabla dinámica en archivos XLS clásicos escriben ahora 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 cabecera 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 una cabecera de caché quedaba en mitad de una hoja de cálculo—, de modo que las propiedades de vista que transporta SXEx se perdían incluso después de la corrección de disposición 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 cabecera 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 llevan ahora los indicadores que se les documentan: la palabra de indicadores Chart3d por defecto establecía un bit que el registro reserva en lugar del bit de escala automática, de modo que un gráfico 3-D predeterminado se reabría con la agrupación en clúster activada pero la escala automática desactivada 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 a 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 empieza ahora 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 deduce de los bytes realmente escritos y no de una constante codificada a fuego, 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 descodifica 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 la cabecera 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 descodifican correctamente las cargas útiles de cadena de 8 bits; el anterior lector de caracteres anchos devolvía 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 incluye ahora 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 descodifica 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 solo 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 descodifica la escena de vuelta al modelo tipado (Scene3D) al leer; los gráficos que conservan las sobrecargas anteriores siguen emitiendo los valores predeterminados coincidentes con Excel byte a byte
Versión 2.373.0
Añadido
- Las series de gráficos de XLS clásico aceptan invalidaciones 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 descodifica 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 a través 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 no resoluble 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 encamina la serie a través de SerToCrt al segundo grupo; la inspección de gráficos descodifica 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 (disposición de bits de [MS-XLS] 2.4.5), y la inspección de gráficos descodifica 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 descodifica ahora la estructura de grupos de ejes: AXESUSED expone el recuento declarado de grupos de ejes y cada eje registra si pertenece al grupo AxisParent primario o secundario, con el índice de grupo transportado 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 se descodifican ahora 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 previsión hacia delante 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 asigna las líneas de tendencia y las barras de error a los contenedores canónicos compartidos en lugar de lanzar una excepción, de modo que los libros de trabajo con series de gráficos avanzadas se comparan de forma 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 en profundidad en ambos motores de libros de trabajo: cada fórmula se evalúa una vez a través del grafo de dependencias en una superposición de resultados aislada, de modo que las celdas dependientes leen de esta pasada y no de cachés obsoletas, los fallos de evaluación se clasifican en categorías tipadas (argumentos no admitidos, referencias circulares, referencias externas denegadas o ausentes, tablas de datos omitidas, cancelación, fallos internos) con códigos de resultado, y cada fallo lleva una pila de llamadas acotada
- La auditoría respeta un presupuesto de incidencias 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 confirma los valores recalculados atómicamente tras una pasada completamente correcta 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 shims de compatibilidad, a la vez que comparten los nuevos campos de informe
Versión 2.366.0
Cambiado
- La exportación PDF monta ahora los documentos mediante 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 montan en un spool acotado que recibe los parches de contenido de ByteRange y de la firma antes de una única copia hacia delante
- Las cargas útiles de los adjuntos PDF se copian de sus spools de proveedor al documento final en bloques de tamaño fijo y hacen referencia a su tamaño de flujo a través de un objeto de longitud indirecta, manteniendo plana la memoria máxima para adjuntos de varios cientos de megabytes
Corregido
- Los resúmenes de firma se calculan ahora incrementalmente sobre los dos rangos de bytes cubiertos del documento montado, 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 examinando los bytes montados
Versión 2.365.0
Añadido
- El texto visible de la firma PDF se representa ahora a través de la canalización de fuentes Unicode incrustada, con alineación a la izquierda, centrada o a la derecha, 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 forma determinista antes de calcular el resumen
- Los adjuntos PDF exponen una directiva explícita de nombres duplicados, envían a un archivo temporal las cargas útiles grandes del proveedor por encima de un umbral de bytes configurable y rechazan los nombres hostiles para las hojas que contengan separadores de ruta o caracteres de control
Cambiado
- Los árboles de nombres de adjuntos PDF se ordenan ahora por los bytes de su nombre codificado conforme a ISO 32000-1 7.9.6, y la colección de adjuntos permanece congelada mientras se ejecutan los proveedores, de modo que las adiciones reentrantes fallan de forma 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 circulares 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 fallo seguro frente a recortes, escapes y registros privados
Versión 2.363.0
Añadido
- Las imágenes EMF y WMF incrustadas se reproducen ahora a través de una lista blanca de registros seguros ampliada: pilas de estado de contexto de dispositivo con guardado y restauración, asignación de ventana y de ventanilla con transformaciones universales, tablas de objetos de pluma y pincel incluidos los objetos 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 forma segura hacia la alternativa de mapa de bits acotada en lugar de invocar la reproducción de metarchivos de la plataforma
Corregido
- Las imágenes WMF analizan ahora la disposición estándar de cabecera de registro de dos bytes, de modo que se descodifican los metarchivos colocables y estándar reales y no solo los casos de prueba sintéticos
Versión 2.362.0
Añadido
- El XLS clásico y el XLSX conservan ahora el estado de matriz de fórmulas de tabla, los modos IME tipados de validación de datos, las sugerencias de subprocesos 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
RecalcAndVerifydevuelve una auditoría de cálculo estructurada y acotada con categorías estables de caché, análisis, función ausente y nombre ausente, sin alterar las cachés de fórmulas ni la semántica del libro de trabajoTXLSPageImageExporter.ExportRangerepresenta 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, representa 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, conmutadores independientes de objetos, líneas de división 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 reciben ahora 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 recuento total de páginas y la hoja de cálculo de origen, se disparan exactamente una vez por cada fotograma representado, 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 lanza 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 seguimiento 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 descodificador vectorial acotado de EMF y WMF valida cabeceras, 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 matriz de fórmulas de tabla y modos IME tipados de validación de datos, mientras que las fórmulas de tabla de matriz ya no se expanden silenciosamente como fórmulas escalares por fila
Versión 2.361.99
Cambiado
- El PDF etiquetado automático emite ahora 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 único XObject; las imágenes sin texto alternativo siguen siendo artefactos decorativos
Versión 2.361.98
Corregido
- Las fórmulas de búsqueda que examinan un rango que cubre su propia celda (VLOOKUP, HLOOKUP, LOOKUP, XLOOKUP, XMATCH, MATCH) ya no informan de errores falsos de referencia circular durante el recálculo, mientras que las ediciones dentro del rango examinado 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 conservan al regenerar el texto de la fórmula, en lugar de colapsar 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 conservan 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 exponen ahora una directiva compartida de visualización de objetos de tres estados, con conservación sin pérdidas del origen no modificado y asignación entre formatos; los objetos ocultos ya no expanden la salida paginada o HTML ni entran en las rutas de representación de dibujos y medios
- El visor de libros de trabajo representa 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 forma predeterminada y ofrecen una opción explícita de marcador de posición que evita la descodificació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 conservan ahora 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 mediante distancias absolutas del gráfico y representan una colocación coherente 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 procedentes de celdas pertenecen ahora 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, una alternativa de caché externa, traducción de fórmulas durante las copias y la expansión de informes, y una composición coherente 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 conservan ahora las cachés jerárquicas dispersas y los rangos bidimensionales en vivo, construyen tramos con conocimiento 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 representan etiquetas y separadores de jerarquía coherentes 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 deducen ahora 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 deducen etiquetas, coordenadas, marcas y líneas de división 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 conservan ahora los formatos de número del eje y el estado de vínculo al origen, representan 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 conservan ahora si las unidades de calendario base, principales y secundarias y la detección automática de categorías se omitieron o se suministraron 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 asignar la configuración activa al modelo de eje XLSX
Versión 2.361.90
Cambiado
- Los gráficos de eje de fechas XLSX conservan ahora el espaciado continuo de las fechas y representan 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 respeta también las marcas secundarias y las líneas de división configuradas
Versión 2.361.89
Añadido
- El visor de libros coloca ahora en mosaico fondos de hoja válidos detrás de las celdas sin relleno, mientras que la impresión, PDF, SVG, mapa de bits, metarchivo y la salida HTML clásica o XLSX exponen una opción explícita
ExportSheetBackgroundImagesque está desactivada por defecto
Cambiado
- El renderizado paginado de fondos conserva ahora la fase de mosaico relativa a la hoja entre páginas, decodifica cada fondo una vez por sesión de renderizado, reutiliza un único XObject de imagen PDF o recurso SVG y se salta las cargas corruptas con un solo diagnóstico
Versión 2.361.88
Añadido
- Las hojas clásicas exponen ahora 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 de la carga, reconstruyen las cargas de mapa de bits como datos BMP estándar, preservan byte a byte los formatos nativos no admitidos y desconocidos con sus diagnósticos, copian en profundidad la propiedad de los fondos y convierten los fondos conocidos en ambas direcciones entre XLS y XLSX
Versión 2.361.87
Corregido
- Las copias de hojas XLSX conservan ahora los bytes de la imagen de fondo y el tipo de medio tanto en copias dentro del mismo libro como entre libros; las copias dentro del mismo libro reutilizan el medio de origen conservado y las copias entre libros reasignan la propiedad del medio antes de guardar
Versión 2.361.86
Añadido
- Los libros XLS clásicos y XLSX exponen
AllowUnsafeFormulaCallbacks, mientras que la evaluación contextual ofrece la opción equivalente por llamada y el estado estructuradoxlfeUnsafeFunctionDenied
Seguridad
- Los nombres de fórmula peligrosos externos y de estilo macro ya no llegan por defecto a los controladores de funciones de usuario locales del libro, de proceso, del resolutor o de eventos, y el rechazo se produce antes de evaluar los argumentos de la fórmula
Versión 2.361.85
Añadido
- Los libros XLS clásicos y XLSX exponen
AuditFormulaSymbolspara diagnósticos estructurados de funciones desconocidas, nombres desconocidos y sintaxis en celdas de fórmula y nombres definidos, con estadísticas por operación de fórmulas únicas y de aciertos de caché
Cambiado
- Las funciones y los nombres desconocidos conservados evalúan ahora a errores
#NAME?de Excel a través de las rutas de cálculo directa, dependiente, contextual, en serie y en paralelo - Los cambios de registro de funciones de usuario locales del libro o de proceso y los cambios de fórmula de nombres definidos invalidan ahora el estado de cálculo afectado antes del siguiente recálculo
Corregido
- Los errores de fórmula leídos de celdas en caché dependientes permanecen ahora como errores tipados en lugar de entrar en 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 aplica ahora de forma atómica la directiva de entrada de fórmulas del libro de trabajo, de modo que el rechazo estricto deja el valor de celda, la caché de fórmulas y las dependencias sin cambios, mientras que el modo de conservación almacena las funciones y los nombres desconocidos
Cambiado
- El XLS clásico escribe las llamadas desconocidas conservadas mediante tokens de funciones de usuario de complementos BIFF y retiene el texto de los nombres desconocidos conservados a lo largo 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 conserva ahora las referencias estructuradas válidas anidadas y de la fila actual, y ya no reutiliza texto de columna obsoleto mientras examina una referencia de tabla sin resolver
Versión 2.361.83
Cambiado
- La asignación de valores en XLS clásico y XLSX aplica ahora
FormulaEntryPolicy.EmptyStringModede manera coherente: el modo predeterminado borra las cadenas vacías exactas, el modo de conservación almacena una cadena vacía constante, yNulloUnassignedsiempre borra la celda - La carga nativa de XLS, XLSX y ODS, junto con la conversión de XLS a XLSX y de XLSX a XLS, conserva ahora las cadenas vacías constantes de confianza sin confundirlas con celdas ausentes ni con fórmulas como
="" - Los escritores de filas o columnas de cadenas y Variant de XLSX conservan las rutas rápidas del almacenamiento empaquetado, dejan las entradas borradas como ausentes y almacenan cadenas vacías exactas solo en el modo de conservación
Versión 2.361.82
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora una
FormulaEntryPolicycompartida, mientras que ambos motores de hojas de cálculo proporcionan métodosValidateFormulaEntrysin mutaciones que devuelven una incidencia, 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 distingue ahora una entrada vacía exacta de las fórmulas que devuelven una cadena vacía, separa las funciones desconocidas, los nombres desconocidos, los fallos 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 reasignan ahora de forma coherente en XLS y XLSX las áreas de selección ordenadas y el área activa de cada panel, conservan el orden de las áreas supervivientes y crean una celda de frontera como alternativa cuando se han eliminado todas las áreas
- La normalización de selecciones de panel grandes, la edición estructural y las consultas utilizan ahora constructores lineales amortizados y crecimiento de capacidad en lugar de copias repetidas de cadenas completas o de matrices
Corregido
- El XLS clásico conserva ahora byte a byte los cuerpos de registros
Selectionmalformados o contradictorios mientras informa dexlsDiagnosticSelectionRecordInvalid, en lugar de exponer un estado tipado parcialmente fiable
Versión 2.361.80
Añadido
TXLSWorksheetyTXLSXWorksheetexponen ahora los métodos homólogosTryGetWindowScrollyScrollWindowpara 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 conserva ahora de forma independiente los ejes superior, inferior, izquierdo y derecho compartidos a lo largo del guardado, la apertura y la copia de hojas en XLS y XLSX, mientras que los paneles ausentes y las coordenadas no válidas fallan sin alterar 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
Selectionde BIFF consecutivos en una única secuencia lógica, conservan 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 fragmentos consecutivos conformes al estándar, manteniendo un único índice agregado del área activa en todos los fragmentos
Versión 2.361.78
Añadido
TXLSWorksheetyTXLSXWorksheetexponen ahora los métodos homólogosGetSelectedAreasySelectAreasconscientes del panel mediante el tipo compartidoTXLSPanePosition
Cambiado
- Las consultas de selección de panel devuelven instantáneas ordenadas propiedad de quien llama con el índice del área activa, conservan las áreas superpuestas 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,TXLSWorkbookyTXLSXWorkbookexponen ahora los métodos homólogosSaveSemanticSnapshoten flujo yComputeSemanticHashincremental de SHA-256, con perfiles Content y SecurityComplete además de opciones explícitas de estado del visor, metadatos volátiles y 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 mantienen una concesión de lectura, de modo que las mutaciones públicas concurrentes fallan antes de alterar el estado del libro de trabajo
Versión 2.361.76
Añadido
- El modelo de gráficos tipado del XLS clásico expone ahora los títulos de 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 identifica ahora 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 circular y de anillo se descodifican 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 demuestran ahora el mismo flujo de trabajo de contexto de datos de informe compilado, tabla en memoria, acceso estricto a datos, continuación tras fallos recuperables, hoja de diagnóstico, resultado de ejecución inmutable y salida atómica a archivo
- El tema de informes compilados ofrece ahora ejemplos homólogos 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 coincidente en 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,RunToFileyRunToEncryptedFilecomparten ahora una única transacción de salida que publica un libro de trabajo serializado solo cuando la generación y el guardado del informe se han completado- La salida de informe sin cifrar conserva 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
- Los fallos de serialización, sustitución, cancelación y los fallos fatales del informe dejan sin cambiar los flujos, archivos y archivos cifrados de destino existentes, y liberan las sesiones de datos por ejecución y el almacenamiento temporal antes de devolver el control
Versión 2.361.73
Añadido
- Las bandas de informe de rango con nombre y de tabla de Excel exponen ahora
ErrorMode,StrictDataAccess,RuntimeLimitse instantáneas inmutables deLastResult, con un estado de bandaCompletedWithErrorsdiferenciado
Cambiado
WriteAndContinuepuede escribir un fallo 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 continuar 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, conservando los valores numéricos, de fecha, booleanos y demás valores Variant admitidos durante la evaluación de expresiones
Corregido
- Los fallos 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, borran los indicadores de diagnóstico revertidos y publican cero destinos aplicados
Versión 2.361.72
Añadido
TXLSReportRuntimeLimitsacota el número de incidencias de ejecución retenidas, la longitud saneada de los mensajes y la memoria dedicada a las incidencias, mientras queRuntimeDiagnosticsSheetNameescribe opcionalmente una hoja de diagnóstico estructurada- Los errores de datos explícitos del resolutor, la división por cero en expresiones y las expresiones regulares no válidas incorporan ahora categorías de incidencia y códigos de error estables del proveedor o de la expresión
Cambiado
WriteAndContinueconserva los destinos seguros que no son celdas y registra su incidencia, mientras que los nombres de hoja y las fórmulas de nombres definidos siguen siendo destinos estructurales de fallo inmediato- Los resultados de errores de datos del resolutor siguen siendo recuperables cuando se sirven desde la caché de alias por ejecución, mientras que las excepciones lanzadas por un resolutor siguen siendo fatales
Seguridad
- Los mensajes de ejecución se detienen en la primera línea, ocultan las formas habituales de credenciales y tokens de portador, y aplican los límites de recuento, longitud y memoria antes de alterar el destino que está fallando
Versión 2.361.71
Añadido
- Las celdas exactas
{{#usertable(alias, logicalName, providerKey, name=expression)}}se compilan en declaraciones de tabla diferidas y tipadas, yTXLSCompiledReportTemplate.UserTableCountinforma del número de declaraciones por separado de los destinos de salida TXLSReportTemplateChecker.DataContextcomprueba de antemano las claves de proveedor registradas, los límites de parámetros tipados, las declaraciones malformadas y los conflictos de alias sin distinción entre mayúsculas y minúsculas, sin invocar ningún resolutor
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 ejecución actual y solo resuelven una tabla declarada cuando
dbvalueodbcountreferencia su alias por primera vez - Las declaraciones iguales repetidas comparten una misma petición, mientras que las que reutilizan un alias con otro nombre lógico, proveedor, orden de parámetros, tipo o valor fallan indicando la celda de declaración antes de modificar el libro de trabajo
Seguridad
- Las declaraciones de tablas de usuario solo aceptan una clave 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
TXLSReportDataRequesttransmite aIXLSReportDataResolverla identidad de tabla con nombre o de usuario, parámetros tipados, ubicación de origen y control de ejecución de solo lectura; sus estados de resultado explícitos distinguen los desenlaces sin gestionar, resueltos, no encontrados y de error de datosTXLSReportDataContext.RegisterResolver,RemoveResolveryClearResolversgestionan un registro de resolutores con nombre sin distinción entre mayúsculas y minúsculas, mientras queTXLSReportDataLimitsacota alias, resolutores, parámetros, nombres, mensajes y esquemas de tabla devueltos
Cambiado
- Cada sesión de datos de informe toma una instantánea del registro de resolutores en forma de búsqueda O(1), mantiene la autoridad de las tablas explícitas, adapta los proveedores de tablas heredados, almacena en caché las peticiones tipadas por alias y rechaza un alias reutilizado cuyo nombre lógico, proveedor, orden de parámetros, tipo o valor difiera
- Los ejecutores y las bandas de informe transmiten ahora un control de cancelación seguro para subprocesos durante toda la resolución de datos, se detienen tras una cancelación sin confirmar el destino activo y dejan el alias cancelado disponible para un reintento limpio en lugar de almacenar la cancelación como error de datos
Seguridad
- Las peticiones de datos tipadas rechazan caracteres de control, coordenadas de origen negativas, nombres de parámetros duplicados, matrices Variant no admitidas o referencias, cadenas excesivas, demasiados alias o proveedores y esquemas de tabla desmesurados, todo ello antes de emprender trabajo no seguro o de modificar el libro de trabajo
Versión 2.361.69
Añadido
TXLSXWorksheet.ClearRowHeightyClearColWidtheliminan una invalidación explícita de dimensión sin alterar el resto de los metadatos de fila o columna
Cambiado
- Los destinos de informe compilados terminan ahora la evaluación de expresiones antes de invocar el formato dinámico, y confirman el contenido de celdas, formatos numéricos, alturas de fila y anchos de columna a través de una única frontera de reversión
- Los diagnósticos de celda recuperables deducen los estilos de fuente roja y relleno amarillo de la fuente ya existente en la celda, conservan el resto del estilo de la celda y reutilizan estilos agrupados entre fuentes base iguales y ejecuciones repetidas del ejecutor
Corregido
- Un fallo de evaluación recuperable ya no deja atrás formatos numéricos dinámicos ni dimensiones explícitas de filas y columnas, y las escrituras de diagnóstico borran ahora 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, recuento aplicado, detalles del fallo e incidencias de ejecución ordenadas WriteAndContinuepuede sustituir los fallos de datos de celda explícitamente recuperables por diagnósticos literales y terminar comoCompletedWithErrors, mientras que el modoStoppredeterminado sigue siendo compatible
Cambiado
- El acceso estricto a datos informa de tablas ausentes, acceso aleatorio no disponible, filas y campos que faltan mediante códigos de error estables cuando no existe una alternativa explícita en la plantilla
- Solo los fallos de datos marcados explícitamente como recuperables pueden continuar; los fallos estructurales, de devolución de llamada, de cancelación, de recursos, de seguridad, de serialización y demás fallos fatales siguen deteniendo el informe
Corregido
- Los fallos de salida a archivo y a archivo cifrado publican ahora un resultado de ejecución fallida en lugar de conservar un resultado completado de la fase anterior 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 resuelven ahora
dbvalueydbcountmediante una sesión de datos aislada por cada ejecución lógica - Los alias repetidos se cargan una sola vez dentro de una ejecución, las ejecuciones posteriores vuelven a cargar los datos del proveedor, las ejecuciones concurrentes conservan cachés independientes y ambas pasadas de
PreprocessAndRuncomparten una instantánea de tabla coherente - Las expresiones de las bandas de informe solo vinculan sus variables de fila o columna, de modo que los nombres de tabla literales y las variables de ubicación integradas ya no se confunden con columnas de origen
Corregido
- Las sesiones de datos de informe y sus instantáneas de proveedor se liberan tras una ejecución correcta, cancelada o fallida, incluidas las excepciones del proveedor y los reintentos reutilizables del ejecutor
Versión 2.361.66
Añadido
TXLSReportDataContext.BeginRundevuelve una instantánea aislada deIXLSReportDataSessioncon inspección de estado y recuentos de alias resueltos o en caché
Cambiado
- Las sesiones de datos de informe emplean una caché hash sin distinción entre mayúsculas y minúsculas para las tablas explícitas, los resultados diferidos de proveedores, los alias ausentes y los errores de datos de proveedor
- Cada alias distinto llega como máximo una vez por sesión a la cadena de proveedores, los resultados del proveedor permanecen vinculados al alias solicitado y la recursión con un mismo alias falla de inmediato
- Las llamadas directas a
TXLSReportDataContext.TryGetTableyRequireTableconservan una caché de compatibilidad aparte que se invalida cuando cambian los registros
Versión 2.361.65
Añadido
IXLSXImageBlobyTXLSXImageBlobproporcionan cargas útiles inmutables de mapa de bits y SVG con resúmenes SHA-256 de un solo uso, tamaño en bytes y una clave de caché opcionalTXLSReportImageResult.CacheKeypermite a un proveedor de imágenes V2 identificar explícitamente el contenido reutilizable, mientras que el contenido en conflicto para una misma clave se rechaza antes de modificar la hoja de cálculo
Cambiado
- Las imágenes de informe repetidas comparten una carga útil inmutable por clave de caché explícita o por coincidencia exacta del resumen, al tiempo que conservan anclas y transformaciones independientes
- XLSX y ODS guardan una sola vez cada carga útil de imagen distinta, reutilizan su relación de medios en todas las hojas y restauran las cargas útiles compartidas al volver a abrir el libro de trabajo
- La reapertura de XLSX restaura ahora los datos SVG acompañantes a partir de las relaciones de extensión de DrawingML y los empareja con la alternativa de mapa de bits
Versión 2.361.64
Añadido
TXLSReportImageResultpuede declarar dimensiones en píxeles del origen y DPI, mientras que las peticiones y los resultados de imagen exponen desplazamientos de destino relativos al ancla en EMUTXLSXImage.OffsetXEMUyOffsetYEMUpreservan la colocación de la imagen dentro del ancla a lo largo de los ciclos de guardado y apertura en XLSX y ODS
Cambiado
- El enlace de imágenes V2 deduce la geometría física de las cabeceras PNG, JPEG, GIF, BMP, EMF y WMF, aplica el dimensionamiento Natural, Contain, Cover o Stretch, y centra las imágenes contenidas sin descodificar sus píxeles
- La geometría de mapa de bits se rechaza antes de modificar la hoja de cálculo cuando las cabeceras están truncadas, las dimensiones declaradas discrepan, un lado supera los 100 000 píxeles o el tamaño total descodificado excede los 100 millones de píxeles
Versión 2.361.63
Añadido
IXLSReportImageDataProviderV2puede devolver bytes de imagen o flujos prestados 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 o redimensionar una imagen antes del enlace, 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 posicionables 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 incoherentes, anclas no válidas y desplazamientos 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 materializadas, sin examinar las celdas generadas de la hoja de cálculo
Versión 2.361.62
Añadido
TXLSCompiledReportRunneryTXLSReportGeneratoraceptan ahora unIXLSReportImageProviderexistente con políticas para imágenes ausentes y para celdas de directivasTXLSReportImageBinder.ApplyTargetvincula una directiva de imagen precompilada sin examinar celdas ajenas de la hoja de cálculo
Cambiado
- Las celdas exactas
{{#image Key}}se compilan en destinos de informe tipados, permanecen sin cambios cuando no hay proveedor configurado y reutilizan su clave compilada y sus coordenadas entre sesiones del ejecutor
Versión 2.361.61
Añadido
TXLSCompiledReportRunnerexpone ahora eventos emparejados de generación de libros y hojas, con identidad estable de hoja, coordenadas originales y actuales, datos de informe de solo lectura, recuentos de destinos, cancelación y detalles del falloTXLSReportGeneratorejecuta plantillas de libro, archivo, flujo o archivo cifrado mediante eventos de ciclo de vida de lectura de plantilla y generación, con modificación in situ o por clonación atómica seleccionable
Cambiado
- La generación de informes congela el conjunto original de hojas, vuelve a compilar tras 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 el fallo, y preserva la primera excepción
- Los flujos de informe siguen siendo propiedad de quien llama, los flujos de plantilla posicionables restauran su posición, los flujos de solo avance se consumen en bloques acotados, y los destinos de flujo, archivo y archivo cifrado solo cambian tras una finalización correcta
- Los informes compilados sin controladores de ciclo de vida conservan el bucle directo de destinos, sin exámenes 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 exponen ahora
HasWebAddinTaskPanes,WebAddinTaskPaneCountyRemoveWebAddinTaskPanespara inspeccionar y eliminar con exactitud los paneles de tareas de la raíz del paquete
Cambiado
- La eliminación de paneles de tareas de complementos web valida ahora un grafo de relaciones interno acotado antes de la modificación, conserva las partes del paquete compartidas y no relacionadas, elimina los descendientes exclusivos y las partes de relación propias, reconstruye los tipos de contenido, impide la resurrección de copias de origen y es idempotente
- Los libros de trabajo XLS clásico y ODS informan de que la eliminación de paneles de tareas de complementos web no está admitida, sin examinar el contenido del paquete
Versión 2.361.59
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora las propiedades homólogas
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 solo se omiten los registros clásicos
XCT/CRNo el contenidosheetDataSetde XLSX, conservando las definiciones de vínculos, los nombres definidos, las relaciones, el XML desconocido y las cachés en memoria - Las directivas de vínculos externos conservan ahora sin pérdidas los valores reservados del origen hasta que se editan, se convierten entre XLS y XLSX, preservan las partes comprimidas del paquete sin cambios y nunca inician acceso a archivos externos ni a la red
Versión 2.361.58
Añadido
TXLSHTMLExportyTXLSXHtmlExportSessionexponen ahora la instantánea inmutableRenderGeometryque utiliza 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 mediante la geometría de ancho máximo de dígito de cada backend, en lugar de factores de conversión codificados a fuego o unidades de carácter CSS
- Las exportaciones HTML de libro de trabajo, hoja, rango y multipágina incrementales capturan una calibración local de la operación con una caché de métricas acotada, y nunca 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 capturan ahora instantáneas inmutables de geometría de renderizado diferenciadas, con cachés de métricas acotadas adaptadas a cada backend
- El renderizado de páginas compartido y el ajuste de línea en SVG utilizan 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, sin alterar las alturas de fila ni los anchos de columna almacenados
Versión 2.361.56
Cambiado
- El Autoajustar de XLS clásico y XLSX captura ahora un servicio inmutable de geometría de renderizado del libro por operación, que incluye medición de texto calibrada, ajuste de línea, interlineado, márgenes de celda y las fuentes visibles reales de XLSX
- La paginación captura ahora la geometría local del libro en cada construcción, elimina el estado global del proceso de fuente normal y de ancho máximo de dígito, y aplica anchos de columna implícitos calibrados sin modificar 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 crean ahora servicios inmutables de geometría y de medición de fuentes propiedad de la operación, con cachés locales acotadas, conversiones de ancho compartidas y sin caché global de proceso de DPI ni de ancho base para el Autoajustar
Versión 2.361.54
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora valores validados de
TXLSRenderCalibration, además de instantáneas independientes deCaptureRenderCalibrationy valores predeterminados deResetRenderCalibrationpara futuras operaciones de renderizado
Versión 2.361.53
Añadido
- La carga de XLSX ahora informa de
xlsDiagnosticPrinterSettingsRelationshipInvalidcuando la relación de configuración de impresora de una hoja falta, tiene un tipo erróneo o queda colgante
Cambiado
SaveXLSWorkbookAsXLSXySaveXLSXWorkbookAsXLStransportan ahora de forma independiente los campos tipados de configuración de página y los bytes opacos del controlador de impresora, con prioridad de 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 rechaza ahora configuraciones de impresora desmesuradas 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 de las copias, además deClearPrinterDriverDatapara el control directo de la carga útil opaca del controlador de impresora
Corregido
- Al borrar los datos del controlador de impresora en XLSX se eliminan ahora su relación de hoja de cálculo y su parte binaria del paquete, incluso cuando la conservación de partes no admitidas está activada
Versión 2.361.51
Cambiado
- La carga y el guardado de XLSX conservan ahora 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 exacta al byte, mientras que las partes de origen sin cambios pueden retener su carga útil comprimida original
Versión 2.361.50
Cambiado
- La carga y el guardado del XLS clásico conservan ahora la carga útil completa del controlador de impresora BIFF
PLSjunto con cada segmentoContinueinmediatamente posterior - Las cargas útiles del controlador de impresora se copian en profundidad 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 una configuración de impresora ausente o sin inicializar de valores definidos
Cambiado
- Al guardar una hoja clásica intacta se conserva ahora la ausencia del registro BIFF
Setupy se retiene cada byte de un registro existente de 34 bytes, incluidos los bits de indicador reservados y no modelados - Los establecedores de la configuración de página crean ahora un registro
Setupausente solo cuando es necesario e inicializan los campos dependientes de la impresora o de la orientación según la propiedad afectada
Versión 2.361.48
Añadido
SaveXLSXWorkbookAsXLSconvierte ahora un libro de trabajo con modelo XLSX a BIFF8 mediante sobrecargas de archivo y de flujo, preservando los valores cargados, las fórmulas, los estilos básicos, 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 en uso 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 empaquetadas 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 homólogos
ApplyBiffPalettePlan, que validan y aplican atómicamente 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 preserva la salida histórica de la paleta
Cambiado
- La aplicación del plan de paleta valida ahora la generación del origen, el hash del origen, todas las identidades y colores de ranura, los recuentos agregados, los bloqueos de conservación, los indicadores de cambio y los destinos opacos antes de la primera modificación, y después reconstruye una sola vez el comparador OKLab en caché
- Los guardados BIFF8 optimizados dejan la paleta aplicada en el libro tras el éxito, 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 permanecen sin cambios
Versión 2.361.46
Añadido
- Los libros de trabajo XLS clásico y XLSX exponen ahora los métodos homólogos
BuildBiffPalettePlan, que devuelven 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 planificación de la paleta BIFF preserva ahora los consumidores indexados y los colores exactos existentes antes de asignar las ranuras libres, y solo entonces emplea una agrupación OKLab determinista ponderada por frecuencia cuando los colores directos y los de tema resueltos exceden 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 recuentos 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 homólogos
ScanIndexedColorUsage, que devuelven un inventario determinista de 56 ranuras con índices públicos y físicos, valores ARGB normalizados, recuentos de definiciones y referencias, clases de consumidores y bloqueos de conservación
Cambiado
- El examen del uso de colores indexados abarca ahora 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 alterar el estado del libro
- Los colores indexados del formato condicional se conservan ahora en ciclos de ida y vuelta 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 homólogos
NearestIndexedColor, que devuelven el índice público de paleta más próximo, 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 próximo comparte ahora una única implementación OKLab en caché entre ambos motores de libros de trabajo y el gestor 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 próximo solo examinan 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 homólogas de
ResolveIndexedColor, que clasifican índices de color públicos, valoresicvde BIFF y colores indexados de OOXML, devolviendo metadatos de paleta, automático, sistema o no válidos - El resultado tipado de color indexado informa del índice en bruto, la ranura de paleta, el rol de color del 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 implícitamente el escritorio de Windows actual; quien llama puede facilitar un resolutor explícito cuando se necesita un color concreto del entorno
- Los colores del sistema de temas utilizan ahora su valor RGB de reserva almacenado, lo que mantiene la carga, el guardado y el procesamiento sin interfaz gráfica deterministas en cualquier ordenador
Corregido
- Los valores de color indexado no válidos de OOXML ya no se resuelven a negro opaco, y los valores predeterminados del gestor de colores heredado utilizan ahora los valores exactos de la paleta de 128 canales
Versión 2.361.42
Añadido
TXLSWorksheetyTXLSXWorksheetexponen ahora los métodos homólogosTryGetOutlineNode,SetOutlineNodeCollapsedySetOutlineDisplayLevelpara nodos de resumen de filas o columnas de base uno
Cambiado
- Las consultas y actualizaciones del esquema de la hoja adaptan ahora los metadatos dispersos del motor a planes comprimidos, preservan por defecto el estado de los hijos anidados y aplican los cambios de ocultación y contracción sin examinar coordenadas de hoja sin uso
- Los grupos de filas y columnas de OpenDocument conservan ahora su estado nativo de visualización anidada entre cambios directos de metadatos, ediciones estructurales, ciclos de ida y vuelta de ODS y conversión a marcadores de nodos de resumen de XLSX
TXLSXWorksheet.ToggleRowGroupedyToggleColGroupedsiguen disponibles como contenedores de compatibilidad conscientes de la dirección en torno a la API de nodos de resumen
Versión 2.361.41
Añadido
TXLSOutlineGeometrypuede construir ahora instancias comprimidas deTXLSOutlineMutationPlanpara la contracción o expansión idempotente de nodos y cambios de nivel de visualización del esquema de base uno- Los planes de mutación del esquema exponen modos explícitos de conservar, contraer y expandir hijos, manteniendo de forma predeterminada independientes los marcadores de contracción anidados
Cambiado
- Al expandir un nodo anidado del esquema se tienen ahora en cuenta los antecesores contraídos y los descendientes contraídos al deducir la visibilidad, y el descubrimiento masivo de nodos recorre únicamente los tramos materializados con un paso 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 nodos de resumen anterior o posterior, rangos de detalle anidados, niveles de resumen, estado oculto y marcadores explícitos de contracción sin examinar 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 sobreviven ahora a los ciclos de ida y vuelta de BIFF, a las copias de formato de columna, a las copias de hojas y a la fusión de registros adyacentes, mientras 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 conservan ahora 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 solo lectura dentro del contexto explícito de una celda de destino IXLSFormulaEvaluationTemplatecompila una vez un ancla de fórmula inmutable y la evalúa repetidamente en otras celdas medianteEvaluateAtoEvaluateAtWithOptions- Las opciones de evaluación de fórmulas incluyen ahora límites para la longitud de la fórmula, los pasos de elementos sintácticos, la profundidad de recursión y los bytes de matriz generada, informando del 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 matriz, 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 siguen siendo fachadas de compatibilidad sobre el evaluador contextual tipado
Corregido
- La evaluación contextual preserva ahora las variantes de error de las fórmulas y distingue los fallos de análisis, función no admitida, referencia circular, referencia externa, cancelación, duración de la hoja y límite de recursos
- Las plantillas R1C1 reutilizables traducen ahora los desplazamientos 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 desconectar los nombres definidos de libros externos confirmados sin reescribir las fórmulas ordinarias de celda- Las definiciones malformadas o no admitidas que se omiten se notifican mediante
xlsDiagnosticDefinedNameConversionSkipped
Cambiado
- La conversión sustituye atómicamente las definiciones seleccionadas por
#REF!nativo, conservando el ámbito 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, se resuelve ahora 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.Recalculateevalúa ahora los nodos de fórmula registrados de XLS clásico, XLSX y ODS en una única pasada topológica entre libros de trabajo, con detección de componentes fuertemente conexos y propagación de generaciones suciasTXLSWorkspaceRecalcResultinforma de la reutilización del grafo, los nodos sucios y evaluados, los ciclos, los dependientes bloqueados, las invalidaciones y los aciertos y fallos de la caché en tiempo de ejecución
Cambiado
- El espacio de trabajo conserva su grafo de dependencias hasta que cambian los registros o la topología de fórmulas, mientras que las ediciones ordinarias de valores solo 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 devolver valores en caché obsoletos
- Una sesión del espacio de trabajo fallida o invalidada por un ciclo retiene ahora el estado sucio local del motor, de modo que un recálculo posterior del libro reintenta las fórmulas incompletas en lugar de dar por completa una pasada parcial
Versión 2.361.34
Añadido
TXLSWorkbookWorkspace.BuildDependencyGraphcrea ahora un grafo de dependencias entre los libros de trabajo XLS clásico, XLSX y ODS registrados, conservando las identidades de libro, hoja, celda, rango rectangular y nombre definido con ámbitoTXLSWorkspaceDepGraphexpone consultas de nodos de fórmula, referencias, aristas, dependientes de celda y dependientes de nombres definidos, además de diagnósticos de comprobación de candidatos para verificar 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 podan tanto la búsqueda de dependientes como la construcción de aristas sin materializar los valores empaquetados 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 ámbito de hoja
Corregido
- Los nombres definidos ordinarios ya no se borran mientras el analizador de fórmulas comprueba la existencia de un prefijo opcional de libro externo
Versión 2.361.33
Añadido
TXLSWorkbookWorkspace.OnLoadWorkbookpuede solicitar ahora un libro externo mediante una directiva controlada por quien llama, como máximo una vez por identidad normalizada, mientras queResolveWithLoaderinforma de 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 comparten ahora un único resultado de carga en curso, y la reentrada anidada se rechaza sin esperar en un ciclo de carga entre subprocesos; el espacio de trabajo predeterminado 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 a través de un espacio de trabajo único neutral respecto al motor - Las cachés de vínculos externos del XLS clásico descodifican ahora valores numéricos, de cadena, booleanos, de error y vacíos de los registros tipados XCT y CRN en una búsqueda dispersa de tiempo constante, sin materializar hojas de cálculo
Cambiado
- La evaluación de fórmulas externas resuelve ahora los nombres de hoja antes de los mecanismos alternativos posicionales y lee de forma consistente primero un libro activo registrado explícitamente, luego una caché de archivo tipada y, por último, devuelve
#REF!, mientras que los registros destruidos se revocan sin acceso implícito a archivos ni a la red - Las identidades entrecomilladas de libros externos 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 subprocesos 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.RegisterExternalWorkbookconserva ahora 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 elegir uno silenciosamente, revoca los registros cuando se destruye un libro de destino y retiene la alternativa tipada 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 pueden ahora evaluar fórmulas a demanda mediante
xlsvEvaluateFormulase informar del resultado independiente a través deFormulaEvaluation, sin reemplazar las cachés de fórmulas almacenadas
Cambiado
- Las vistas de solo lectura concurrentes aíslan ahora los indicadores de recursión de fórmulas, los resultados escalares, las fórmulas XLSX compiladas y las matrices, mientras que las fórmulas externas XLSX utilizan ú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 resuelven ahora el índice de hoja de base uno que contienen 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 empaquetadas 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 fallo inmediato
Cambiado
- Las vistas de solo lectura de XLSX utilizan únicamente cachés de fórmulas externas almacenadas localmente 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 recuento de referencias y exclusión de escritura de fallo inmediato
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 forma neutral respecto al motor, con invalidación segura de la duración
Cambiado
- La inspección de la caché de fórmulas compartidas conserva ahora el resultado almacenado independiente de cada miembro, de modo que un seguidor sin valor en caché informa de ausencia en lugar de heredar el valor del miembro raíz
Versión 2.361.26
Añadido
TXLSXWorkbook.TryGetCachedFormulaValueinforma ahora de la presencia, procedencia y clase 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 conservan ahora los resultados ausentes 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, y las fórmulas modificadas ya no serializan resultados en caché obsoletos
Versión 2.361.25
Añadido
- Los libros clásicos exponen ahora
TryGetCachedFormulaValuecon presencia de caché, procedencia y clase de valor explícitas, 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 utilizan ahora el byte de carga útil BIFF especificado en las fórmulas ordinarias y compartidas, y los resultados de error cargados siguen siendo valores
varErrortipados entre guardado y reapertura
Versión 2.361.24
Añadido
- Los libros de trabajo clásico y XLSX proporcionan ahora una sobrecarga
CreateLoadedCellCursor(Boolean)que puede incluir vacíos almacenados 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 empaquetado 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 recorrer de estado constante y por filas las celdas de valor y de fórmula almacenadas en todas las hojas de cálculo TXLSLoadedCellKindincluye ahoraxlckError, de modo que los valores de error XLSX almacenados retienen su clase de valor distintiva
Cambiado
- Los cursores XLSX recorren directamente bloques de filas dispersas materializadas o almacenamiento empaquetado, sin ordenar celdas ni materializar valores empaquetados, y las instantáneas de fórmulas devuelven el valor en caché almacenado en cada momento sin recálculo
- Los cambios de topología en todo el libro y la liberación del libro invalidan los cursores XLSX mediante una concesión de duración compartida, mientras que las ediciones del 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 recorrer de estado constante y por filas las celdas de valor y de fórmula almacenadas en todas las hojas de cálculo TXLSLoadedCellSnapshotdevuelve identidad propia de hoja, coordenadas de base uno, estilo, clase de valor, valor y texto de fórmula sin exponer los objetos internos de celda
Cambiado
- Los cursores de celdas cargadas fallan de inmediato tras cambios en la topología de celdas, la colección de hojas o el reemplazo del modelo del libro, mientras que las ediciones del contenido de celdas existentes mantienen el recorrido válido y las instantáneas capturadas previamente sin cambios
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 prolongados y seguros
XlsValidateStructureGenerationyEXLSLoadedCellCursorInvalidatedproporcionan un contrato único de validación de fallo inmediato 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 empaquetado, las reconstrucciones de índices y las operaciones de agregar, eliminar o mover hojas hacen avanzar la generación pertinente, mientras que las ediciones del 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
TXLSForwardReaderacepta ahora entrada ODS a través de la misma superficie de devoluciones de llamada que XLS, XLSX, CSV y TSVPeakRowBufferedBytesySheetPassesStartedexponen el conjunto de trabajo máximo de filas lógicas del backend de filas compartido y el recuento de pasadas correctas por hoja
Cambiado
TXLSForwardReaderadapta ahoraTXLSRowCursorpara 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 examen separadas- Los índices de hoja del lector directo son consistentemente de base uno, 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 fallo, 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 matriz de celdas; avanzar, seleccionar una hoja, cancelar, cerrar o destruir el cursor invalida las vistas previas conEXLSRowCursorViewInvalidated- Las aperturas de flujo aceptan ahora
xsoBorrowedoxsoOwned, transfiriendo la propiedad solo tras una apertura correcta, yPeakRowBufferedBytesinforma del búfer máximo estimado de filas lógicas desde la última apertura
Cambiado
- Los fallos de parte de hoja y de inicio de pasada conservan ahora su excepción de lectura original y sitúan el cursor en el estado de fallo en lugar de aparentar 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,TXLSForwardReaderyTXLSRowCursorproporcionan ahoraIncludeFormulaText; al desactivarlo se conservan 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 se aplican ahora 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 impide que una pasada mezcle filtros o ajustes de descodificación incompatibles
Versión 2.361.17
Añadido
TXLSRowCursorabre ahora archivos ODS y flujos propiedad de quien llama, detecta automáticamente los paquetes ODS por su mimetype o sucontent.xml, precarga los nombres de hojas y transmite en flujo la tabla seleccionada medianteFindFirstyFindNextsin materializar un libro de trabajo
Cambiado
- El recorrido de filas ODS expande de forma diferida las filas y columnas repetidas, omite las celdas cubiertas como valores independientes, preserva los vacíos con estilo y los valores de fórmulas en caché, restaura las posiciones de los flujos prestados y notifica los recuentos de repetición no válidos o limitados por la cuadrícula mediante
OnSkippedRecord
Versión 2.361.16
Añadido
TXLSRowCursortransmite ahora en flujo archivos CSV y TSV o flujos propiedad de quien llama, con detección de BOM UTF-8 y UTF-16, registros entrecomillados multilínea, comillas de escape, detección del delimitador entre coma, punto y coma, tabulación o barra vertical, invalidación opcional del delimitador y reconocimiento opcional de tipos numérico, fecha ISO, booleano y error
Cambiado
TXLSForwardReaderyTXLSRowCursorcomparten ahora un backend de filas de texto pausable, preservando 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
TXLSRowCursorabre ahora libros clásicos.xlsdesde archivos o flujos, detecta automáticamente los contenedores compuestos BIFF y devuelve 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 alClose, y las pasadas repetidas deFindFirstbuscan directamente en la hoja de cálculo seleccionada
Versión 2.361.14
Añadido
- El cálculo de fórmulas admite ahora
ISFORMULApara celdas individuales, referencias entre hojas y rangos rectangulares, y devuelve una matriz booleana de la misma forma para entradas de rango sin evaluar las fórmulas referenciadas
Cambiado
- Las comprobaciones de presencia de fórmulas distinguen valores ordinarios y vacíos, miembros de fórmulas compartidas, miembros de fórmulas de matriz clásicas y de XLSX, anclas de matrices dinámicas y elementos secundarios de desbordamiento dinámico; las matrices generadas quedan acotadas 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 confirmar un flujo parcial
Corregido
- El análisis de texto de fórmulas reconoce ahora los siete literales de error estándar de Excel, lo que permite que
#REF!se propague por funciones de solo referencia, mientras que un nombre definido que se resuelve a un escalar informa de#VALUE!en lugar de#NAME?
Versión 2.361.13
Añadido
- El cálculo de fórmulas admite ahora
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 admite ahora
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
UNICHARyBAHTTEXTaplican elemento a elemento sobre rangos y matrices generadas conservando los errores locales; XLSX almacenaUNICHARcon su prefijo de función futura, mientras queBAHTTEXTsigue 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 admite ahora
COMBINAyPERMUTATIONAcon argumentos no negativos truncados, desbordamiento comprobado, difusión de matrices 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 matriz generadas, incluidos los procesos paralelos de recálculo de XLSX
Cambiado
PERMUTATIONAutiliza exponenciación logarítmica,COMBINAacorta su recurrencia multiplicativa yMUNITasigna una matriz numérica compacta escribiendo únicamente su diagonal
Corregido
- Las matrices 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 admite ahora
COT,ACOT,COTH,ACOTH,CSC,CSCH,SECySECHcon reglas de valor principal, dominio, singularidad, entrada finita y argumentos grandes para operandos escalares y de matrices con difusión
Corregido
- Las funciones de fórmula mapeadas conservan ahora los fallos escalares directos 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 con limpieza las fórmulas BIFF clásicas no admitidas
Versión 2.361.10
Añadido
- El cálculo de fórmulas admite ahora
CEILING.MATHyFLOOR.MATHcon argumentos de cifra significativa y modo omitibles, una cifra significativa independiente del signo, límites precisos de múltiplos decimales y las direcciones especificadas del modo para números negativos
Cambiado
- Las funciones de matriz 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 utiliza el prefijo
_xlfn.para ambas funciones nuevas, mientras que los guardados BIFF clásicos rechazan con limpieza las fórmulas no admitidas
Versión 2.361.9
Añadido
- El cálculo de fórmulas admite ahora
SORTBYcon ordenación estable por varias claves de filas o columnas, direcciones ascendente o descendente independientes, valores predeterminados cuando se omite la dirección, claves de rango o de matriz generada e instantáneas únicas de origen y claves seguidas de una ordenación O(n log n)
Corregido
- Los guardados BIFF clásicos fallan ahora con limpieza cuando una fórmula no puede representarse, en lugar de informar de éxito tras rechazarse un identificador interno de función futura, mientras que XLSX escribe
SORTBYcon_xlfn.y nunca añade_xlws.
Versión 2.361.8
Cambiado
- El modo de visualización de ceros de la hoja utiliza ahora 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 la medición del texto, mientras que el modo de visualización de fórmulas mantiene la prioridad
Corregido
- Las vistas de hojas XLSX analizan, escriben y copian ahora el estado de visualización de ceros mediante un único ajuste, gestionan correctamente la base de fechas 1904, preservan los aspectos 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 emplea ahora 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, conserva la alineación explícita y recibe un ancho efectivo de diseño doble no persistente sin desbordarse hacia las celdas contiguas
Corregido
- Las vistas de hojas XLSX aceptan ahora
showFormulas="1"yshowFormulas="true", conservan 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 comparten ahora un analizador léxico de prefijos de libro sensible a 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 provocan un fallo seguro TXLSXExternalLinkexpone ahora 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 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 invalida ahora las vinculaciones de fórmulas externas compiladas por revisión en lugar de reexaminar 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 siguen ahora el orden de documento de las referencias externas de
workbook.xmlen lugar del orden del archivo de relaciones; las relaciones ausentes, sin resolver o de tipo erróneo retienen ranuras vacías para que las referencias[N]posteriores no se desplacen
Versión 2.361.4
Cambiado
- La congelación de fórmulas del XLS clásico con
OnlyExternalclasifica ahora 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 empiezan por un signo igual o un apóstrofo siguen siendo cadenas literales durante la conversión de valores, y los grupos de fórmulas de matriz 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 emplean 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 resuelven ahora 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 emite ahora el indicador de supresión
showDropDowndel SpreadsheetML base solo cuandoShowDropDownestá desactivado, preservando 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 incorporan
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 ida y vuelta desde gráficos guardados
Versión 2.360.0
Corregido
- Los comentarios de nombres del XLS clásico utilizan ahora el identificador de registro
NAMECMTcorrecto ($0894); el identificador empleado previamente ($0019) pertenece aWINDOWPROTECTsegún las especificaciones BIFF
Añadido
WindowProtecteden los libros clásicos conserva el indicador de protección de ventana del libro en ciclos de ida y vuelta mediante el registroWINDOWPROTECT($0019), dando prioridad a los cuerpos capturados en bruto salvo 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 incorporan líneas de caída (
HasDropLines) y los de barras apiladas, líneas de serie (HasSeriesLines), ambos conservados en ciclos de ida y vuelta; las series pueden eliminarse de la leyenda una a una medianteLegendDeletedsin dejar de trazarse
Versión 2.358.0
Añadido
- Las bandas de informe incorporan semántica de banda fija y de conjunto de datos vacío:
EmptyBandPolicyconserva, limpia o elimina las filas de plantilla cuando el conjunto de datos está vacío (sin dejar marcadores de posición sin resolver),FixedBandescribe las copias sobre las filas inferiores sin insertar nada para las bandas de formularios tipo superposición, yDeleteLastRowcompacta la copia final para que el contenido posterior quede a ras (comportamiento del rango X)
Versión 2.357.0
Añadido
- La exportación PDF puede incrustar fuentes OpenType independientes con contornos CFF mediante un flujo OpenType
FontFile3y un descendienteCIDFontType0; los modos automático y completo retienen el programa íntegro, mientras que un subconjunto requerido no disponible falla antes de confirmar la salida OnGetFontDirectoriessuministra directorios separados por punto y coma para una familia y estilo de fuente solicitados; los árboles aceptados se examinan recursivamente una sola vez y se indexan por los metadatos internos de la fuente para una resolución alternativa en caché
Cambiado
- Las fuentes incrustadas con datos GPOS de OpenType o de kerning heredado utilizan ahora avances de glifos posicionados tanto para texto simple como para scripts complejos, manteniendo consistentes la medición, el ajuste de línea, la alineación y la colocación de glifos en el PDF
Versión 2.356.0
Añadido
- La incrustación de fuentes PDF pasa a ser una directiva configurable de cuatro modos:
FontEmbeddingselecciona el comportamiento histórico automático, la reducción a subconjunto de 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 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 fuente de reemplazo a través del contrato explícitoHandled
Versión 2.355.0
Añadido
- El recálculo del XLS clásico utiliza ahora un grafo de dependencias construido de forma 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 reexaminar todo el montículo disperso de celdas
- Las referencias circulares del XLS clásico siguen ahora
EnableIteration,MaxIterationsyMaxIterationChange; los componentes fuertemente conexos aíslan los ciclos independientes, los iteran de forma determinista y después calculan las fórmulas aguas abajo - Los archivos asociados de PDF/A-3 incorporan una sobrecarga detallada de
AddAttachmentcon nombres visibles 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 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 desactivar
UseFullPrecisionen XLS clásico, los resultados en caché de fórmulas y de tablas de datos What-If se redondean ahora 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 utiliza ahora las coordenadas de celda nativas de base cero, mantiene los fallos de cálculo fuera de la caché de éxitos y preserva la propagación de errores a través de las funciones de matriz dependientes
Versión 2.354.0
Añadido
- Los ejes de los gráficos incorporan la enumeración de modo de cruce (
Crosses: autoZero / max / min, emitida comocrossescuando no se establece unCrossesAtexplícito) y estilos de marcas principales y secundarias por eje (in,out,cross), todo ello conservado en ciclos de ida y vuelta AutoTitleDeleteden los gráficos sustituye al 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 incorporan
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 consume los colores del marcador
Versión 2.352.0
Añadido
- El formato del área del gráfico se conserva en ciclos de ida y vuelta:
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 consume 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 ida y vuelta 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 siguen ahora las opciones de diseño del grupo de trazado: GapWidth dimensiona el grupo, Overlap ensancha y junta las barras vecinas, y las agrupaciones apiladas / apiladas 100 % acumulan una barra de grupo completo por categoría en lugar de dibujar las series una al lado de otra
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 conservan su formato con independencia del orden de los grupos - Los libros XLS clásico conservan en ciclos de ida y vuelta las propiedades de documento integradas numéricas y de fecha:
CreatedDate,LastSavedDate,RevisionNumberyEditTimeMinutespersisten a través del flujo OLE SummaryInformation, omitiéndose los valores cero y eliminándose con un borrado completo
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:
SharedRevisionProtectedySharedRevisionPasswordHashse conservan en ciclos de ida y vuelta, mientras que los cuerpos de registro en bruto capturados de archivos analizados siguen prevaleciendo salvo que las propiedades se escriban explícitamente - Detección de 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 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 que llegue el bloque - Los lectores directos informan del 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 un examen de hoja BIFF se aborta por registros truncados o que no coinciden
Versión 2.347.0
Añadido
- Combinadores de conformado de tablas para informes:
Filtertransmite en flujo las filas coincidentes de forma diferida,Sortrealiza una ordenación estable por varias claves yDistinctconserva la primera fila por tupla de claves - Adaptadores de orígenes de datos:
FromDataSettoma una instantánea de unTDataSetabierto en una tabla de informe (los nombres de campo pasan a ser columnas y se restaura la posición del conjunto de datos), yFromObjectsasigna a columnas las propiedades publicadas de listas y matrices de objetos arbitrarios - Bandas de informe bidireccionales:
RunBidirectionalpermite que cada fila maestra genere sus propias columnas a partir de una tabla hija relacionada, produciendo disposiciones 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 reconfigurado 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 reserva cuando la clave falta o está vacía - Las expresiones de informes incorporan
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 solo
{{=formula(...)}}escribe ahora 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 siguen 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>}}incorpora un fragmento al 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 incorporan una directiva de recálculo al guardar:
RecalcBeforeSaveselecciona el comportamiento manual (predeterminado), recalcular si hay cambios pendientes o recalcular siempre al guardar un archivo RecalcNeededinforma de si alguna celda con fórmula o edición capturada está pendiente de cambios, yRecalcCellrecalcula el libro de trabajo y devuelve 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}}vacía 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 situada sobre 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 notificá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 cabecera local con campos clásicos centinela, los registros del directorio central emiten tamaños y desplazamientos 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 en el lado de escritura suben a 16 GB y 64 GB respectivamente; las protecciones de descompresión del lado de lectura no cambian
Versión 2.342.0
Añadido
- Las imágenes incrustadas incorporan 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 queda ahora fijado por una prueba de regresión que cubre la apertura y el reguardado de paquetes con segmentaciones
Versión 2.341.0
Añadido
- Los ejecutores de informes pueden autoajustar la salida terminada:
AutofitModeselecciona pasadas de fila, columna o ambas sobre cada hoja después de aplicar todos los destinos y antes de la serialización, yAutofitAdjustmentañade 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 frente al ancho de columna, de modo que el texto de celda multilínea producido por plantillas crece la fila igual que lo haría el Autoajustar 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 una página elegida con un factor de zoom explícito o que abra el panel de marcadores al cargar el documento
- Los metadatos XMP incluyen ahora 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 a través 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 / tras generar página - La vista previa del visor de libros de trabajo incorpora 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 ratón, paso de páginas con la rueda y desplazamiento horizontal cuando la página ampliada excede 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 activadas, escala en unidades de presentación, orientación invertida y limitación logarítmica
- Las series asignadas al eje de valores secundario se mapean 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 idénticamente a los cargados
- El modelo de gráficos incorpora 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 llevan 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 escala configurados mediante
ExportObjectAsPNG, con una contrapartida de solo mediciónGetObjectSizeque devuelve las dimensiones del objeto en puntos sin renderizarlo - Las anclas de formas de texto fuera del rango utilizado amplían ahora la superficie impresa, como ya hacían los gráficos y las imágenes
Cambiado
- El renderizador de paginación almacena en caché las fuentes de celda resueltas por pasada y memoiza las mediciones de texto repetidas, eliminando lecturas redundantes del grupo de fuentes y llamadas de medición de GDI en los bucles de reducir hasta ajustar y del ajuste de línea
Versión 2.336.0
Añadido
- La rotación del texto de celda se representa ahora 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 en torno al 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 paginan con límites de columna exactos según 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
- Alrededor 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 caja positivos con un exponente de periodo desfasado en uno, desviando los resultados respecto a los valores de Excel
Versión 2.334.0
Añadido
- Los marcadores de posición de bandas de informe que consisten en un único campo de valor escriben ahora 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, ordenación y gráficos funcionan en los informes generados
- Los estilos de tabla personalizados incorporan el conjunto completo de secciones, incluidas 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 dispara ahora
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 aplica ahora la ofuscación XOR, y los libros BIFF8 pueden seleccionar RC4 estándar mediante
EncryptionType, completando 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 respeta ahora 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 muestran ahora 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 descarta 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 rellenar y firmar formularios, o permite rellenar y firmar formularios y añadir anotaciones; los catálogos certificados referencian la firma a través de/Perms, la salida certificada ordinaria utiliza 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 emite ahora 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 la numeración de objetos cambia
Versión 2.331.0
Añadido
- Una fachada unificada de dibujo XLSX expone el orden mixto de imágenes, gráficos, cuadros de texto, anclas conservadas y grupos, con operaciones de avance, retroceso, traer al frente, enviar al fondo, agrupación sensible a la transformación 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 se conservan las invalidaciones locales, y los 60 estilos de tabla claros, medios y oscuros integrados 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 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 origen, eIXLSRange.ApplyFormatlo aplica a rangos de celdas, filas o columnas- Las escrituras masivas tipadas XLSX compatibles en orden por filas usan almacenamiento RLE empaquetado, con estadísticas públicas de celdas empaquetadas y de bytes, además de una materialización única transparente para identificadores de objeto estables
Cambiado
- Las celdas XLSX en blanco solo con estilo comparten cargas útiles con recuento de referencias con ediciones locales de copia en escritura, compactación automática en el formato masivo, actualizaciones de estilos con nombre, copia, ordenación, parche de formato, guardado y rutas de carga, y bytes de carga útil evitados medibles
- Las matrices dinámicas se transmiten directamente a los 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úbica 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 conservando las salvaguardas 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éricas de Delphi procedentes de las unidades de comparación de libros e 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íaCheckDataValidationcomprueba un valor candidato contra las reglas que cubren una celda y puede confirmarlo atómicamente 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é, reduciendo 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 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 del texto vecino en la representación 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’s 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’s
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 / botón de opción / desplegable / 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 fórmulas de celda: las referencias de la misma hoja se traducen a la ortografía OpenFormula estándar
of:=(referencias entre corchetes, separadores de argumentos con punto y coma, literales de cadena sin tocar), mientras que las referencias calificadas por hoja y estructuradas utilizan el paso directomsoxl:que el propio Excel usa para los viajes de ida y vuelta entre suites — los paquetes guardados se reabren con el texto de fórmula original de Excel
Versión 2.300.0
Añadido
- Las hojas de cálculo de derecha a izquierda ahora se renderizan reflejadas en todas partes: la exportación PDF invierte la geometría de las columnas a lo ancho del área imprimible (la columna A a la derecha, el contenido de las celdas sin tocar) 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 realiza 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 de página:Titlerenderiza una fila combinada con estilo en negrita sobre el encabezado (con su propiaTitleFontyTitleColoropcional), yFooterañade una línea debajo de la última fila de datos o de resumen ForEachFormattedCellen una hoja de cálculo recorre cada celda poblada en orden de filas o columnas y entrega su texto de visualización — con el formato de número aplicado — a través de una devolución de llamada, lista para la indexación y la 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 KPI, fórmulas
SUMIF/COUNTIFentre hojas, barras de datos, una escala de colores, un conjunto de iconos y dos gráficos se renderizan dentro del visor de libros integrado en cuanto 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 refleja la nueva demostración de Delphi, el visor integrado, la barra de fórmulas, las acciones de exportación y el registro de actividad
Cambiado
- Los ejemplos ApiTour sustituyen los diálogos de resultado modales 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 binario de referencias cruzadas: los objetos de diccionario pequeños viajan dentro de un único contenedor comprimido con Flate y la tabla xref clásica y el tráiler se sustituyen 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 de cálculo (1048576) finaliza la hoja actual y continúa en una hoja recién creada<name>_2,<name>_3…, de modo que las exportaciones ilimitadas nunca emiten un índice de fila ilegal FillTableCalculatedColumnen una hoja de cálculo inserta la fórmula de columna calculada de una columna de tabla en cada fila de datos, traducida por fila y por celda como hace la propia creación de Excel, y después 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 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 el mismo control 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 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 creado a mano se convierte en un ejemplo de API ya hecho - 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 llamante que se ejecuta sobre las filas de datos de una hoja de cálculo; las infracciones se pueden anotar con una fuente roja y un comentario con el motivo, yKeepOnlyViolationscompacta la hoja al encabezado más las filas que fallan 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 de cálculo copia el valor de anclaje de cada rango combinado en cada celda miembro cubierta, de modo que las hojas de estilo de informe con etiquetas combinadas se leen como una única cuadrícula planaAddListValidationgana una sobrecarga de matriz de cadenas que une los elementos en una única lista desplegable en una sola llamada- La exportación de conjuntos de datos (
TDataToXLS) gana el rayado de cebra (AlternatingColor, pintado en las filas de detalle impares) y una fila de totales (SummaryRow) que añade fórmulasSUMreales para los campos numéricos exportados o una lista de campos nombrada por el llamante, con una celda de tí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 los escaneos exactos y aproximados deVLOOKUP,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 del primer escaneo durante una pasada de recálculo bajo el mismo control 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 de cálculo se prepara en memoria mientras las filas se transmiten, de modo que el archivo guardado lleva 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 un límite de 255), aproximando el ajuste automático para exportaciones cuyos datos solo se conocen a medida que se transmiten; los anchos de columna establecidos explícitamente siempre tienen prioridad
Versión 2.288.0
Añadido
- La apertura de paquetes XLSX tolera prefijos de espacio de nombres no canónicos: las hojas de cálculo, 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 de cálculo 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 utilizada por varios escritores de streaming
Versión 2.287.0
Añadido
Openlee libros de Excel 2.0/3.0/4.0 (BIFF2-4): los flujos BIFF sin procesar sin un contenedor OLE se cargan con sus números, texto, booleanos, errores y resultados de fórmula en caché; 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 impulsa la decodificación del texto
Cambiado
- Los documentos BIFF2-4 se leen para obtener valores — los formatos de número y los estilos de esas generaciones no se modelan, por lo 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 renderiza el texto de visualización, coincidiendo con el comportamiento de formato condicional de Excel - Las secciones de texto de formato de número (
"ID:"@) convierten en plantilla los valores de cadena en lugar de ignorar el formato SetCellFromHtmlrellena una celda a partir de un fragmento HTML ligero:<b>/<strong>,<i>/<em>,<u>,<br>y<font color=...>se convierten en tramos de texto enriquecido; las demás etiquetas se eliminan 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 fila en la paginación, la vista previa y la salida PDF - Los controles de formulario clásicos Spinner y ScrollBar se pueden crear en archivos XLS con configuraciones Min/Max/Inc/Page y una celda vinculada, emitidos a través del subregistro OBJ FtSbs
WriteAutoValuereconoce fechasm/d/yyyyyd.m.yyyycon horas opcionales (incluidas AM/PM) más allá de la forma ISO, rechazando las fechas de calendario imposiblesConvertFormulasToValuesgana un modoOnlyExternalque congela solo las fórmulas que hacen referencia a otros libros, y la fachada clásica de XLS gana el método de hoja completa- El ajuste automático de fila 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 las hojas de cálculo como gráficos vectoriales nativos: columnas y barras agrupadas, apiladas y apiladas al 100 %, gráficos de líneas con marcadores, gráficos de áreas, 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 de escala automática, etiquetas de marcas, líneas de cuadrícula, una leyenda, etiquetas de datos por punto opcionales, rellenos sólidos por serie y la paleta de acento predeterminada de Excel; los tipos de gráfico 3D se renderizan 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 sigue apareciendo en la salida PDF y de vista previa en lugar de recortarse
Versión 2.284.0
Añadido
- Los encabezados y pies de página PDF renderizan los códigos de estilo de Excel:
&Bnegrita,&Icursiva,&U/&Esubrayado simple o doble,&Stachado,&X/&Ysuperíndice o 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 de cálculo reduciendo los rellenos, las fuentes, los bordes, las barras de datos y los iconos a gris de luminancia
- Los encabezados de fila y columna impresos (números de fila y letras de columna) se renderizan 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 de página permanecen en su lugar - Los comentarios de celda se imprimen como un indicador rojo en la esquina (modo tal como se muestra) o como una página de listado de comentarios después de la hoja mediante la nueva propiedad de hoja de cálculo
PrintCommentsAtEnd, que realiza 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 clicables dentro del documento 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 al diccionario de información del documento - Las fuentes de colección TrueType (
.ttc) pueden servir como fuente Unicode incrustada; los cortes en negrita y cursiva de la cara incrustada se sintetizan cuando solo existe una cara 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 de vista previa coinciden con los anchos de píxel almacenados por Excel
- Las líneas ajustadas se vuelven a medir desde el primer carácter de cada línea, corrigiendo las líneas ajustadas que ignoraban el ancho de las palabras desplazadas hacia abajo por un salto anterior
Versión 2.283.0
Añadido
- La exportación PDF ajusta las celdas
WrapTextcon división real de palabras, alineación horizontal línea a línea, alineación vertical de bloque y espaciado justificado o distribuido - La exportación PDF renderiza el texto de celda rotado mediante matrices de texto PDF, incluido el texto vertical apilado, y respeta
ShrinkToFitreduciendo el tamaño de fuente hasta que el valor quepa - El texto PDF que desborda una celda ahora se extiende a través de 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 a la derecha los números como Excel
- La exportación PDF dibuja tramos de texto enriquecido con estilo de fuente, tamaño, color, subrayado, tachado, superíndice y subíndice por tramo; las líneas ajustadas conservan el estilo por tramo
- La exportación PDF dibuja bordes diagonales de celda y bordes reales de doble línea
- El texto que abarca celdas combinadas ahora se dibuja, alinea, ajusta y ancla hipervínculos a lo largo de todo el rectángulo combinado, y los miembros combinados cubiertos ya no pintan su propio fondo
Cambiado
- Los anchos del texto PDF provienen de tablas de avance calibradas por carácter en lugar de un ancho de carácter medio 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 conserva la transparencia 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 fragmento tRNS
Cambiado
- Los flujos de contenido de página 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 salida como el tiempo de generación
- Las celdas adyacentes con el mismo relleno sólido se renderizan como un único rectángulo combinado, y los segmentos de borde colineales con el mismo estilo se trazan como una única pasada en lugar de bordes por celda
- Las imágenes PNG se incrustan en PDF sin decodificar ni volver a codificar, 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 hagan referencia a ellas
Corregido
- Las anotaciones de hipervínculo ahora también se crean para las celdas de enlace cuyo texto se renderiza 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 renderiza de forma idéntica en cualquier configuración regional de Windows
Versión 2.281.0
Corregido
- Los lectores del portapapeles ya no truncan el identificador de datos a 32 bits, lo que hacía que
XLSGetClipboardBiff8y la ruta de pegado de hoja de cálculo XML devolvieran vacío en aplicaciones de 64 bits - Las operaciones del portapapeles reintentan abrir el portapapeles hasta medio segundo cuando otra aplicación lo mantiene, 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’s una vez en lugar de en cada celda consultada, coincidiendo con la caché de validación de datos - La exportación PDF crea un índice de hipervínculos por hoja, sustituyendo 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:
RegisterUserFunctionenvía las fórmulas que llaman a ese nombre directamente a su controlador (sin cadena if global en un únicoOnUserFunction), y el evento del libro sigue atendiendo los nombres no registrados ScanUnknownFunctionsaudita un libro en busca de funciones de fórmula que el motor de cálculo no puede evaluar, informando de cada celda y nombre — ideal antes de habilitar el recálculo en archivos externosRecoveryMode: una parte de hoja de cálculo estructuralmente dañada 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 utiliza, 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’s una 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 de cálculo: los mapas de bits PNG/GIF/BMP se convierten en XObjects RGB comprimidos con Flate y los archivos JPEG pasan sin tocar a través de DCTDecode (sin recompresión); las imágenes idénticas en varias páginas comparten un único 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 o 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 mantenimiento) 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 por defecto hasta 9) - Guardados reproducibles:
DeterministicOutputfija las marcas de tiempo de las entradas zip de modo que guardar el mismo libro dos veces produce archivos idénticos byte a byte
Corregido
- Los archivos compuestos corruptos con cadenas FAT cíclicas ya no bloquean el cargador clásico .xls — los recorridos de cadenas de directorio y de flujo llevan protecciones de ciclo
Versión 2.278.0
Añadido
- La exportación PDF emite anotaciones de enlace clicables para los hipervínculos de la hoja de cálculo: las celdas que llevan 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 de cálculo exportada se convierte en un marcador que apunta a su primera página renderizada
Versión 2.277.0
Añadido
- La validación de datos obtiene una API de auditoría:
CheckDataValidationsexamina las celdas pobladas frente a las reglas de la hoja (pertenencia a listas, límites de número entero, decimal, fecha y hora, longitud de texto, fórmulas personalizadas a través del calculador) e informa de cada celda infractora con el índice de la regla y un motivo - Las propiedades personalizadas de documento tipadas realizan 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 realizan el viaje de ida y vuelta a través de
Workbook.CustomXmlPartscon relaciones y tipos de contenido a nivel de libro - Las imágenes aceptan un acompañante SVG:
AddImagePairalmacena los bytes SVG junto al respaldo de mapa de bits, escribe la extensiónsvgBlipy la parte multimedia adicional que consume Excel 2016 o posterior - Los gráficos pueden obtener el texto de las etiquetas de datos de un rango de celdas (“Valor de las celdas”) mediante
DataLabelsRange, que se emite como extensión del gráfico y se recupera al abrir - Estilos de tabla personalizados:
Workbook.CustomTableStylesdefine estilos con nombre con secciones coloreadas o en negrita (fila de encabezado, fila de totales, bandas, columnas de borde), escritos entableStylescon sus propios estilos diferenciales para que las tablas puedan referenciarlos por nombre
Versión 2.276.0
Añadido
- Los rellenos degradados de celda: los barridos lineales por grados y los degradados de trayecto con colores por parada realizan el viaje de ida y vuelta a través de
gradientFill, se renderizan como degradados CSS en la exportación HTML, como rellenos interpolados por bandas en la exportación PDF y en el visor de libros, y se ofrecen mediante el acceso directoTXLSXFills.AddLinearGradient - Los formatos de número de tiempo transcurrido (
[h]:mm:ss,[mm]:ss,[s]) ahora muestran totales acumulados en lugar de envolverse como un reloj, en todas las rutas de visualización (FormattedText, HTML, PDF, valores de formato condicional) - Los formatos de número de fracción (
# ?/?,# ??/??, denominadores fijos como0/8) se renderizan con la mejor aproximación racional de Excel, incluida la ocultación del entero cero y el espaciado de alineación - Los corchetes de color de estilo
[Red]ahora afloran a través deTXLSXCell.GetFormattedTextColory vuelven a pintar el texto de la celda en la exportación PDF TXLSXWorkbook.ValidateNumberFormatcomprueba una cadena de formato personalizado del mismo modo que el diálogo Formato personalizado de Excel — número de secciones, equilibrio de comillas y contenido de corchetes (colores, condiciones, unidades transcurridas, directivas de configuración regional)- El estado de los paneles congelados se puede volver a leer mediante
GetFrozenPanes, y la posición de desplazamiento del panel inferior derecho realiza el viaje de ida y vuelta a través deSetPaneScroll/GetPaneScroll(escrita comotopLeftCell) - El conmutador de visualización de encabezados de fila y columna
DisplayRowColHeadersrealiza el viaje de ida y vuelta a través deshowRowColHeaders - Los gráficos exponen
DispBlanksAs(hueco / tramo / cero) yPlotVisibleOnlyen lugar de codificarlos de forma fija, y recuperan ambos del ChartML conservado al abrir - Los comentarios llevan geometría de cuadro editable (
WidthPt/HeightPt, puntos VML) además de una heurísticaAutoSizeFromTextimpulsada por el texto
Versión 2.275.0
Añadido
- Buscar & reemplazar comprende los comodines de Excel:
*(cualquier secuencia de caracteres),?(exactamente un carácter) y~como escape de un*,?o~literal — la misma semántica que el propio Excel aplica en Buscar & reemplazar, en los criterios de la familiaCOUNTIFy en los autofiltros FindTextde la hoja de cálculo XLSX gana una sobrecarga de opciones: coincidir mayúsculas y minúsculas, coincidir con el contenido completo de la celda, buscar también 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 de cálculo 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 del mínimo, máximo, suma, promedio, recuento de valores numéricos y recuento de celdas pobladas en una sola pasadaWriteAutoValueescribe el texto del mismo modo en que lo interpreta la entrada de celdas del propio 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)GetHtmlFromCellrenderiza una celda como un fragmento HTML con estilo y marcado escapado, complementando la exportación HTML de la hoja completaSortRangeacepta un indicador que no distingue mayúsculas y minúsculas para que las claves de texto se ordenen alfabéticamente con independencia de las mayúsculas (fachada XLSX)
Versión 2.274.0
Añadido
- Las tablas de Excel ahora realizan el viaje de ida y vuelta de tablas sin encabezado y comentarios por tabla mediante las nuevas propiedades de tabla
HasHeaderRowyComment, escritas comoheaderRowCount="0"y el atributocomment - Los gráficos pueden seleccionar un estilo de galería de Excel mediante la nueva propiedad
ChartStyle(1–48 o el rango ampliado 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 la superposición del área de trazado mediante una nueva propiedad
ZOrderen cada grupo de trazado, de modo que una serie de columnas puede renderizarse detrás o delante de una serie de líneas - Las hojas de cálculo y las celdas individuales pueden congelar fórmulas en sus valores calculados mediante
ConvertFormulasToValuesyConvertFormulaToValue, conservando el resultado en caché mientras se descartan la fórmula, el enlace de fórmula compartida y los metadatos de matriz - Los nombres definidos ahora llevan un comentario opcional mediante la nueva propiedad de nombre
Comment, con viaje de ida y vuelta a través del registro clásico de comentario de nombre y el atributocommentdel nombre definido XLSX - La exportación PDF acepta dimensiones de papel personalizadas en puntos mediante las nuevas propiedades
PaperWidthyPaperHeight, que anulan la enumeración de tamaño de papel para cada hoja de cálculo renderizada - La exportación PDF puede suprimir la banda de encabezado o pie de página mediante el nuevo conjunto
HidePrintObjects - Los códigos de campo
&F(nombre de archivo) y&Z(ruta) de encabezado y pie de página PDF ahora se expanden usando la ruta del libro de origen capturada por las exportaciones basadas en archivos - Las barras de datos admiten un color de borde independiente para valores negativos mediante las nuevas opciones
NegativeBorderColoryNegativeBarBorderColorSameAsPositive, emitidas en la extensión de barras de datos de Excel 2010 o posterior - Los estilos de celda integrados cuyos identificadores no tienen 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 ahora llevan un bloque
dataIntegrityreal: el escritor emite un HMAC conforme a la especificación sobre el paquete cifrado completo, y la apertura lo verifica, detectando una contraseña incorrecta o un paquete manipulado; los archivos de escritores sin el bloque siguen abriéndose sin cambios - Los libros clásicos admiten la reserva de escritura de “contraseña para modificar” de Excel mediante
SetModifyPassword(indicador de recomendar solo lectura, hash de contraseña heredado y nombre de usuario de reserva emitidos como el par de registros WRITEPROT + FILESHARING);IsWriteReservedinforma del estado y una contraseña vacía lo elimina - Un memo opcional
RecalcLookupCacheacelera el recálculo con muchas búsquedas: los escaneos repetidos deXLOOKUP/XMATCHsobre el mismo rango reutilizan el resultado del primer escaneo. El memo solo se activa cuando se puede demostrar que el grafo de dependencias es estable en cuanto a referencias (sinOFFSET/INDIRECTni referencias irresolubles, sin cadenas circulares, sin tablas de datos What-If) y, de lo contrario, permanece silenciosamente desactivado, de modo que los resultados son siempre idénticos - Un memo
RecalcAggregateCachecomplementario acelera el recálculo de agregados condicionales: los escaneos repetidos deSUMIF/COUNTIF/AVERAGEIFsobre el mismo rango y criterio 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 realiza el viaje de ida y vuelta literalmente; 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ónLETanidada — sustituyendo la antigua implementación parcial- El texto de la fórmula 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 tramos de columna y las formas de elemento[#Data]/[#All]/[#Headers]/[#Totals]se resuelven contra las tablas de Excel del libro en tiempo de análisis, de modo que=SUM(Table1[Amount])calcula mientras el texto original de la fórmula sigue realizando el viaje de ida y vuelta literalmente; las referencias irresolubles conservan el comportamiento anterior de omitir sin valor y las formas de fila actual ([@Column]) siguen sin ser compatibles
Cambiado
- Cuando un libro desactiva la precisión completa, los resultados recalculados ahora se almacenan redondeados al número de decimales que muestra el formato de número de cada celda, coincidiendo con el comportamiento de “precisión tal como se muestra” 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 con prioridades duplicadas que hacían que Excel pidiera reparación
- Los formatos condicionales marcados con ámbito de tabla dinámica mediante la nueva propiedad
IsPivotse enrutan al bloque de extensiones en lugar del bloque principal de formato condicional de la hoja, donde Excel los descartaría o colocaría mal
Versión 2.273.0
Cambiado
TXLSXWorkbook.PreserveRawPartsahora copia las imágenes de hoja de cálculo, las imágenes de encabezado y pie de página y las partes de gráfico sin cambios con sus cargas comprimidas originales, mientras que las ediciones de datos de imagen y las ediciones del modelo de gráfico toman la ruta de serialización- Un guardado como (SaveAs) de archivo correcto 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, VBA, conexiones, vínculos externos, imágenes, gráficos, temas y cargas de tabla dinámica recién serializados sin volver a abrir el paquete de origen anterior
Corregido
- Las relaciones desconocidas de hoja de cálculo y dibujo de paquetes con ubicaciones de partes no estándar ahora se reubican contra sus propietarios canónicos generados, incluidos los paquetes de solo dibujo cuyos únicos anclajes son formas no compatibles conservadas
- Una copia fallida de un miembro comprimido ahora revierte su cabecera local parcial, bytes de carga, entradas de carpeta padre y el recuento del directorio central antes de la alternativa de serialización segura, evitando que se acumulen datos inalcanzables en el archivo de salida
Versión 2.272.0
Cambiado
- El guardado como (SaveAs) de XLSX ahora abre un único archivo de origen validado para toda la operación de guardado y copia cada parte opaca alcanzable por relación sin cambios con su carga comprimida original, evitando los escaneos repetidos del directorio central además de la descompresión y recompresión, mientras que las cargas modificadas siguen tomando la ruta de serialización
Corregido
- Las relaciones desconocidas de libro de paquetes cuyo libro usa un nombre de parte no estándar ahora se reubican contra la ubicación generada del libro, evitando que sus partes de destino conservadas se vuelvan inalcanzables después del guardado como (SaveAs)
- Las lecturas directas proyectadas ahora conservan las definiciones maestras de fórmulas compartidas fuera del conjunto de filas o columnas seleccionado, de modo que las celdas seguidoras seleccionadas siguen recibiendo sus fórmulas traducidas correctamente sin reconstruir valores no seleccionados ni texto enriquecido
- Editar un gráfico ya no elimina un formato de número de eje no modelado solo porque la creación de formatos de número de 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>además de 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 ausente 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 posición mediante las nuevas propiedades de serie
LabelNumFmtyLabelPos(con sus indicadores*Set), emitidas como<c:numFmt>y<c:dLblPos>tanto en el escritor de gráficos estándar como en el de gráficos combinados — lo que permite texto de etiqueta de porcentaje o moneda y posiciones de etiqueta como exterior al final o centro; cualquiera de las dos opciones 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 gráficos de líneas y de dispersión ahora pueden llevar un símbolo de marcador y un tamaño explícitos mediante las nuevas propiedades
MarkerSymbol,MarkerSizeyMarkerSet, emitidas como el bloque<c:marker>de la serie tanto en el escritor de gráficos estándar como en el de gráficos combinados; las series sin configurar mantienen los marcadores automáticos - Los ejes de valores con unidades de visualización ahora pueden mostrar la etiqueta de unidad (“Miles”, “Millones”, …) mediante 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 un intercepto fijo además de periodos de pronóstico hacia delante y hacia atrás mediante las nuevas propiedades
Intercept/InterceptSet,ForwardyBackward, emitidas como<c:intercept>/<c:forward>/<c:backward>; anteriormente solo el constructor 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,IMLOG2eIMLOG10, completando la familia de ingenieríaIM*con cobertura de funciones trigonométricas, recíprocas y logaritmos en base 2 y 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 gráficos de barras y columnas ahora exponen un modo de agrupación configurable (
clustered,stacked,percentStacked), un ancho de hueco de clúster y una superposición de series mediante las nuevas propiedadesBarGrouping,GapWidthyOverlap; anteriormente cada gráfico de barras o columnas estaba codificado de forma fija comoclusteredsin control de hueco ni superposición, y los grupos sin configurar permanecen idénticos byte a byte mientras la lista de fusión de edición tras abrir trata los nuevos elementos como propios
Versión 2.264.0
Corregido
- Los bordes de celda PDF ahora reflejan el estilo y el grosor de borde de la hoja de cálculo en lugar de dibujar cada borde como una línea sólida idéntica de 0.75 pt: las celdas XLSX renderizan grosores fino, medio, grueso, cabello y doble y patrones discontinuos, punteados, raya-punto, raya-punto-punto y raya-punto inclinado, y las celdas BIFF renderizan estilos fino, medio y discontinuo o punteado
Versión 2.263.0
Añadido
- La exportación PDF ahora puede incrustar metadatos de documento mediante las nuevas propiedades
DocumentTitle,DocumentAuthor,DocumentSubjectyDocumentKeywords; cuando se configura alguna, el PDF lleva un diccionario/Infocon esos campos además de 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 en exceso los campos: un espacio interno ya no fuerza el entrecomillado, 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 siguen entrecomillándose como antes
Versión 2.261.0
Añadido
- Cada serie de gráfico ahora puede llevar un color de relleno sólido mediante la nueva propiedad
SolidFillHex, emitida como las propiedades de forma<c:spPr>de la serie; asignar un color hexadecimal sella 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 edición tras abrir trataspPrcomo propio para que se reemplace en lugar de duplicarse
Versión 2.260.0
Cambiado
- El back-end de almacenamiento disperso de celdas ahora hace crecer geométricamente el búfer de cada bloque de 256 filas (duplicándolo) en lugar de reasignar en cada celda añadida, eliminando el coste de copia cuadrático al cargar hojas de cálculo 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 de cálculo ahora se vuelven a leer en el 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 y 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 formateado ahora reconoce las directivas de color
[Cyan]y[Magenta]y las directivas de paleta indexada[Color1]hasta[Color8], de modo que la salida formateada de 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, conCONVERTcubriendo unidades de masa, distancia, tiempo, presión, fuerza, energía, potencia, magnetismo, temperatura y volumen y rechazando categorías de unidades incompatibles
Versión 2.256.0
Corregido
- El texto de visualización formateado ahora renderiza correctamente los minutos en máscaras de tiempo como
hh:mm,mm:ssy[h]:mm:ss; anteriormente se usaba elmmde Delphi (mes), de modo que los campos de minutos mostraban el número del mes - Las directivas de configuración regional y moneda como
[$-409]y[$$-1009]ahora se eliminan de la salida formateada 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 comprende los archivos ZIP64, analizando el campo extra de información ampliada y el registro y 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 contraseña de los libros cifrados ahora compara el hash de verificación en tiempo constante tanto para el cifrado Agile como para el estándar, cerrando un canal lateral temporal que podría revelar cuántos bytes iniciales del hash de la contraseña coinciden
- El cifrado Agile ya no recurre a un generador pseudoaleatorio sembrado por 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 remodelado de matrices de Excel 365
VSTACK,HSTACK,TOROW,TOCOL,WRAPROWS,WRAPCOLS,TAKE,DROP,CHOOSECOLS,CHOOSEROWS,EXPAND,RANDARRAYyTEXTSPLIT, desbordando 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 gestión del número de instancia, la insensibilidad a mayúsculas y minúsculas, la coincidencia desde el final y el caso de no encontrado - 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, con 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 los caracteres reservados) para que Excel los almacene literalmente - Los tipos de relleno de formas, imágenes y cuadros de texto (sólido, imagen, degradado, ninguno, automático) ahora están tipados sobre la propiedad bruta de tipo de relleno y realizan 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 realizan el viaje de ida y vuelta del vínculo de agrupación multinivel de fechas 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 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 asistentes de contraseñas y cifrado exponen constantes con nombre de códigos de retorno
Cambiado
- Los guardados de paquetes y XLSX ahora pasan por búferes deflate más grandes con un nivel de memoria de compresión superior y omiten una pasada redundante de suma de comprobación sobre los bytes ya comprimidos, reduciendo la CPU y el tiempo real de guardado
- El crecimiento interno de los constructores de cadenas, listas y tablas hash ahora usa una asignación geométrica (duplicación) junto con un punto de redimensionado del hash más temprano, reduciendo la rotación de asignaciones y el coste de búsqueda cuando un libro 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 de cadenas compartidas grandes
Versión 2.251.0
Corregido
- La apertura y el guardado de XLSX ahora conservan las declaraciones de espacios de nombres extranjeros de la raíz del libro, los atributos de compatibilidad de marcado, las cargas útiles completas de
<extLst>a nivel de libro y sus relaciones desconocidas mientras regeneran el estado tipado del libro; las referenciasr:idpreservadas siguen la reasignación de los identificadores de relación en lugar de quedar obsoletas cuando entran en conflicto con las relaciones generadas de hojas de cálculo o del libro
Versión 2.250.0
Cambiado
- Las entradas de filas dispersas de XLSX ahora almacenan solo su columna y el identificador estable de la celda, 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 añaden lotes estrictamente hacia delante directamente a vectores de filas dispersas pre-dimensionados, y la búsqueda de celdas dispersas resuelve los aciertos de primera y última columna sin búsqueda binaria, mientras que las escrituras solapadas conservan su ruta de reemplazo existente y los identificadores de celda estables
Corregido
- La copia de partes sin procesar respaldada por archivos y la carga selectiva de hojas de XLSX ahora usan una identidad privada del archivo de origen con validación de tamaño y marca de tiempo, de modo que una apertura posterior de flujo o una asignación pública de
FileNameno puede redirigir las partes preservadas a otro libro RefreshPivotCacheahora cambia las cachés actualizadas a la serialización tipada para que los registros reconstruidos no puedan sobrescribirse con bytes sin procesar obsoletos del paquete durante el guardado- La copia de ZIP comprimidos 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
- La reutilización de un importador RTF ahora restablece el estado del analizador de páginas de códigos y formatos de caracteres entre documentos para 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 XLSX con
MetadataOnlyahora evitan las cargas útiles opacas de cadenas compartidas, personas, relaciones de hojas de cálculo, comentarios, dibujos, gráficos, tablas, tablas de consulta, tablas dinámicas y accesibles desde hojas de cálculo, al tiempo que 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 procesar las partes
connections.xmlsin cambios del paquete de origen cuando el modelo de conexiones analizado no ha cambiado, preservando la fidelidad del XML de origen y evitando descompresiones y recompresiones innecesarias, mientras sigue reescribiendo las conexiones editadas desde el modelo tipado
Versión 2.247.0
Cambiado
- El SaveAs de XLSX ahora copia sin procesar el XML de vínculos externos y las partes de relaciones sin cambios del paquete de origen cuando el modelo analizado no ha cambiado, preservando el XML de extensiones desconocidas y evitando descompresiones y recompresiones innecesarias, mientras sigue reescribiendo los vínculos editados desde el 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 global de formato
Cambiado
- La carga de estilos de XLSX ahora resuelve cada estilo de celda a través de una matriz cellXf compartida e inmutable en lugar de la construcción repetida de claves de cadena y las búsquedas lineales en mapas, reduciendo el tiempo de apertura de libros con estilos y las asignaciones temporales
Corregido
- Los bytes modificados del proyecto VBA ahora omiten la copia de partes sin procesar preservadas, de modo que guardar un libro habilitado para macros editado no puede 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 llamantes usar rutas de respaldo seguras de descompresión y reescritura
- La importación HTML ahora ignora las etiquetas de fila y 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, introducción y recálculo de fórmulas, selección rectangular de rangos, selección de referencias de fórmulas e historial circular acotado de deshacer y rehacer TXLSPivotDesignerproporciona un modelo reutilizable no visual de lista de campos con zonas de fila, columna, filtro y valor, movimiento determinista de campos, selección de agregación, validación de diseño y aplicación de resultados- Los libros XLS clásicos ahora proporcionan diagnósticos de
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 XLS y XLSX clásicas ahora proporcionan escritores tipados de filas y columnas numéricos, de cadenas y variant, con coordenadas basadas en uno, recorte en los límites de la cuadrícula, escrituras directas en el 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 ni ordenar la colección completa de celdas
Corregido
- La lectura y escritura de XLS clásico RC4 y RC4 CryptoAPI ahora preservan todos los cuerpos de registros en texto plano requeridos por
[MS-XLS], mantienenBoundSheet8.lbPlyPossin cifrar, consumen las posiciones coincidentes del flujo de claves 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 multiformato:
XLSPasteFromClipboardRichprefiere el formato de portapapeles XML Spreadsheet (que transporta fórmulas, estilos y combinaciones) al texto Unicode sin formato, 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 realiza el viaje de ida y vuelta de las entradas<definedNames>(nombre + refersTo) de los vínculos de libros externos, conAddDefinedName,FindDefinedNamey acceso indexado aDefinedNames[] - Estado de error de actualización por hoja: cada
TXLSXExternalSheetDatalleva un indicadorRefreshErrorque registra si el último intento de actualización falló, analizado desde y emitido al atributorefreshError
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 preservadas
Versión 2.241.0
Añadido
- La propiedad
TXLSXWorkbook.SelectedSheetspermite 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 original
Versión 2.240.0
Añadido
- El modo de apertura
TXLSXWorkbook.MetadataOnlyanaliza las propiedades del libro, los nombres definidos, los nombres de hoja y los 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 el descubrimiento rápido de propiedades y nombres en libros grandes
Versión 2.239.0
Añadido
- Almacenamiento compacto de celdas en 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 estilos por intervalo 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 realizan el viaje de ida y vuelta como entradas compactas de columnas, filas y celdas solo con estilo
Cambiado
- El guardado normal del libro ahora transmite cada fila de hoja de cálculo directamente al flujo deflate 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 se 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 toda la parte
Versión 2.238.0
Añadido
TXLSPaginationModelconstruye páginas lógicas reutilizables para rangos, hojas de cálculo y libros 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 colocaciones de dibujosTXLSWorkbookViewerahora proporciona vista previa de impresión con modelo compartido, navegación de páginas por 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 propietario exacto usado por el conteo y la renderización de PDF para los seis tipos de entrada XLS y XLSX
Cambiado
- La exportación PDF y el conteo de páginas ahora consumen un único motor de paginación en lugar de mantener bucles de páginas XLS y XLSX separados
- El escalado de ajustar a ancho y ajustar a alto ahora se resuelve contra las bandas reales de página, incluidos los saltos manuales y los títulos repetidos, dentro del rango de escala del 10 % al 400 % de Excel
Versión 2.237.0
Añadido
TXLSFormulaDebuggercrea una sesión interactiva propietaria que contiene el árbol de expresiones analizado, los tramos 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
- Los
Calculatede libros y hojas de cálculo ahora devuelven los fallos de fórmulas de Excel como valores de errorVariantestándar en lugar de convertirlos aNull TXLSFormulaTracerahora 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 las 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 hojas 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 reabiertos, las referencias de minigráficos locales y entre hojas, las fuentes y anclajes tipados de tablas dinámicas, las fórmulas calculadas de tablas dinámicas y las referencias reconocibles dentro del XML de extensiones de hojas de cálculo preservado
Versión 2.235.0
Añadido
TXLSDirectWriterahora añade 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 llamante sin construir un modelo de objetos completo del libro- Las imágenes se pueden suministrar como bytes, flujos desplazables con transferencia de propiedad opcional 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 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 anchos o alturas, estado oculto y contraído, niveles de esquema e í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 de llamada y completan los metadatos de la hoja seleccionada antes de vaciar las colas ordenadas de celdas de los trabajadores
Versión 2.233.0
Añadido
TXLSXChartTextStyleahora proporciona nombres de fuente tipados de títulos de gráfico, leyendas, títulos de ejes y etiquetas de ejes, 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 de los ejes 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 fuentes o diseños de gráficos tipados 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 de 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 elecciones 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 que las aplicaciones opten por la regeneración limpia del modelo tipado de 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 el contenido no relacionado en su lugar
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áficos y series conservan asignaciones independientes de ejes primarios o secundarios- Los gráficos ahora exponen ejes de categoría y de valor primarios y secundarios más un eje de serie, con configuración tipada de categoría, valor, fecha y eje de serie, incluidos 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 espacio configurables
- Las series ahora exponen cachés tipados de cadenas y números para nombres, categorías, valores y tamaños de burbuja, incluidos índices de puntos dispersos y códigos de formato numérico
Cambiado
- Las API de compatibilidad
ChartType,AddSeriesySeriesplanas siguen dirigiéndose al grupo de trazado primario mientras que el modelo de gráfico conserva todos los grupos de trazado ordenados
Corregido
- Abrir y volver a guardar gráficos combinados ya no los colapsa en una única familia de gráficos ni pierde los ejes secundarios, de fecha o de serie
- Las referencias de fórmulas de gráficos y los valores de serie en caché ahora sobreviven a las copias de libros y a los ciclos de apertura/guardado sin aplanarse ni descartarse
- Los anclajes de gráficos ahora se emparejan 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 hojas de cálculo
Versión 2.229.0
Añadido
TXLSXWorksheet.HeaderFooterImagesahora crea, busca, reemplaza y elimina slots 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 slots 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 matrices de coeficientes multivariables completas y matrices estadísticas opcionales de cinco filasTRENDyGROWTHahora devuelven matrices de predicción con forma para entradas de una variable y multivariables
Cambiado
- La aritmética de matrices, 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 de la matriz 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, la ordenación 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.QueryTablesofrecen ahora creación y edición con tipo 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, incluidos 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, incluidas 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 el 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 XML
Corregido
- Abortar un escaneo paralelo de hoja de cálculo ya no espera a que se complete 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 de cálculo 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 devolución de llamada sin permitir que las hojas posteriores sometan a inanición a la hoja que se está emitiendo actualmente
Corregido
- Las cancelaciones de celdas, los fallos de devolución de llamada y los errores de trabajador ahora despiertan a productores y consumidores bloqueados, detienen las extracciones 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 de cálculo 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 XML permanecen en paralelo mientras la memoria de entrada transitoria de la hoja está limitada por el número 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, incluidos 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 con tipo para elementos base adyacentes en cálculos de comparación
Cambiado
- Los porcentajes de tabla dinámica y los valores de índice utilizan 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 volver a escanear el origen
- Los totales acumulados siguen el orden de los elementos de tabla dinámica, se reinician de forma independiente 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 numérico y nombre para mostrar mediante lecturas con tipo, mientras que los registros heredados de HotXLS siguen siendo 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 ausentes permanecen en blanco, mientras que los denominadores cero presentes devuelven
#DIV/0!en lugar de confundirse con datos ausentes
Versión 2.219.0
Corregido
VDBahora aplica depreciación de saldo decreciente variable en 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 residual, los períodos iniciales fraccionarios y los rangos de períodos no vá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 creación con tipo del Administrador de escenarios What-If con escenarios con nombre, índices activo y mostrado, rangos de celdas cambiantes, 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 con Excel se validan antes de que se puedan escribir metadatos no válidos
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 hojas de cálculo no necesiten 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 valor estimado con un solver protegido que puede encontrar raíces altas y sensibles a la estimación, mientras queXNPVusa una sumación compensada y entradas de fecha y tasa validadas- La búsqueda de nombres definidos XLSX de alta cardinalidad ahora usa un índice hash perezoso consciente del ámbito conservando el orden serializado, la precedencia de nombres locales y el comportamiento de primera coincidencia
- Las partes de 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, truncan seriales de fecha fraccionarios e informan de no convergencia en lugar de devolver un punto medio no verificado
Versión 2.215.0
Añadido
FREQUENCYahora devuelve una matriz vertical con un resultado por bin más el cubo de desbordamiento
Cambiado
SORTahora emplea una ordenación estable y escalable para filas o columnas, conservando el orden de origen de las claves igualesUNIQUEahora emplea una coincidencia estable indexada por hash para filas o columnas, incluidos los resultadosexactly_oncey el texto sin distinción de mayú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 columnas en lugar de recurrir al comportamiento por filas
Versión 2.214.0
Añadido
- 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 búsquedas lineales repetidas y el crecimiento fila a 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 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 de bytes UTF-16 impares o pares suplentes no válidos ahora se rechaza
- Los trabajadores paralelos del lector directo ahora inicializan todo el estado del trabajo antes de iniciarse, dejan de aceptar nuevos trabajos de hoja tras un fallo, vuelven a lanzar el error del trabajo de menor índice de forma determinista y limpian todos los trabajadores creados si falla la construcción del pool
Versión 2.213.0
Añadido
T.TESTahora evalúa muestras independientes con varianza agrupada igual o varianza desigual de Welch además de muestras emparejadas, incluidas las probabilidades de una y dos colas
Cambiado
- La apertura de XLSX ahora sigue los destinos de relación de libro, hoja y 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 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 posterior no admitida 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 grandes indexando las dependencias de celda y rango antes de las recompilaciones 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 suministrados 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 se rechazan de forma consistente, de modo que las coordenadas no válidas ya no pueden aliasar 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 admiten porciones vacías válidas 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 de ZIP se rechazan antes de que una reserva excesiva, lecturas truncadas o registros de directorio falsos incrustados en el comentario puedan afectar a la carga
Versión 2.211.0
Añadido
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 de tabla dinámica reutiliza los dominios de claves de fila y columna indexados por hash en todos los campos de datos, selecciona almacenamiento acumulador denso o disperso en función de la forma del resultado, conserva el orden de elementos de la caché más allá de nueve claves y emite etiquetas combinadas legibles para ejes de varios campos
Corregido
Countahora incluye valores de caché no vacíos de texto, booleanos, de error, de fecha y numéricos, mientras queCountNumsincluye solo valores numéricos y de fecha;Productdevuelve cero en intersecciones sin valores numéricos, los huecos 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
Añadido
TXLSWorkbookViewerahora renderiza 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 integradas de conjuntos de iconosTXLSWorkbookViewer.RefreshConditionalFormatsreconstruye el estado agregado y de umbral preparado tras de que los llamadores modifiquen un libro XLSX adjunto en el sitio
Cambiado
- El visor almacena en caché un evaluador de formato condicional preparado por cada hoja activa, lo reutiliza en las operaciones de desplazamiento, selección y repintado y lo libera cuando cambian el libro o la hoja
Corregido
- Los ejes de barras de datos en el límite más a la derecha ahora se recortan dentro de la celda propietaria en lugar de dibujarse en la celda adyacente
Versión 2.209.0
Añadido
- Las hojas 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 por encima o por debajo, los valores duplicados y únicos, los periodos de fechas relativas, las escalas de dos y tres colores, las barras de datos y los conjuntos de iconos para cualquier celda
Cambiado
- Las exportaciones a HTML y PDF ahora renderuran rellenos condicionales coincidentes, 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 iconos, los valores ocultos y los colores de tema con resolución de tinte
- Los dominios grandes de formato condicional ahora reutilizan fórmulas relativas compiladas sin asignación de árboles de sintaxis por celda, transmiten las estadísticas de media, desviación, mínimo y máximo, conservan valores ordenados solo para reglas de clasificación o percentil, ordenan en lotes las claves duplicadas Unicode y usan índices candidatos por bandas de filas para evitar recorrer reglas no relacionadas
Corregido
- Las reglas condicionales clásicas ahora cargan correctamente los tipos de expresión y evalúan de forma consistente los límites invertidos, los predicados de texto sin distinción de mayú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 nativas etiquetadas de cadena, booleano, error y vacío, itera las celdas en orden principal por filas y codifica mediante run-length las celdas consecutivas de tipo igual 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 reserva y crean los valores de cadena decodificados de forma diferida, reduciendo la sobrecarga de asignación para tablas grandes de cadenas únicas
Añadido
- Las tablas dinámicas ahora pueden calcular una matriz de resultados completa a partir de los registros de la 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 tipada de series, ejes, leyenda y grupo de gráfico para flujos de conversión e inspección
Versión 2.207.0
Añadido
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 de elemento compartido para cada (registro, campo) — de modo que se pueda crear una tabla dinámica mediante programa a partir de un rango de datos en lugar de depender derefreshOnLoadde Excel. Un lector de valores basado en callback mantiene a la unidad dinámica libre de una dependencia directa de la hoja de cálculo
Versión 2.206.0
Añadido
- El nuevo
TlxCellMMU(unidadlxCellMMU) implementa un motor de almacenamiento de celdas empaquetado y por filas, con codificación run-length de secuencias de celdas de igual tipo y vacías, y un código de tipo por byte etiquetado que además sirve como selector de 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 conserve el valor (int8 / int16 / int32 / enteros escalados de 2 y 4 decimales / IEEE double), almacena de forma compacta las celdas de índice de cadena, booleanas, de error y vacías, y expone una APIGetValue/SetNumber/SetStringademás de un iterador hacia delante. Se trata del backend de próxima generación, tras un indicador de función, de la APITXLSXCellsexistente, con el objetivo de una reducción del 10–25× del conjunto de trabajo en hojas densas
Versión 2.205.0
Añadido
TXLSCustomChart.GetChartInfoahora decodifica un resumen semántico a partir del flujo de registros BIFF de gráfico sin procesar — familia de tipo de gráfico (barras, líneas, sectores, áreas, dispersión, radar, anillo, superficie, burbujas), el número de series y la presencia de leyenda — de modo que el tipo de un gráfico BIFF pueda consultarse mediante programa y una conversión de gráfico BIGH a XLSX pueda elegir la familia de destino correcta. El almacenamiento de paso directo de bytes que garantiza la fidelidad de ida y vuelta no cambia
Versión 2.204.0
Cambiado
- La tabla de cadenas compartidas clásica de
.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, reduciendo aproximadamente a la mitad el tamaño de la SST — y por tanto del archivo.xls— en libros con predominio de ASCII
Versión 2.203.0
Añadido
- El nuevo
TlxCompoundFilelee y escribe el formato contenedor Compound File Binary (OLE2) directamente en Pascal puro, sin dependencia deole32.dll/ COMIStorage— lo que abre la puerta al tratamiento de.xlsen memoria y multiplataforma. El lector cubre la distribución v3 que HotXLS encuentra en la práctica (cabecera + DIFAT en cabecera + recorrido de la cadena FAT + MiniFAT y el mini-flujo para flujos inferiores a 4096 bytes + el árbol de directorio); el escritor emite un contenedor v3 mínimo pero válido, suficiente para la salida de HotXLS
Versión 2.202.0
Añadido
- El estado de ordenación del autofiltro dispone ahora de un modelo tipado (
TXLSXSortStatecon hijosTXLSXSortCondition) que cubre la ordenación por valor / color de celda / color de fuente / icono, el método de ordenación (ninguno / stroke / pinYin), la distinción de mayúsculas, la ordenación de columnas y las listas personalizadas por condición — de modo que las aplicaciones pueden construir estados de ordenación mediante programa en lugar de editar XML sin procesar, mientras que la pasada directa opaca heredada deSortStateXmlsigue imponiéndose en los archivos no creados por HotXLS - Los filtros dinámicos ahora se leen y escriben como un
TXLSXDynamicFilterTypetipado (por encima o por debajo de la media y desviación estándar, hoy/ayer/mañana, esta semana/mes/trimestre y año, la semana/el mes/el trimestre pasados o próximos, año hasta la fecha, Q1–Q4, M1–M12) con límitesval/maxValopcionales — abrir un libro que use un filtro dinámico ya no lo descarta al guardar
Versión 2.201.0
Añadido
- Los gráficos de superficie y de superficie 3-D (
xlsxChartSurface/xlsxChartSurface3D) son ahora tipos de gráfico de primera clase — escritos, leídos y transportados 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, galones, llamadas, nodos de organigrama, estrellas, corazones, sol, luna, corchetes y llaves — cada uno asignado a su token
prsty al id de forma de[MS-ODRAW]correctos, de modo que las formas creadas se renderizan correctamente en Excel (la lista completa de 187 predefinidos ya se conservaba en el transporte de ida y vuelta mediante pasada directa por anclaje sin procesar)
Versión 2.200.0
Corregido
- Abrir un libro cuyo autofiltro usa un filtro de color o de icono ya no descarta ese filtro al guardar —
colorFilteryiconFilterahora se leen en columnas tipadas (TXLSXAutoFilterColumn.SetColorFilter/SetIconFilter) y se reemiten literalmente, en lugar de perderse como hijos no reconocidos de la columna de filtro
Versión 2.199.0
Añadido
TCondFormatRule.Evaluateindica si una regla de formato condicional se activa para una celda dada, cubriendo comparaciones de valor de celda, expresiones de fórmula, reglas de texto que contiene/empieza/termina, celdas en blanco y reglas de error — la base para consultar qué celdas resalta actualmente una regla y para renderizar los resultados del formato condicional fuera de Excel
Cambiado
FACTy los helpers internos de factorial ahora usan una tabla precalculada de 0!..170! en lugar de recalcular un producto O(n) en cada llamada, acelerandoFACT, los coeficientes multinomiales y las rutas de distribución de Poisson/Binomial/chí-cuadrado
Versión 2.198.0
Cambiado
- Guardar una hoja ahora agrupa las celdas en filas con un único recorrido de conteo y relleno en lugar de hacer crecer el índice de cada fila con una reasignación por celda, eliminando 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 recorrer todas las fórmulas en cada celda modificada — cuanto más grande sea el libro y cuantas más hojas tenga, mayor será la aceleración en el recálculo
- El recorrido principal por filas y ordenado por columnas de celdas se expone ahora como
TXLSXWorksheet.BuildRowMajorCellOrder, de modo que el guardado, el portapapeles, el autofiltro y otros consumidores por filas comparten un único recorrido en lugar de rededucirlo
Versión 2.197.0
Corregido
- Los gráficos de radar, de bolsa y de sector-de-sector / barras-de-sector 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, restaurando 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 ignorar filas ocultas (2, 3, 6, 7), coincidiendo con Excel en lugar de tratar las variantes incluir ocultas e ignorar ocultas de forma idéntica- La llamada a una función integrada de aridad fija con más argumentos de los declarados (por ejemplo
=SIN(1,2)) ahora lanza#VALUE!de forma centralizada en lugar de ser aceptada por el distribuidor
Versión 2.196.0
Corregido
- La inserción o eliminación de filas y columnas ahora reparte los formatos condicionales de valor de celda y de expresión, además de las validaciones de datos, cuando las áreas de destino editadas requieren anclajes de fórmula relativos diferentes, conservando los ajustes de las reglas, asignando prioridades únicas de formato condicional y manteniendo 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 solo los glifos que el documento ha renderizado realmente en lugar de incrustar el.ttfcompleto — normalmente reduce el PDF entre 8–20× en hojas con mucho Unicode; recurre a la incrustación completa cuando el subconjunto no está disponible
Versión 2.195.1
Corregido
- La inserción o eliminación de filas y columnas en el motor clásico de
.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 completamente dentro de una eliminación se convierten en#REF!y las áreas de solape 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 hoja, las fórmulas de tabla, los nombres definidos y las series de gráficos, conservando las referencias no relacionadas y los literales de cadena
Corregido
- Eliminar una tabla completa ya no deja referencias estructuradas calificadas que apunten 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 de tabla Excel, 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 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 hoja y de tabla ahora escriben atributos válidos y descartan las condiciones cuyos rangos se han eliminado
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 de formato condicional visual basados en fórmulas
- 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 la burbuja al volver a abrirse
Corregido
- Los destinos multiárea de formato condicional y de validación de datos 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
Añadido
- Las lecturas directas en flujo y el recorrido por cursor de filas pueden optar por cadenas ricas estructuradas con formato completo de ejecuciones, ejecuciones fonéticas y propiedades fonéticas, conservando el almacenamiento acotado de cadenas compartidas
TXLSDirectWriter.WriteRichStringescribe texto con formato y fonético como cadenas compartidas en línea o desduplicadas
Cambiado
- La desduplicación de cadenas compartidas ricas ahora distingue el formato de ejecución y los metadatos fonéticos, mientras mantiene el internamiento de cadenas ordinarias 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
Añadido
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 desduplicado por libro, y las copias de hoja o rango entre libros reasignan ese registro al libro de destino
- Los metadatos de matriz dinámica admitidos siguen disponibles cuando se desactiva la conservación de partes no admitidas, mientras que los metadatos de valor no relacionados se siguen eliminando
Corregido
- Las celdas de desbordamiento de matriz dinámica ya no se modelan como seguidoras CSE heredadas, y sustituir o vaciar la raíz ya no deja índices de metadatos obsoletos
- Quitar la raíz de matriz dinámica final ahora elimina la parte de metadatos no utilizada, 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órmulas compartidas a fórmulas completas relativas a la celda, conservando el comportamiento de proyección y de memoria acotada
Corregido
- Los libros con matriz dinámica ahora conservan los índices de metadatos de celda y de valor, los atributos de recálculo de fórmulas, las relaciones del paquete de metadatos y los prefijos de función futura sin cambios durante los ciclos de apertura y guardado
- Desactivar la conservación de partes no admitidas ya no deja índices de metadatos de hoja colgantes tras eliminar la parte de metadatos
Versión 2.189.0
Añadido
- La apertura de libros XLSX ahora expande los seguidores de fórmulas compartidas a fórmulas completas por celda con referencias relativas, absolutas, mixtas, de rango y calificadas con hoja correctas
Corregido
- Los seguidores de fórmula compartida autocerrados ya no capturan XML de valor o fórmula posteriores, y sus resultados en caché sobreviven a los ciclos de apertura y guardado
- Las fórmulas de matriz CSE ahora conservan su anclaje y sus relaciones de seguidor a través de ediciones estructurales de filas o columnas, copias de rango completo, duplicación de hojas y copias de hoja entre libros
- Asignar una fórmula normal o vaciar una celda ahora elimina la pertenencia obsoleta a matriz CSE, de modo que el cálculo no puede redirigirse a un anclaje de matriz antiguo
- Copiar solo una parte de una matriz CSE ya no crea referencias de seguidor colgantes en el destino
- Las copias de rango ahora hacen una instantánea de los orígenes solapados y desplazan las referencias de fórmulas relativas, impidiendo que las celdas de origen o los anclajes de matriz se sobrescriban antes de copiarse
- Las ediciones de filas o columnas que solo intersectan una parte de una matriz CSE se rechazan en lugar de redimensionar o desvincular la matriz de forma silenciosa
Versión 2.188.0
Añadido
TXLSDirectReader.SharedStringMemoryLimitacota la memoria de cadenas compartidas decodificada y migra automáticamente las tablas más grandes a almacenamiento temporal indexado de eliminación al cierre, con una caché de valores de tamaño fijoTXLSRowCursor.SharedStringMemoryLimitexpone el mismo control de almacenamiento acotado de cadenas compartidas para el recorrido de filas solo hacia delante
Cambiado
- El análisis directo de cadenas compartidas ahora conserva los valores de solo espacios en blanco, CDATA, las entidades XML, los caracteres no BMP, los elementos vacíos y el orden de las ejecuciones de texto rico, excluyendo el texto guía fonético del valor mostrado
Corregido
- La apertura de libros XLSX ahora conserva todos los elementos de cadenas compartidas en el orden del documento, impidiendo que el texto duplicado o las cadenas ricas con formato diferente colapsen índices de celda posteriores
- El guardado de libros XLSX ahora desduplica las cadenas ricas por los límites de ejecución y las propiedades de formato en lugar de solo por el texto visible, conservando el formato distinto para las celdas con el mismo valor mostrado
Versión 2.187.0
Añadido
TXLSDirectReader.FirstRowyLastRowrestringen las lecturas en flujo a un rango de filas basado en 1 y detienen el análisis de la hoja tras el rango solicitadoTXLSDirectReader.IncludeColumnyClearColumnProjectionofrecen una proyección de columnas de tiempo constante que omite las celdas no seleccionadas antes de la decodificación de valores y la entrega de callbacks
Versión 2.186.0
Añadido
TXLSDirectWriter.UseSharedStringspuede desduplicar el texto repetido en una parte de cadenas compartidas OOXML con totales precisos y recuentos únicos, reduciendo el tamaño del paquete en datos con muchas repeticionesTSimpleDomReaderofrece un árbol XML compacto de un solo paso para consultas de acceso aleatorio de los metadatos del libro y las partes del paquete, con búsqueda por QName y por nombre local con distinción de mayúsculas
Cambiado
- La lectura directa de XLSX ahora usa un reparto de elementos exacto asistido por hash, una recolección de atributos en un solo paso 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 copias repetidas de la cadena completa en tablas grandes de cadenas distintas
Corregido
- La exportación a fórmula CSV ya no añade un segundo signo igual cuando el texto de la fórmula ya incluye uno
- La exportación a PDF de XLSX ya no trunca el texto de la celda usando una estimación por número de caracteres antes de la composición
- Los hashes de nombres del lector XML ahora rastrean las instrucciones de procesamiento, los atributos y los retornos a sus elementos propietarios sin exponer un estado de elemento obsoleto
Versión 2.185.1
Corregido
- La inserción o eliminación de filas y columnas ahora ajusta las referencias de fórmulas locales y entre hojas exactamente una vez, conservando los nombres de función y los literales de texto
Versión 2.185.0
Añadido
TXLSPDFExportofrece ahora una selección de salidaFirstPageyLastPagebasada en uno, unPageCountlógico completo y seis sobrecargas deCalculatePageCountpara rangos clásicos y XLSX, hojas y libros sin construir objetos de página PDFTXLSXWorkbook.SaveWorkbookAsHTMLpublica las hojas visibles en un único documento HTML navegable con anclajes estables por hoja, títulos y nombres de hoja escapados, y una opción para incluir hojas ocultas o muy ocultasTDataToXLS.BeforeRecordpuede omitir registros antes de la salida por filas yBeforeValuepuede transformar o suprimir valores de campo con contexto de dataset, de nivel de detalle, de campo de origen y de columna de exportaciónTXLSWorkbookViewerexpone los comentarios y los hipervínculos de las celdas seleccionadas, lanza un evento de hipervínculo controlado por la aplicación, pinta los indicadores de comentario y las fuentes, los rellenos y la alineación XLSX, y normaliza la selección y el renderizado en los rangos combinados
Cambiado
- El ejemplo ConversionWorkbench ahora puede producir salida PDF y publica todas las hojas XLSX visibles para los destinos HTML, mientras que el ejemplo WorkbookViewer demuestra la navegación por celdas combinadas, los comentarios y la activación de hipervínculos
Versión 2.184.0
Añadido
- Los rangos XLSX y XLS clásicos pueden copiar texto tabular Unicode y HTML con estilo al portapapeles de Windows mediante
CopyToClipboard, conservando fórmulas, celdas combinadas, vínculos, formato de presentación, y entrecomillando de forma segura tabulaciones incrustadas, saltos de línea y comillas TXLSXWorkbookahora conserva las partes de paquete personalizadas alcanzables desde relaciones desconocidas en la raíz del paquete, del libro, de la hoja o del dibujo, incluido el tratamiento de colisiones de identificador de relación, los tipos de contenido, las relaciones hijas, la elección de compresión y los bytes exactos de la carga;PreserveUnsupportedParts,UnsupportedPartCount,UnsupportedPartBytesyClearUnsupportedPartsexponen el control y el diagnóstico- El guardado XLS clásico expone callbacks de inicio, trabajo y fin con cancelación mediante
OnProgressEx, mientras queIXLSWorkbookProgressofrece diagnóstico estructurado con códigos estables, severidad, operación, contexto de hoja, valores de retorno 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 reescritura del flujo comprimido del módulo actualizado a través del guardado XLS clásico, el almacenamiento VBA autónomo y el OOXML habilitado para macros, conservando los prefijos de flujo y el contenido del proyecto no tocado - Las hojas clásicas y las colecciones de formas ahora exponen controles de formulario tipados
TXLSCheckBox,TXLSComboBoxyTXLSListBox, con helpers de creación, etiquetas, inspección del tipo de control, anclajes de celda, eliminación y descubrimiento en apertura y guardado TXLSXRange.ApplyFormatPatchpuede copiar de forma selectiva componentes de fuente, relleno, borde, formato numérico, alineación y protección, con teselado del patrón de origen conservando los valores de destino y el formato no seleccionadoTDataToXLSpuede exportar de forma recursiva datasets maestro-detalle vinculados medianteReadDetailTablesyIndentDetailTables, conservando los vínculos de datos activos, añadiendo 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 conservación del anclaje de dibujo sin procesar mantiene la forma WordArt completa en ciclos posteriores de apertura y guardadoTXLSWorkbookViewerañade un visor VCL de hoja de cálculo para objetos de libro clásicos y modernos con carga de archivos XLS, XLSX, XLSM, plantilla y ODS, texto de celda con formato, estilos clásicos, dimensionado de filas y columnas, encabezados, renderizado de cuadrícula y selección, barras de desplazamiento, selección con ratón, navegación con teclado, posicionamiento de celdas, cambio de hoja y eventos de selección o de hoja- Los nuevos ejemplos de Delphi
FeatureShowcaseyWorkbookViewerdemuestran impresión PDF con estilos, títulos de impresión, saltos manuales, controles de formulario clásicos, parches selectivos de formato, WordArt, diagnóstico, creación del visor en tiempo de ejecución, carga de archivos, navegación por celdas, cambio de hoja y eventos del visor, con guías en inglés y temas de referencia para desarrolladores correspondientes
Cambiado
- La exportación a PDF de libro, hoja y rango de XLS clásico y XLSX moderno ahora escribe cada hoja visible en un único documento, omite las hojas ocultas y las de gráfico, renderiza rellenos sólidos, colores y tamaños de fuente, énfasis de negrita y cursiva, alineación horizontal y vertical, bordes explícitos de celda y las líneas de cuadrícula opcionales de la hoja, sigue el área de impresión de cada hoja, el tamaño de papel, la orientación, los márgenes, el zoom, el ajuste al ancho, los anchos de columna, las alturas reales de fila, los saltos de página manuales de fila y columna, las 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 texto fuera de WinAnsi
- Los callbacks extendidos de progreso XLSX ahora reciben estados fiables de inicio, trabajo y fin para guardado, apertura y recálculo, mientras que el callback heredado sigue siendo solo de trabajo y cada operación restablece el estado de cancelación previo
- La serialización XLS clásica ahora propaga los fallos de hoja, 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 sustituir el destino de forma atómica
- Los guardados de archivo XLSX y ODS ahora construyen un paquete temporal hermano completo y sustituyen 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
Añadido
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 hoja; el mismo índice de estilo se puede aplicar a cualquier número de celdas o reutilizar entre hojas- Los estilos directos de celda ofrecen 30 capacidades de formato que abarcan nombre y tamaño de fuente, color BGR, negrita, cursiva, tachado, contorno, sombra, cinco modos de subrayado, 19 patrones de relleno con colores de frente y fondo, cinco bordes de aristas coloreadas de forma independiente con 14 estilos de línea y direcciones diagonales, formatos numéricos integrados o personalizados, alineación horizontal y vertical, ajuste de texto, ajustar para encajar, sangría, rotación de texto, prefijos de comilla y protección bloqueada/oculta
- Hay sobrecargas con estilo 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 preconstruido por índice entero durante escrituras secuenciales
Cambiado
- El escritor directo desduplica los componentes iguales de fuente, relleno, borde y formato numérico al construir
styles.xml, conservando los índices de estilo de celda estables ya escritos en los flujos de hoja - Las tablas de estilo del escritor directo generadas ahora incluyen los rellenos predeterminados estándar
noneygray125antes de los rellenos personalizados, para una compatibilidad OOXML más estricta
Versión 2.182.0
Añadido
TXLSDirectWriterahora escribe formato condicional conservando su perfil de memoria independiente del número 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 iconos- Las reglas directas de formato condicional admiten prioridades explícitas, evaluación de detención si es verdadero, opciones de desviación estándar y de igualdad de promedio, sustitución de umbral de icono, visualización de solo icono 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 y almacena solo reglas y estilos de formato condicional, de modo que el uso de memoria escala con el número de reglas en lugar de con el número de filas de hoja
- Los tipos de umbrales mínimo y máximo automáticos 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
Añadido
TXLSDirectWriterahora escribe la protección de hoja y de libro sin almacenar en búfer los datos de la hoja, incluidos 15 permisos de hoja detallados, verificadores heredados de contraseña, metadatos modernos de hash, rangos protegidos editables con contraseñas o descriptores de seguridad opcionales, bloqueos de estructura y de 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 bien formados tras la apertura y el guardado
- Los permisos de protección de hoja XLSX ahora siguen la definición de indicador bloqueado 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 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
Añadido
- El modelo de hoja XLSX ahora transporta de ida y vuelta los elementos del Administrador de escenarios What-If (
<scenarios>) y de Consolidación de datos (<dataConsolidate>). Las nuevas propiedades de XML sin procesarScenariosXmlyConsolidateXmlenTXLSXWorksheettransportan el contenido interno literal — el escritor emite los elementos envoltorio, el lector analiza de vuelta los hijos 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 transporte de ida y vuelta
Versión 2.179.0
Añadido
- Una nueva función helper
XlsxBuildNumFmtconstruye códigos de formato numérico 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 su uso conCell.NumberFormatoWorkbook.NumberFormats.Add
Versión 2.178.0
Añadido
- El modelo de hoja XLSX ahora transporta de ida y vuelta el nombre de código VBA (
<sheetPr codeName="..."/>), esencial para la interoperabilidad VBA, donde el proyecto VBA referencia 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/Ocultar comentario" por comentario de Excel), no solo al pasar el ratón por encima - La validación de datos ahora transporta 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 de configuraciones regionales japonesa/coreana/china - El modelo de hoja gana una propiedad
PaneStatepara el atributo de estado de panel en<pane>además del tratamiento existente de modo congelado — admite los estadosfrozenSplit(congelado y luego desplazable) ysplit
Versión 2.177.0
Añadido
- Tres funciones de hoja anteriormente registradas pero no implementadas disponen ahora de reparto completo:
DOLLAR(texto con formato de moneda),FIXED(texto con decimales fijos y supresión opcional de coma) yAREAS(recuento de áreas en una referencia). Anteriormente estas 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 XLSX ahora transporta 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 se transporta de ida y vuelta. Las nuevas propiedades
SummaryBelow,SummaryRightyShowOutlineSymbolsenTXLSXWorksheetcontrolan si las filas/columnas de resumen aparecen debajo o a la derecha del detalle y si los símbolos de esquema son 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
Añadido
- El motor de fórmulas XLSX ahora resuelve las referencias estructuradas a tablas antes de la compilación. Un nuevo método
ResolveStructuredRefsenTXLSXWorkbookexplora el texto de fórmula en busca de patronesTableName[ColumnSpec]y los sustituye por referencias de rango A1 concretas usando la colecciónTXLSXTabledel libro. Las especificaciones admitidas incluyen el rango de datos de columna (Sales[Qty]), la columna de la fila actual (Sales[@Total]), los datos completos (Sales[#Data]/Sales[#All]), los encabezados (Sales[#Headers]) y la 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. Anteriormente las referencias estructuradas provocaban el fallo de la compilación de fórmulas
Versión 2.175.0
Añadido
- 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/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. Anteriormente solo se podían compilar fórmulas de estilo A1
Versión 2.174.0
Añadido
- La salida de AutoFiltro de
TXLSDirectWriteradmite ahora columnas de filtro de hoja y de tabla, filtros de valor, filtros de blanco, filtros de grupo de fechas, filtros de comparación personalizados, filtros dinámicos, filtros de superior/inferior, indicadores de botón de filtro, estados de ordenación, condiciones de ordenación, el escapado XML y la supresión de rangos de filtro duplicados de hoja o tabla al generar archivos XLSX en flujo
Versión 2.173.0
Añadido
- La salida de tabla de
TXLSDirectWriteradmite ahora comentarios de tabla, recuentos 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 escapado XML para los metadatos de columna de tabla al generar archivos XLSX en flujo
Versión 2.172.0
Añadido
TXLSDirectWriterahora escribe las partes de tabla Excel al generar archivos XLSX en flujo, incluidas las relaciones de tabla de hoja, 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
Añadido
TXLSDirectWriterahora escribe las validaciones de datos de hoja al generar archivos XLSX en flujo, incluidos lista, número entero, decimal, fecha, hora, longitud de texto, fórmula personalizada,sqrefarbitrario, prompt, alerta de error, permitir blanco, desplegable y los indicadores de mensaje de entrada y de error, sin construir un modelo de objetos de libro completo
Versión 2.170.0
Añadido
TXLSDirectWriterahora escribe los nombres definidos del libro y de hoja al generar archivos XLSX en flujo, incluidos los nombres ocultos, los comentarios, los rangos absolutos generados, las áreas de impresión, las filas de título de impresión, las columnas de título de impresión, los títulos de impresión combinados, las referencias de nombre de hoja entrecomilladas, el escapado XML y la semántica de sustitución para los repetidores de nombre de impresión, sin construir un modelo de objetos de libro completo
Versión 2.169.0
Añadido
TXLSDirectWriterahora escribe los hipervínculos de hoja al generar archivos XLSX en flujo, incluidas las relaciones de URL externa, mailto y de archivo, las ubicaciones internas de hoja, el texto mostrado, los tooltips, los rangos de hipervínculo de celda única o multicelda, la normalización de URLwww.desnuda, el escapado XML y los destinos de relación codificados por ciento, sin construir un modelo de objetos de libro completo
Versión 2.168.0
Añadido
TXLSDirectWriterahora escribe los metadatos de impresión y de vista de hoja al generar archivos XLSX en flujo, incluidos los conmutadores de visualización de cuadrícula y de encabezados de fila y columna, los márgenes de página, el texto de encabezado y pie impares, las líneas de cuadrícula y los títulos 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 fila o columna, sin construir un modelo de objetos de libro completo
Versión 2.167.0
Añadido
TXLSDirectWriterahora escribe los metadatos de diseño de hoja al generar archivos XLSX en flujo, 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
Añadido
- Los flujos de trabajo XLSX en streaming ahora incluyen el listado de nombres de hoja sin explorar las hojas, la selección de hoja por cursor de filas basada en nombre, el flujo 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
Añadido
- Las exportaciones de dataset de
TDataToXLSadmiten ahora las listas de cadenasIncludeFieldsyExcludeFields. Las aplicaciones pueden incluir en lista blanca los campos exportados, omitir columnas sensibles y mantener los encabezados, las filas de datos, los anchos de columna y los callbacks de exportación alineados con el conjunto de campos seleccionado
Versión 2.163.0
Añadido
- La exportación CSV gana un entrecomillado de texto configurable en los motores XLS y XLSX.
TXLSWorkbookahora exponeCSVEmitFormulasyCSVQuoteAllStrings, yTXLSXWorkbookañadeCSVQuoteAllStrings. Al activarse, 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 conservan las reglas de entrecomillado habituales
Versión 2.162.0
Añadido
- El motor XLSX gana un sistema de eventos de progreso abortable. Un nuevo callback
OnProgressExenTXLSXWorkbookse dispara junto alOnProgressexistente 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 al callback cancelar la operación actual a mitad del flujo — los bucles de lectura/escritura/cálculo compruebanWorkbook.Abortedy salen de forma limpia; (3) una nueva fasexlsxProgressExportingpara operaciones de exportación (HTML/RTF/CSV/ODS). Un método helperFireProgresscentraliza el reparto dual de callbacks. El indicadorFAbortedse restablece al inicio de cada operación de nivel superior (Open / SaveAs / Recalculate)
Versión 2.161.0
Añadido
- El modelo de gráfico XLSX admite ahora cuatro nuevos elementos de gráfico para una mayor compatibilidad con Excel. Tabla de datos del gráfico (
c:dTable):TXLSXChartgana los conmutadoresShowDataTable+ShowDataTableKeys— al activarse, el escritor emite el elemento de tabla de datos dentro del área de trazado para que Excel renderice los datos de origen como una rejilla bajo el eje del gráfico. Barras arriba/abajo + líneas de máximo-mínimo (elementos de gráfico de bolsa/OHLC):TXLSXChartganaHasUpDownBars+UpDownGapWidthyHasHiLowLines— el escritor emitec:upDownBarsyc:hiLowLinesdentro del elemento de gráfico (gráficos de líneas y de bolsa). 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. Anteriormente ninguno de estos elementos se emitía, de modo que los gráficos construidos con tablas de datos, elementos de gráfico de bolsa o vistas 3D los perdían en el transporte de ida y vuelta
Versión 2.160.0
Añadido
- 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 analizador 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). Anteriormente las fórmulas se quedaban apuntando silenciosamente a las celdas equivocadas tras una edición estructural
Versión 2.159.0
Añadido
- El estado de ordenación del autofiltro ahora se transporta de ida y vuelta en el motor XLSX.
TXLSXWorksheetgana una propiedadSortStateXmlque transporta el XML interno sin procesar del elemento OOXML<sortState>(dirección de ordenación de columna, distinción de mayúsculas, método de ordenación y cada<sortCondition>con su indicador de descendente + ref). El escritor emite el elemento tras<autoFilter>; el lector analiza de vuelta los atributos y las condiciones de ordenación. Anteriormente el estado de ordenación se descartaba silenciosamente al leer y nunca se escribía - Los ajustes fonéticos/ruby CJK ahora se transportan de ida y vuelta en el motor XLSX.
TXLSXWorksheetganaPhoneticFontId,PhoneticType(hiragana / katakana / fullWidthKatakana / noConversion) yPhoneticAlignment(left / center / distributed). El escritor emite<phoneticPr>tras<sheetData>; el lector analiza de vuelta los atributos. Anteriormente 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
Añadido
- El motor XLSX ahora transporta de ida y vuelta la tabla de estilos de celda con nombre (
<cellStyles>). Una nueva claseTXLSXNamedStyle+ la colecciónTXLSXNamedStylesenTXLSXWorkbooktransporta 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. Anteriormente el escritor codificaba en duro 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 transporte de ida y vuelta
Versión 2.157.0
Añadido
- El motor XLSX ahora transporta 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 obsoletos),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. Anteriormente solo se gestionabaniterate/iterateCount/iterateDelta, y el resto se descartaba silenciosamente
Versión 2.156.0
Añadido
- El evaluador de fórmulas implementa ahora 37 funciones de hoja que anteriormente estaban registradas (ptg asignado en InitFuncHash) pero sin implementación de reparto — 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), Amortización (SLN,SYD,DB,DDB,VDB), Estadística descriptiva (AVEDEV,DEVSQ,KURT,SKEW,GEOMEAN,HARMEAN,TRIMMEAN,FREQUENCY), Matricial por pares (SUMXMY2,SUMX2MY2,SUMX2PY2) y Combinatoria/Matemática (COMBIN,PERMUT,FACT,QUOTIENT,ROMAN,DEGREES,RADIANS,STANDARDIZE). Las funciones de regresión usan un resolvedor de mínimos cuadrados; las de amortización implementan los métodos de línea recta, suma de los dígitos de los años y saldo decreciente; las de estadística descriptiva calculan la desviación absoluta media, la curtosis, la asimetría y las medias geométrica/armónica/recortada; y las funciones por pares calculan la suma de las diferencias al cuadrado entre dos rangos de igual tamaño. Un nuevo helperCollectRangeValuesenTXLSCalculatorextrae los valores numéricos de los argumentos de rango para las funciones estadísticas
Versión 2.155.0
Añadido
- El evaluador de fórmulas admite ahora cinco nombres adicionales de compatibilidad estadística y de ingeniería:
ERFC,ERFC.PRECISE,BINOM.INV,CHI.INV.RTyF.TEST.ERFCcomplementa la serie de función de error existente,BINOM.INVbusca el umbral de CDF binomial,CHI.INV.RTes un alias de la inversa de chi-cuadrado de cola derecha yF.TESTdevuelve el valor p de dos colas de la varianza muestral
Versión 2.154.0
Añadido
- El evaluador de fórmulas ahora resuelve las referencias entre libros mediante un nuevo callback
OnGetExternalValueenTXLSCalculator. Cuando una referencia de rango 3D apunta a un libro externo ([1]Sheet1!A1), el evaluador enruta a través del callback en lugar de devolver#REF!. El motor XLSX cablea este callback aGetExternalCellValue, que asigna el índice de SupBook + el índice de hoja a la caché<sheetDataSet>delTXLSXExternalLinkcorrespondiente y decodifica el valor de celda en caché por su atributo de tipo OOXML (numérico / booleano / cadena / error). Anteriormente las fórmulas entre libros devolvían#REF!incondicionalmente; la infraestructura del callback permite ahora 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 elemento a elemento sobre los operadores binarios (
+/-/*///^). Cuando cualquiera de los operandos es una matriz variante 1D o 2D (por ejemplo, un resultado de función matricial, un rango desbordado 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 helperApplyArrayBinaryOpgestiona la validación de formas, la difusión escalar 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 reconoce ahora la función
TABLE(Análisis What-If de tabla de datos). Excel almacena las tablas de datos como fórmulas de matriz CSE cuyo cuerpo esTABLE(rowRef, colRef); anteriormenteTABLEno se reconocía y caía a#NAME?. La función se registra con un ptg sintético (ftabTABLE = 4232) de modo que se transporta de ida y vuelta por la codificación de fórmula BIFF8, y en tiempo de evaluación devuelve un valor de marcador de posición (0) — los resultados reales están precalculados por Excel y almacenados como valores de celda en caché, por lo que HotXLS no reevalúa la lógica de sustitución
Versión 2.153.0
Añadido
- El modelo tipado de tabla dinámica transporta ahora las propiedades tipadas del eje de página (Hier / Caption / Name), el alcance de ordenación automática y los ganchos de transporte 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 + 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 — transporte de ida y vuelta de XML interno sin procesar para el bloque de anulaciones de formato condicional / formato numérico de<formats>y el bloque de segmentador / escala temporal / x14 de<extLst>, emitido literal cuando se establece, de modo que el transporte de ida y vuelta es seguro incluso entre versiones del motor). El escritor XLSX emite los atributos<pageField hier=... cap=... name=.../>coincidentes, el hijo<autoSortScope>de<pivotField>y los bloques<formats>+<extLst>antes del centinela de cierre - El trazador de fórmulas registra ahora instantáneas de la pila de operandos por paso, lo que habilita un verdadero depurador de "Evaluar fórmula" paso a paso.
TXLSFormulaStepganaStepKind(push / reduce / function),StackBefore/StackAfter(instantáneas separadas por comas de la pila de operandos en el momento en que cada paso empezó / 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 de evaluación inverso — útil para una interfaz de retroceso que recorre desde el resultado final hacia los operandos originales) y una propiedadStepCount. Anteriormente el trazador solo registraba Depth / Source / Expression / Value sin estado de pila - La exportación a HTML ahora incrusta imágenes por celda mediante un nuevo callback
OnCellImageenTXLSHTMLExporty una nueva opciónxhImages. Cuando la opción está activa y el callback está cableado, el exportador pide al implementador el fragmento<img>de cada celda (normalmente un data-URI en Base64) y lo añade tras el texto de la celda. Esto desacopla al exportador del almacenamiento de imágenes BIFF8 del motor XLS (que reside en el registro MsoDrawing por 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 RTF aplica ahora las propiedades de carácter (negrita / cursiva / subrayado / tachado / tamaño) de las palabras de control RTF a la fuente de la celda de destino.
TXLSRTFImportrastrea\b/\i/\ul/\strike/\fsa lo largo del documento y empuja el formato de la ejecución dominante al XF de la celda en el momento de confirmación. Una nueva propiedadImportCharFormat(por defecto True) activa el comportamiento; defínala a False para restaurar la importación heredada de solo texto. Las celdas con varias ejecuciones colapsan a un único XF (gana la última ejecución activa), ya que la API de celda del motor XLS es a nivel de celda, no por fragmento — pero esto es mucho mejor que perder todo el formato, que es lo que hacía el importador heredado - Una nueva clase
TXLSHTMLImportanaliza tablas HTML en celdas de hoja de cálculo. Recorre la primera<table>del origen, emitiendo una fila de hoja 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ñada para la salida que el propio HotXLS produce (SaveAsHTML) más tablas HTML de calidad general de copiar y pegar; no es un analizador HTML5 completo
Versión 2.152.0
Añadido
- Las tablas XLSX conservan ahora los metadatos de totales a nivel de columna y las fórmulas de tabla.
TXLSXTableexponeColumnTotalsRowFunctions[],ColumnTotalsRowLabels[],ColumnCalculatedColumnFormulas[]yColumnTotalsRowFormulas[];SaveAsemite el XML de columna de tablatotalsRowFunction,totalsRowLabel,calculatedColumnFormulaytotalsRowFormulacoincidente,Openlos lee de vuelta, y los clones de tabla los conservan
Versión 2.151.0
Añadido
- El modelo tipado de tabla dinámica transporta ahora la colección de filtros por campo, el conmutador de multiselección, la superficie discretePr de fieldGroup + groupItems, y el modelo de elementos calculados / miembros calculados necesarios para una mayor compatibilidad de tabla dinámica.
TXLSPivotFieldgana una colección tipadaTXLSPivotFilters(cada entrada transportaFilterTypea lo largo de la enumeración OOXMLST_FilterTypede 80 miembros — familias count / percent / sum / caption / value / date — además deValue1/Value2/StrValue1/StrValue2,EvalOrder,DataField,MemberPropertyId,Name,Description), un conmutadorMultipleItemSelectionAllowed(F9) y una colecciónTXLSPivotCalculatedItem(F14).TXLSPivotCacheFieldganaDiscreteIndices[]+AddDiscreteIndexyGroupItemLabels[]+AddGroupItempara los bloques discretePr + groupItems de fieldGroup (F13).TXLSPivotTablegana una colecciónTXLSPivotCalculatedMember(F14). El escritor XLSX emite el<pivotField multipleItemSelectionAllowed="1">coincidente, 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 programa con filtros / multiselección / agrupación / elementos calculados se transportan de ida y vuelta
Versión 2.150.0
Añadido
- Los nombres definidos ahora mantienen válido su texto de fórmula cuando la hoja a la que referencian se elimina o renombra. Eliminar una hoja reescribe cada cualificador
SheetN!dentro de la fórmula de un nombre definido a#REF!(coincidiendo con el comportamiento de Excel); renombrar una hoja reescribe el cualificador al nuevo nombre. Anteriormente el texto de la fórmula seguía apuntando a un nombre de hoja inexistente, que luego Excel marcaba como un vínculo roto al volver a abrir - El modelo tipado de tabla dinámica transporta ahora el orden de ordenación a nivel de campo y los conmutadores de diseño, además de los atributos de diseño y 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/GridDropZonesademás deRowHeaderCaption/ColHeaderCaption/ErrorCaption/MissingCaption/ShowError/ShowMissingy el par de diseño de eje de páginaRowPageCount/ColPageCount. El escritor XLSX emite los atributos<pivotField sortType=... compact=... outline=...>y<pivotTableDefinition indent=... outline=... showEmptyRow=...>coincidentes y el elemento<location rowPageCount=... colPageCount=.../>, de modo que las tablas dinámicas construidas mediante programa llevan el diseño definido por el usuario en lugar de los predeterminados de Excel - Un nuevo método
FormulaIsVolatileenTXLSWorkbookinforma de si una fórmula forzaría un recálculo en cada pasada de cálculo — esto es, si llama a una función volátil (NOW / RAND / TODAY / OFFSET / INDIRECT) o lleva una referencia no resoluble. La sonda comparte el mismo extractor de dependencias que usa el motor de recálculo, de modo que la respuesta coincide con lo queRecalculatehace realmente. Los llamadores pueden usarlo para marcar celdas para una interfaz de verificación, para poblar un conjunto volátil de cadena de cálculo en un libro nuevo, o para saltar el almacenamiento en caché del resultado de una fórmula recién introducida
Versión 2.149.0
Añadido
- Las cachés de tabla dinámica ahora pueden actualizarse desde su rango de origen mediante programa. Un nuevo método
RefreshPivotCache(ACacheId)enTXLSXWorkbookvuelve a explorar el rango de origen de la caché, reconstruye el dominio de elementos compartidos por campo (volviendo a desduplicar valores y a rederivar los límites por tipo) y reescribe los índices de elementos por registro. Anteriormente HotXLS dependía del indicador codificado en durorefreshOnLoad="1"y aplazaba todo el trabajo de actualización a Excel en la siguiente apertura; las tuberías por programa ahora pueden actualizar en proceso
Versión 2.148.0
Añadido
InsertColsen el motor XLSX hereda ahora el ancho de columna de su vecino izquierdo, coincidiendo con el comportamiento predeterminado de Excel para "insertar columna". Anteriormente la columna insertada tomaba el ancho predeterminado del libro, produciendo un hueco de fidelidad visible tras una reapertura- El motor XLSX gana helpers de conveniencia de contracción de esquema
ToggleColGrouped/ToggleRowGroupedenTXLSXWorksheet, que recorren el árbol de esquema y contraen o expanden el grupo en un nivel dado. Los propios indicadores de contracción ya se transportaban de ida y vuelta; esto añade la API de conveniencia de recorrido del árbol que faltaba
Versión 2.147.0
Añadido
- La exportación a HTML emite ahora 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. Anteriormente los vínculos se emitían pero los destinos no tenían anclajes, de modo que los saltos internos no resolvían nada - La exportación 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 tuberías que reimportan a un motor diferente - Las URL de hipervínculo externo ahora se codifican por ciento al escribir (
XlsxEncodeHyperlinkUrl): el espacio, los corchetes angulares, las comillas, las llaves, las barras verticales, las barras invertidas, los circunflejos y los acentos graves se codifican como%XXen el atributo<Relationship Target="..."/>de modo que el archivo se abre correctamente en cualquier navegador. Las secuencias ya codificadas por ciento (%20) se conservan tal cual - La información de estilo de tabla dinámica transporta ahora 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 programa llevan el estilo de bandas elegido por el usuario en lugar del predeterminado codificado en duro - Un nuevo método
CalculateAndVerifyenTXLSXWorkbookreevalúa cada celda de fórmula y compara el resultado calculado con el valor en caché de la celda. Devuelve el recuento de discrepancias (0 = todos los valores en caché coinciden con el cálculo nuevo del motor; las fórmulas volátiles se excluyen). Útil para QA al portar libros entre motores o al validar que un escritor no ha corrupto los valores en caché
Versión 2.146.0
Añadido
- El motor XLSX admite ahora 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 reevalúa las celdas miembros del ciclo hastaIterateCountveces (por defecto 100) o hasta que el cambio de cada celda sea< IterateDelta(por defecto 0,001), en lugar de devolver#REF!. Los ajustes se transportan de ida y vuelta por el elemento OOXML<calcPr iterate="1" iterateCount="N" iterateDelta="X"/>. Los modelos financieros con referencias circulares intencionadas (interés sobre interés, asignaciones circulares) ahora convergen en lugar de dar error - Los campos de caché de tabla dinámica transportan ahora 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 programa con campos agrupados coinciden con la salida de Excel - La exportación a HTML emite ahora notas al pie de los comentarios. Cuando
xhCommentsestá entre las opciones de exportación, cada celda comentada recibe un vínculo de superíndice[n], y el texto completo del comentario (autor + cuerpo) se lista como una sección de notas al pie tras la tabla, con un ancla de retorno a la celda. Anteriormente 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
Añadido
- Los literales de error de fórmula BIFF8 (token
tErr) ahora se decodifican a un elemento de sintaxisSA_ERRORtipado en lugar de provocar el fallo del análisis de la fórmula. Una celda que almacena=#N/A(o cualquiera de las siete constantes de error de Excel) provocaba anteriormente que la fórmula completa se descartara al leer; ahora el byte de error se transporta de ida y vuelta por lectura → evaluación → escritura y se reconstruye a su forma de texto (#NULL!,#DIV/0!,#VALUE!,#REF!,#NAME?,#NUM!,#N/A) mediante un nuevo helperXlsErrorToString - El token BIFF8
tIsect $0F(operador de intersección implícita) ahora se decodifica en el traductor de fórmula binaria, construyendo el mismo nodoSA_ISECTque el analizador de texto produce para@. Anteriormente una fórmula binaria que contuvieratIsectno se podía analizar - El formato condicional de barras de datos emite ahora el bloque de extensión
x14de Excel 2010+ en elextLstde la hoja cuando el modelo lleva cualquier campo x14 no predeterminado (color de relleno negativo, degradado desactivado, color del eje, dirección, borde). Un nuevoBuildDataBarExtXmlconstruye el elementoextde<x14:conditionalFormattings>con la prioridad coincidente, el par cfvo, los colores de relleno + negativo + eje, y los atributos de degradado/borde/dirección/negativeBarColorSameAsPositive
Versión 2.144.0
Añadido
- El motor XLSX ahora puede escribir libros cifrados Agile (
TXLSXWorkbook.SaveAsEncryptedAgile), cerrando una brecha de compatibilidad de lectura/escritura de alto valor. Agile es lo que Excel 2010+ escribe por defecto para los archivos .xlsx protegidos por contraseña; HotXLS podía leer previamente Agile pero solo escribir Cifrado Estándar (AES-128). La nueva tubería de escritura refleja la ruta de descifrado existente: hash de contraseña SHA-512 con un contador de iteración de 100000, cifrado de paquete por segmento AES-256-CBC, una clave intermedia generada al azar envuelta según las tres claves de bloque fijadas por especificación, y un XML descriptor de<encryption>completo que lleva los blobs de verificador + clave cifrados. La salida es fiel en bytes a lo que produce Excel y se transporta de ida y vuelta de forma limpia porXlsLoadAgileEncryptedFile(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, necesario 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 importa ahoraaes_encrypt_key192/aes_encrypt_key256del obj de Gladman (anteriormente solo estaba disponible el cifrado de 128 bits)
Versión 2.143.0
Añadido
- El evaluador de fórmulas analiza y evalúa ahora el operador de intersección explícita
@(sintaxis de matriz dinámica de Excel 365, por ejemplo=A2:A4 @ B2:B4). El analizador léxico emite un nuevo tokenLT_ISECTpara el símbolo@, el analizador de precedencia construye un nodoSA_ISECT(vincula más fuerte que^, más flojo 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 token BIFF emitetIsect $0Fde modo que el operador se transporta de ida y vuelta por XLS, y la ruta de reconstrucción de texto de fórmula emite la forma de espacio implícito. Anteriormente estas fórmulas no se podían analizar - Un codificador Base64 estándar (
XlsBase64Encode) está ahora disponible, reflejando elXlsBase64Decodeexistente. Este es el prerrequisito para la ruta de escritura de 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. Anteriormente 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 dispare aproximadamente cada 4 % de las celdas para evitar saturar - Las propiedades extendidas del documento (
docProps/app.xml) transportan ahora de ida y vuelta tres campos más que Excel escribe para los documentos protegidos por contraseña o basados en plantilla:Manager,TemplateyDocSecurity(un campo de bits: 1=protegido por contraseña, 2=recomendado solo lectura, 4=solo lectura forzado, 8=bloqueado para anotación)
Versión 2.142.0
Añadido
- El modelo tipado de tabla dinámica transporta ahora la superficie de metadatos, origen, campo calculado, "mostrar valores como" y límites de elementos compartidos que la ronda previa de análisis marcó como brechas.
TXLSPivotCacheganaRefreshOnLoad/RefreshedBy/RefreshedDate/MissingItemsLimit/CreatedVersion/RefreshedVersion/MinRefreshableVersion/EnableRefresh/BackgroundQuery/SaveDatamás una forma tipada de origen de hoja (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 "mostrar valores como" (porcentaje-de / diferencia / acumulado / índice). El escritor XLSX (BuildPivotCacheDefinitionXml/BuildPivotTableXml) respeta todos estos, de modo que una tabla dinámica construida mediante programa (AddPivotTable) emite unpivotCacheDefinition+pivotTableDefinitionmás rico — refreshOnLoad / trío de versión / refreshedBy / origen de rango con nombre / fórmula cacheField calculada / límites sharedItems / subtotal de dataField + showDataAs. Las tablas dinámicas leídas de un archivo siguen transportando su XML sin procesar literal - El comportamiento del anclaje de imagen se transporta ahora de ida y vuelta por 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 anclaje (xdr:oneCellAnchor/xdr:twoCellAnchor editAs=.../xdr:absoluteAnchor) para coincidir; el lector analiza de vuelta el nombre del elemento + el atributoeditAs. Corresponde al menú contextual de Excel → Tamaño y propiedades → diálogo Propiedades - El encabezado y el pie de página transportan ahora de ida y vuelta la diferenciación de páginas pares y primeras.
TXLSXWorksheetganaEvenHeaderText/EvenFooterText/FirstHeaderText/FirstFooterTextmás los cuatro conmutadores de<headerFooter>(DifferentOddEven,DifferentFirst,ScaleWithDoc,AlignWithMargins). Los archivos donde el usuario activó "Diferentes páginas pares e impares" o "Diferente primera página" ya no pierden las secciones de página par y primera en el transporte de ida y vuelta - La configuración de página transporta ahora de ida y vuelta los atributos
<pageSetup>extendidos que Excel escribe para configuraciones de impresión no predeterminadas:Copies,FirstPageNumber+UseFirstPageNumber,HorizontalDpi,VerticalDpi,PrintErrors(mostrado/blanco/guión/NA),UsePrinterDefaults <sheetFormatPr>transporta ahora de ida y vueltacustomHeight,zeroHeight,outlineLevelRowyoutlineLevelCol, de modo que los archivos donde el usuario definió una altura de fila predeterminada fijada por el usuario, filas ocultas predeterminadas o un nivel de esquema predeterminado ya no pierden ese comportamiento- El formato condicional de barras de datos transporta 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/tinte,Direction,Border) en el modelo, de modo que los consumidores de la API pueden definirlos - Los globos de comentario transportan de ida y vuelta su dibujo VML literal. El lector captura
xl/drawings/vmlDrawingN.vmltal cual y el escritor lo reproduce al guardar (en lugar de la plantilla de globo amarillo integrada), de modo que la posición, el tamaño, el color de relleno y la visibilidad definidos por el usuario de cada globo sobreviven - Los cuerpos de comentario transportan de ida y vuelta el formato por ejecución.
TXLSXCommentgana una carga diferidaRichText: TXLSXRichText(reutilizando el modelo de ejecución de cadenas compartidas); el escritor emite un<r><rPr>...</rPr><t>...</t></r>por ejecución cuando RichText lleva formato, y el lector analiza de vuelta<b/>,<i/>,<sz val=N/>,<color rgb=.../>de modo que negrita / cursiva / tamaño / color sobreviven - El evaluador de fórmulas implementa ahora
SUBTOTAL(los once agregadores: AVERAGE / COUNT / COUNTA / MAX / MIN / PRODUCT / STDEV / STDEVP / SUM / VAR / VARP, más las variantes 101–111 que ignoran las ocultas) yAGGREGATE(diecinueve agregadores con los indicadores de opción 0–7 que seleccionan la omisión de error/oculta, incluida la familia LARGE / SMALL / MEDIAN / PERCENTILE / QUARTILE con su argumentok). Ambas caían previamente a la ruta de función no admitida;SUBTOTALestaba registrada pero no tenía implementación,AGGREGATEno estaba registrada en absoluto - Las funciones de hoja
CELLeINFOahora se evalúan:CELLadmiteaddress,col,row,type,contents,filename,format, y losinfo_typede estado de la interfaz gráfica (color,parentheses,prefix,protect,width) devuelven valores predeterminados neutros;INFOadmiteosversion,system,recalc,memavail,numfile,release,origin. Ambas estaban registradas pero caían a#NAME? - El formato condicional transporta ahora de ida y vuelta los atributos
cfRulestopIfTrue,stdDev,equalAverageytimePeriod, 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 superior y de banda de fechas, y descartarlos cambiaba cómo se reevaluaba la regla al volver a abrir - La exportación CSV ganó una propiedad
TXLSCsvEncodingenTXLSCSVSavercon tres modos:ceSystemAnsi(predeterminado heredado),ceUtf16(el modo Unicode histórico) yceUtf8que escribe un archivo UTF-8 con la marca de orden de bytes EF BB BF — el predeterminado moderno apto para Excel que se reabre sin el asistente de importación de texto en cualquier configuración regional - La importación CSV ganó una propiedad
LocaleTolerantNumbersenTXLSCSVLoader. Al activarse, un campo numérico que no se pueda 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 tokens que llevan coma siguen siendo texto
Corregido
- La inferencia numérica en modo estricto del motor XLSX ya no convierte campos de texto con coma (por ejemplo
3,14) en números mediante elTryStrToFloatde Delphi, que tolera una coma como separador de miles incluso cuandoThousandSeparatorestá definido a#0. Tales campos ahora se quedan como texto a menos que se active la nueva opciónLocaleTolerantNumbers
Versión 2.140.0
Cambiado
- El motor XLSX compacta ahora sus seis pools de estilo por atributo (Fonts / Fills / Borders / NumberFormats / Alignments / Protections) antes de cada guardado: una nueva pasada
CompactStylePoolsexplora los índices de estilo de cada celda y descarta las entradas del pool a las que ya no referencia ninguna celda — las entradas que se acumulan cuando las celdas se vacían, se eliminan o se reestilan tras de que la entrada del pool se añadiera por primera vez. Los pools compactados producen una tabla<cellXfs>más pequeña en el archivo de salida (normalmente entre un 30 y 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
Añadido
- Las formas de la capa de dibujo, los conectores, las formas de grupo y los marcos gráficos que no son de gráfico se transportan ahora literalmente: cuando el lector XLSX encuentra un anclaje
<xdr:sp>,<xdr:cxnSp>,<xdr:grpSp>o<xdr:graphicFrame>que no es de gráfico y que el modelo tipado (imágenes / gráficos / cuadros de texto) no cubre, captura el XML de anclaje completo y lo reproduce sin cambios al guardar — de modo que los dibujos creados en Excel (flechas, llamadas, formas agrupadas, marcos de smart art) sobreviven a un ciclo de lectura y escritura sin pérdida. Cada hoja exponeRawDrawingAnchorCount/RawDrawingAnchor(i)para inspección
Versión 2.138.0
Añadido
- Los valores de celda en caché de vínculos externos se transportan ahora 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.xml, y la reapertura restaura todos los valores en caché.FindCachedCell(sheetIdx, row, col)busca el último valor conocido de una celda referenciada externamente — los datos que el propio Excel muestra cuando el libro remoto está desconectado
Versión 2.137.0
Añadido
- El indicador
quotePrefixde cellXf OOXML — el mecanismo de Excel para marcar el texto almacenado como un 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 prefijara con un apóstrofo) — se transporta ahora de ida y vuelta en el motor XLSX:TXLSXAlignmentgana una propiedadQuotePrefix, el pool de alineación la cuenta en la desduplicación, el escritor emitequotePrefix="1"en el<xf>coincidente, y la reapertura lo restaura tanto si el cellXf llevaba un hijo<alignment/>como si era un<xf quotePrefix="1"/>desnudo autocerrado
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 fichero compuesto de forma determinista, evitando que los ficheros 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 hojas de origen entrecomillados que contengan un signo de exclamación, rechaza referencias de filas de tamaño excesivo antes de que puedan convertirse por desbordamiento en una fila BIFF válida y limita los nombres de las leyendas de las líneas de tendencia al límite de texto corto de BIFF para que los registros de gráficos 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 de listas de objetos internas y las cachés de claves únicas transformadas ahora liberan las entradas de su propiedad en caso de sobrescritura, limpieza y destrucción, lo que evita fugas durante operaciones repetidas de libros de trabajo y estilos
Versión 2.132.15
Corregido
- Las lecturas directas en flujo XLSX ahora decodifican celdas booleanas que almacenan valores literales OOXML como true y false
- Las actualizaciones del índice interno de la lista de cadenas 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 aviso y de error de validación de datos BIFF8 cuyo primer carácter es NUL ahora conservan los límites del registro en lugar de escribir una longitud de DV no coincidente
Versión 2.132.13
Corregido
- El análisis de texto XML ahora rechaza inicios de entidades anidadas como && en lugar de omitir silenciosamente la entidad no finalizada
- 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 diferentes configuraciones regionales
Versión 2.132.12
Corregido
- La transparencia de PNG con paleta ahora ignora los colores transparentes que no están presentes en la paleta de la imagen, 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 celdas innecesarias mientras se conserva 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 de tamaño excesivo, en lugar de silenciarse como un resultado exitoso en blanco
- La truncación de la tabla de cadenas compartidas ahora libera los bloques finales correctos y mantiene la tabla reutilizable después de grandes ciclos de eliminación
Versión 2.132.10
Corregido
- Las búsquedas exactas MATCH ahora respetan los caracteres comodín de Excel, y los metadatos clásicos de desplazamiento de fila XLS ahora ignoran las filas fuera de bloque en lugar de corromper la estructura del libro de trabajo guardado
- Los metadatos de texto comprimido 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 comprimido PNG, la inserción de la lista de fragmentos y el manejo del orden de bytes de CRC ahora se mantienen estables en todas las plataformas Windows compatibles
Versión 2.132.8
Corregido
- Las fórmulas LEFT y RIGHT ahora devuelven #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 los caracteres comodín ?, * y ~ al estilo de Excel
- La validación del nombre de la hoja de cálculo ahora rechaza caracteres de nombre de hoja de Excel no válidos 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 acumulación de mes y día compatible con Excel, incluidas llamadas como DATE(2008,14,2)
- Las lecturas de Hidden para rangos de columnas ahora informan de la visibilidad de cada columna en lugar de mezclarla con el estado de visibilidad de las filas
- Los metadatos de filas BIFF en el límite de filas de Excel 97-2003 ahora se cargan correctamente, de modo que se conservan los ajustes 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é dinámica no válidos sin generar excepciones
- La carga de flujos y paquetes 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 mal formadas o aperturas de almacenamiento respaldadas por flujo fallidas
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 conserva los nombres de entrada ZIP que no son ASCII con metadatos UTF-8, lo que evita caracteres corruptos 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á desactivado, 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 de matriz Variant distintos de cero en lugar de generar errores para matrices válidas basadas en uno
Versión 2.132.2
Cambiado
- La ordenación de rangos ahora utiliza un paso de ordenación estable O(n log n) para rangos ordenados grandes, mientras conserva el comportamiento de ida y vuelta del contenido de la fila existente
- El análisis y formato 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 forma limpia bytes de fórmula mal formados o truncados
- Las rutas clásicas de apertura y guardado de libros de trabajo 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, expande los búferes de destino antes de copiar y rechaza de forma limpia las referencias hacia atrás de compresión VBA mal formadas
Versión 2.132.1
Corregido
- Se ha corregido el mensaje de error generado cuando un libro cifrado utiliza un esquema de cifrado no admitido: anteriormente afirmaba que no se podía leer el cifrado ágil ECMA-376, a pesar de que el descifrado Agile (AES-128/192/256) se admite desde la versión 2.119.0; ahora el mensaje detalla los esquemas realmente admitidos
- El método Open ahora dirige a los llamadores a TXLSXWorkbook.OpenEncrypted cuando rechaza un paquete OOXML cifrado, en lugar de indicar que no se admiten libros de trabajo cifrados
Versión 2.132.0
Cambiado
- La carga de XLSX es 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 exploración, reduciendo a más de la mitad las asignaciones de memoria por celda. La apertura multiproceso (2.128.0) es la más beneficiada, ya que las asignaciones eliminadas eran las que serializaban los hilos de trabajo; los libros de trabajo de múltiples hojas ahora se abren casi el doble de rápido que en la ruta de un solo hilo en máquinas multinúcleo, y la apertura de un solo hilo también mejora un pequeño porcentaje
Versión 2.131.0
Añadido
- Los bloques de extensión de hoja de cálculo que HotXLS no modela (entradas
<ext>en la lista<extLst>de una hoja de cálculo distintas de los minigráficos, según las escribe Excel para funciones como el formato condicional x14 o los segmentadores de datos) ahora se conservan textualmente cuando se abre un libro de trabajo y se vuelven a escribir al guardar, de modo que abrir y volver a guardar un archivo ya no elimina esas extensiones; los bloques capturados son visibles en modo de solo lectura a través deWorksheet.RawWorksheetExtsy se trasladan con la hoja cuando esta se copia a otro libro de trabajo
Versión 2.130.0
Añadido
- Los libros de trabajo guardados que contienen fórmulas ahora llevan la parte de cadena de cálculo
xl/calcChain.xml, lo que permite a Excel alimentar su motor de dependencias a partir del orden registrado en lugar de reconstruirlo al cargar; después de una llamada aRecalculate, la cadena sigue el orden topológico del gráfico de dependencias y, en caso contrario, las celdas de fórmula se enumeran en el orden del documento (una sugerencia válida que Excel refina sobre la marcha). La parte, su tipo de contenido y su relación con el libro se emiten juntos y sobreviven a los procesos de ida y vuelta de apertura y guardado
Versión 2.129.0
Añadido
- La nueva propiedad
Workbook.ParallelParseThreadsajusta la cantidad de hilos de trabajo para la ruta de apertura multiproceso introducida en la versión 2.128.0 (0 = automático, un hilo de trabajo por núcleo de CPU). El análisis de las hojas de cálculo consume mucha memoria y la asignación de memoria se serializa en todos los hilos, por lo que en algunas cargas de trabajo un pequeño límite explícito funciona tan bien o mejor que el recuento total de núcleos; la propiedad permite a los integradores elegir el valor óptimo para sus archivos
Versión 2.128.0
Añadido
- Carga XLSX multiproceso: abrir un libro de trabajo ahora analiza el XML de cada hoja de cálculo (el coste dominante en archivos grandes) en hilos de trabajo, por lo que los libros de trabajo con múltiples hojas se abren más rápido en máquinas multinúcleo. Las partes de las hojas se extraen previamente del paquete y cada hilo de trabajo solo manipula su propia hoja, de modo que el libro de trabajo cargado es idéntico al resultado secuencial
- La nueva propiedad
Workbook.ParallelParse(por defectoTrue) vuelve a cambiar 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 recursos limitados
Cambiado
- La devolución de llamada de lectura
OnProgressse sigue ejecutando una vez por hoja de cálculo en el hilo de llamada, ahora a medida que cada hoja se despacha para el análisis en lugar de hacerlo estrictamente entre hojas
Versión 2.127.0
Añadido
- Recálculo incremental en el motor XLSX: el nuevo método
Workbook.Recalculatecrea 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 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), editar una entrada recalcula solo sus fórmulas descendentes 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 de forma estática (nombres de múltiples áreas, libros de trabajo externos); el motor realiza un recálculo por exceso en lugar de arriesgarse a obtener un resultado obsoleto - Se detectan ciclos de referencia 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 aun así evalúa cada fórmula fuera del ciclo. Las referencias entre hojas, los rangos con nombre y las fórmulas de matriz CSE (los resultados se desbordan a lo largo del rango anclado) participan plenamente en el gráfico de dependencias
Cambiado
- La ruta de
Calculatebajo demanda existente no cambia;Recalculatees una API independiente de inclusión opcional y los libros de trabajo que nunca la llaman se comportan exactamente como antes
Versión 2.126.0
Añadido
- Minigráficos en el motor XLSX: las hojas de cálculo ahora admiten grupos de minigráficos (los minigráficos en celda que Excel representa a partir de un rango de datos), con los tres tipos de Excel (línea, columna, pérdidas/ganancias apiladas). Cree uno con
Worksheet.AddSparklineGroupo cree grupos manualmente a través de la nueva colecciónWorksheet.SparklineGroups, agregando cualquier número de minigráficos por grupo, cada uno con un rango de origen y una celda de visualización - Los grupos de minigráficos exponen el conjunto completo de opciones que ofrece Excel: grosor de línea, marcadores de puntos de datos, alternadores de énfasis para puntos altos/bajos/negativos/primeros/últimos, ocho ranuras de color ARGB (serie, negativo, eje, marcadores, primero, último, alto, bajo), escala del eje vertical por grupo o por minigráfico, y manejo de huecos/ceros/intervalos para celdas de origen vacías
- Los minigráficos sobreviven a un proceso completo de ida y vuelta de guardar y abrir: al guardar se emite el bloque de extensión de hoja de cálculo
extLst([MS-XLSX] §2.3.6) para que Excel 2010 y versiones posteriores representen los minigráficos, y abrir dicho libro de trabajo —ya sea escrito por HotXLS o por Excel— reconstruye cada grupo, option, y range para que persistan a través de los ciclos de edición; copiar una hoja a otro libro de trabajo también clona sus grupos de minigráficos
Versión 2.125.0
Añadido
- Siete funciones de texto de recuento de bytes DBCS procedentes 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, por lo 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 líder/secundario de DBCS retroceden al límite de carácter más cercano, coincidiendo con el comportamiento de Excel
Versión 2.124.0
Añadido
- Cinco funciones de distribución y prueba de hipótesis procedentes del análisis de brechas de XLSSuit ahora se evalúan en ambos motores:
Z.TEST(probabilidad de una cola en el extremo derecho de que la media muestral sea al menosxbajo la hipótesis nula),T.TEST(valor p de la prueba t de dos muestras emparejadas; los tipos de varianza igual/desigual no emparejados se aplazan),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). Los cálculos matemáticos del valor p reutilizan las funciones auxiliares de CDF normal/t de Student/chi-cuadrado existentes en el motor mediante rutinas anidadas independientes, por lo que no cambia ningún método Calc de utilidad existente
Versión 2.123.0
Añadido
- Catorce funciones de fórmula que una comparación con XLSSuit identificó como brechas ahora se evalúan en ambos motores:
AVERAGEIF(promedio de un solo criterio, el hermano de SUMIF/COUNTIF que le faltaba al motor),WORKDAY.INTLyNETWORKDAYS.INTL(máscaras de fin de semana personalizadas mediante los códigos numéricos 1-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 por acotamiento),CEILING.PRECISE/FLOOR.PRECISE/ISO.CEILING(redondeo independiente del signo),PERCENTRANK.INC/PERCENTRANK.EXC(rango percentil con la interpolación inclusiva/exclusiva correspondiente),MODE.MULT(desborda todos los valores empatados en la frecuencia más alta),ERF.PRECISE(función de error de Gauss mediante su serie alterna),ACCRINT(intereses devengados) eISPMT(interés del período para amortización de principal constante)
Versión 2.122.0
Añadido
- Los comentarios encadenados (Excel 365) ahora realizan la ida y vuelta completa en el motor XLSX:
AddThreadedCommentyAddThreadedReplyen una hoja de cálculo crean un árbol de respuestas padre→hijo anclado a una celda, registran automáticamente a cada autor en una nueva listaPersonsa nivel de libro y emiten la parte dedicadaxl/threadedComments/threadedCommentN.xmlpor hoja más el archivoxl/person/person.xmlcon alcance de libro; volver a abrir dicho paquete reconstruye el árbol de conversación y la lista de participantes a partir de esas partes, de modo que las cadenas de respuesta, los identificadores y los nombres para mostrar sobreviven a un ciclo completo de lectura→escritura
Versión 2.121.0
Añadido
- 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, de modo queSEQUENCE(3;2;1;1)devuelve una cuadrícula de 3×2,SORTreordena las filas por cualquier columna clave de forma ascendente o descendente,UNIQUEcontrae las filas duplicadas conservando la primera aparición yXMATCHinforma de 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
Añadido
- El nuevo método
PasteFromClipboarden las hojas de cálculo de ambos motores lee texto delimitado por tabulaciones del portapapeles de Windows (los datos que Excel coloca allí cuando se copia un rango, o una selección de texto sin formato de cualquier otra aplicación) y lo escribe en las celdas a partir de la fila y columna indicadas, con la misma promoción de tipo numérico/fecha/booleano que ya utiliza el cargador de CSV; el texto que comienza con=se convierte en una fórmula activa, coincidiendo con el comportamiento de pegado del propio Excel
Versión 2.119.0
Añadido
- Lectura de cifrado ágil ECMA-376, la protección por contraseña que Excel 2010 y versiones posteriores aplican de forma predeterminada:
OpenEncryptedahora analiza el descriptor de cifrado XML, deriva las claves con hashing de conteo de iteraciones SHA-512, verifica la contraseña y descifra el paquete segmentado AES-CBC (AES-128/192/256), de modo que los libros protegidos por contraseña directamente en Excel se abren sin necesidad de tener Excel instalado OpenEncryptedmaneja los tres casos a través de un único punto de entrada:.xlsxsin cifrar, cifrado estándar (nuestro proceso de ida y vuelta deSaveAsEncrypted) y cifrado ágil; una contraseña incorrecta genera el mismo error claro en todos los esquemas
Corregido
- Guardar un libro de trabajo
.xlsxcuyo XML de hoja de cálculo excedía aproximadamente los 116 KB (unas 3000 filas de datos de cadena típicos) fallaba con un desbordamiento de pila; la suma de comprobación CRC-32 del escritor ZIP ahora procesa los datos en porciones de 64 KB, lo que evita que el motor de compresión tome su ruta de código para entradas grandes que asigna un búfer temporal de tamaño excesivo en la pila. El resultado de la suma de comprobación no cambia
Cambiado
- La desduplicación de cadenas compartidas ahora se realiza a través de una tabla hash en lugar de escanear la lista de cadenas, y la parte
sharedStrings.xmlse ensambla a través de un generador de cadenas pre-expandido en lugar de concatenaciones repetidas; esto, junto con el índice de celdas de tiempo constante, reduce el tempo de 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 compatibilidad 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
Añadido
- Ahora se puede aplicar un AutoFilter de hoja de cálculo a los datos para que el libro de trabajo guardado se abra con las filas que no coinciden 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 pueden cambiar de tamaño por un factor de escala con bloqueo opcional de la relación de aspecto
- 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 de permisos detalladas (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; las configuraciones por acción sobreviven al ciclo de guardado en el archivo
- Las hojas de cálculo XLSX ahora se pueden duplicar (TXLSXSheets.Duplicate): se agrega una nueva hoja y 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 pestaña se copian en ella, reflejando la opción de 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, esquema de filas/columnas, paneles inmovilizados, diseño de múltiples hojas, fórmulas de matriz, copiar/mover rango, buscar/reemplazar, sistemas de fechas, texto enriquecido, CSV avanzado, opciones de exportación HTML, formatos de número personalizados, filas/columnas ocultas y protección de hoja de cálculo
Versión 2.90.29
Modificado
- El lector directo en flujo ahora cuenta cada celda poblada incluso cuando no hay un manejador por celda adjunto, por lo que se puede usar una simple llamada a ReadFile para dimensionar una hoja de cálculo rápidamente; el recuento devuelto y la propiedad CellCount informan del número de celdas pobladas escaneadas
Versión 2.90.28
Añadido
- 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, e informa cada reducción con su subexpresión de origen, la misma subexpresión después de que sus operandos sean sustituidos por sus valores, y el valor resultante, para 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 para que cada paso coincida con un recálculo completo
Versión 2.90.27
Añadido
- Los libros XLSX ahora se pueden producir celda por celda a través de un nuevo escritor directo en 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 en múltiples hojas y hace el recorrido completo con el lector directo en flujo
Versión 2.90.26
Añadido
- Los libros XLSX ahora se pueden escanear celda por celda a través de un nuevo lector directo en flujo que genera 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 la fórmula e índice de estilo, con detección de fecha opcional y soporte de aborto temprano
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, el texto de visualización y la información en pantalla
Versión 2.90.24
Añadido
- Los saltos de página clásicos de XLS ahora se pueden añadir desde posiciones de fila o columna de 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
Añadido
- 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
Añadido
- 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
Añadido
- 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
Añadido
- 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
Añadido
- 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 una nueva función AddTextBox
Versión 2.90.18
Añadido
- 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