Notas de versão do HotXLS
Histórico de versões para recursos visíveis, correções, melhorias XLS/XLSX, exportação, compatibilidade e documentação do HotXLS
Última versão publicada
- Última versão: 2.384.120; Data de lançamento: 2026-10-09
Versão 2.384.120
Adicionado
- A captura portátil de Classic XLS suporta gráficos comuns de colunas, barras, linhas, dispersão, pizza, rosca e área de série única, com valores armazenados locais validados, aparência essencial e limites de área de plotagem, de título e de legenda declarados pelo chamador
- As declarações de aparência de gráfico somente leitura retêm identidades de planilha e de gráfico, dimensões explícitas de moldura, tamanhos efetivos de ponto da legenda e geometria nativa de fonte para a saída desacoplada em PDF, SVG e PNG
- Helpers delimitados inspecionam referências simples de fórmulas armazenadas e células de gráfico em cache sem avaliar fórmulas nem expandir células esparsas
Corrigido
- A captura de gráficos Classic preserva tamanhos fracionários armazenados de fonte e de marcador, a propriedade da origem e os leases de leitura, e rejeita registros malformados, aparências não resolvidas e orçamentos de recursos esgotados antes da saída
- Atualizações de propriedades de gráfico com valor double rejeitam valores não finitos antes da comparação ou da alteração
- Inicializações repetidas de células portáteis nativas liberam as strings gerenciadas anteriores durante a captura
Versão 2.384.119
Corrigido
- A inspeção de gráficos Classic valida o texto armazenado de séries, os nomes de linhas de tendência e os separadores de rótulos de dados antes de aplicar o estado tipado, e libera os modelos parciais quando texto malformado gera um erro
- Separadores de rótulos de dados em Unicode compactado mantêm todos os caracteres armazenados deles
Versão 2.384.118
Adicionado
- A inspeção de gráficos Classic expõe diâmetros de marcador em pontos, incluindo tamanhos fracionários, preservando as unidades armazenadas originais
Corrigido
- As tabelas de preenchimento de gráficos Classic nativas com suporte decodificam propriedades depois de entradas complexas, e tabelas malformadas preservam o preenchimento tipado anterior
Versão 2.384.117
Adicionado
- Helpers explícitos de codificação em bytes preservam nulls embutidos e rejeitam texto que não pode ser representado pela página de código selecionada
Alterado
- Texto, fórmulas e metadados de pasta de trabalho do BIFF5 Classic usam a codificação declarada deles no Windows, Linux e macOS, com comprimentos em bytes codificados e fronteiras de caracteres completos
- Texto legado de gráficos com suporte mantém a decodificação original depois de edições e cópias de página de código, e é transcodificado explicitamente antes de salvar sob uma codificação diferente
Corrigido
- O Unicode compactado do BIFF8 preserva as unidades de código exatas, e estilos personalizados legados, texto de gráfico e continuações de cache de fórmulas de dois bytes usam os layouts de registro reais deles
- O cálculo nativo de texto Unicode, os critérios, as chaves de lookup, as vinculações locais de fórmulas e a busca e substituição do Classic preservam a correspondência de maiúsculas e minúsculas com suporte
- A busca por estilo nomeado resolve a primeira entrada armazenada sem tratá-la como um nome ausente
- Leituras repetidas de entradas ZIP liberam os metadados de cabeçalho anteriores, mantendo o comportamento concorrente de streams armazenados e deflados
Versão 2.384.116
Adicionado
- Campos de Pivot locais calculados com o SUM avaliam fórmulas a partir de somas de contexto de folha, de subtotal e de total geral, incluindo dependências ausentes das medidas exibidas
- Itens calculados de propriedade do cache retêm identidades nativas de membros, dependências ocultas e ordem de solução global nos campos com suporte não agrupados cujos membros são texto
- Os cálculos de exibição de itens calculados e os filtros de agregação com suporte retêm a ordem visível de membros, a ordem original de filtros e identidades não ambíguas de medidas exibidas
Corrigido
- A projeção de datas de fórmulas de Pivot nativas preserva o sistema de datas da pasta de trabalho através de importação, clonagem e cálculo de cache
- A limpeza de cache de itens ausentes preserva a propriedade validada de relatórios materializados nos dois sistemas de datas da pasta de trabalho e em relatórios salvos legados
- Metadados de Pivot calculado sem suporte e saída nativa editada são rejeitados antes de alterar os resultados da planilha
Versão 2.384.115
Adicionado
- A saída portátil nativa em PDF, SVG e PNG suporta texto rico, formas modeladas, imagens comuns, imagens dentro da célula, caixas de seleção booleanas e sete famílias de gráficos XLSX em cache com suporte
- Planos de impressão imutáveis da pasta de trabalho aplicam áreas de impressão completas, títulos repetidos de linhas e de colunas, quebras de página, configuração de papel, margens, orientação, centralização, dimensionamento e ordem de páginas no Linux e no macOS
- A geometria nativa explícita de fontes suporta captura com verificação de geração sem trocar o provedor de geometria da pasta de trabalho
Corrigido
- O modo ajustar à página sobrevive a idas e voltas da pasta de trabalho e ignora o dimensionamento percentual desatualizado, incluindo dimensões de ajuste ilimitadas
- Fontes de título de gráfico, aparência de linha e preenchimento e bordas de marcador com suporte retêm os valores explícitos importados e criados, incluindo o preto
- Texto rico preserva sobrescritas falsas explícitas e distingue a aparência efetiva de runs durante o reuso de strings e a comparação semântica
Versão 2.384.114
Adicionado
- Aplicações nativas para Linux x64 e macOS ARM64 carregam, editam, calculam e salvam pastas de trabalho BIFF8 Classic, incluindo propriedades de documento com suporte e criptografia RC4
- O armazenamento composto portátil suporta escopos aninhados, contêineres DIFAT encadeados grandes, metadados e propriedade explícita da interface de armazenamento nativa
Corrigido
- Pastas de trabalho CryptoAPI de 128 bits anunciam um provedor criptográfico compatível e mantêm as propriedades de documento legíveis em texto puro
- Carimbos de data/hora nativos de documentos usam a época FILETIME correta e preservam os valores UTC entre plataformas
- Nomes definidos Classic compartilham a identidade Unicode canônica entre busca de escopo, fórmulas e reabertura da pasta de trabalho
- Separadores escapados de formato de data e literais entre aspas embutidos mantêm o formato de data completo selecionado
Versão 2.384.113
Adicionado
- A limpeza de intervalos e a colagem de texto Unicode suportam desfazer e refazer atômicos e delimitados, com verificação prévia de proteção e de estrutura
- Imagens locais tipadas dentro da célula e formatos de Checkbox suportam idas e voltas XLSX, metadados de acessibilidade e edições de conteúdo que respeitam a propriedade
- Formatos de Checkbox esparsos de linhas e de colunas preservam precedência, limpezas explícitas e células ausentes através de edições e de idas e voltas XLSX
- O suporte expandido a XLSB inclui fórmulas e caches, nomes, mesclagens, hiperlinks, painéis, tabelas e filtros
- APIs nativas de pasta de trabalho em Linux x64 e macOS ARM64 carregam, editam, calculam e salvam arquivos XLSX, XLSB e ODS com suporte
- A saída de Pivot nativa suporta agrupamento numérico, por data e manual, além de todas as onze funções personalizadas de subtotal
Corrigido
- Nomes com escopo usam normalização Unicode e correspondência de maiúsculas e minúsculas consistentes no Windows, Linux e macOS, sem descartar acentos ou símbolos
- Fórmulas modernas de agregação compilam de forma consistente com o Free Pascal no Windows
- Abrir outra pasta de trabalho substitui os estilos nomeados em vez de manter as definições de estilo do arquivo anterior
- Conteúdo moderno de imagens e de controles sobrevive ao desfazer de intervalos e ao salvamento sem materializar células ausentes
- Caches de fórmulas importados mantêm os metadados originais de valor, e os metadados comuns são distinguidos do conteúdo de imagens dentro da célula
- A comparação semântica distingue o conteúdo local de imagens, os metadados de acessibilidade e os formatos efetivos herdados de controles com travessia esparsa delimitada
Versão 2.384.112
Adicionado
- Teste, extração e substituição com expressões regulares suportam texto UTF-16, capturas, broadcast de arrays e avaliação delimitada no Windows, Linux x64 e macOS ARM64
- GROUPBY e PIVOTBY suportam callbacks de agregação com escopo, múltiplas medidas, cabeçalhos, filtros, totais hierárquicos, ordenação e porcentagens relativas
Corrigido
- Argumentos escalares do SUM mantêm a coerção de Boolean e de texto numérico, enquanto a agregação de intervalos e de arrays mantém as regras de ignorar existentes
- Literais Boolean com escopo e fórmulas de callback de agregação sobrevivem ao armazenamento de funções futuras e à reabertura da pasta de trabalho
Versão 2.384.111
Adicionado
- A saída de Pivot local nativa suporta diferenças e porcentagens em relação ao item base, totais acumulados, porcentagens de linha e de coluna, índice, porcentagens em relação ao item pai, porcentagens acumuladas e ranking denso
Corrigido
- Os cálculos de exibição mantêm a semântica nativa de total, de valor ausente, de divisor zero e de membros ordenados, incluindo médias não aditivas
- Modos de exibição estendidos e identidades de campo base sobrevivem a salvamento, reabertura e atualização explícita pelo Excel
Versão 2.384.110
Adicionado
- A saída de Pivot local nativa suporta layouts compacto, tabular e de estrutura de tópicos, rótulos de ancestrais repetidos, posicionamento padrão de subtotais e múltiplas medidas em qualquer um dos eixos de dados
Corrigido
- As configurações de rótulos repetidos sobrevivem a aliases de namespace importados e a salvar/reabrir, enquanto a saída nativa distingue interseções ausentes de zero numérico
- Os metadados de layout preparados em etapas mantêm as legendas de campos e de dados consistentes quando o Excel atualiza explicitamente os relatórios gerados
Versão 2.384.109
Adicionado
- A comparação de pastas de trabalho distingue valores tipados e inteiros grandes exatos, suporta tolerâncias numéricas finitas e a comparação opcional de cache de fórmulas armazenado, de estilos e de geometria
- A comparação semântica delimitada cobre nomes, regras, tabelas, ordem de desenho, regiões com estilo em branco, runs efetivos de texto rico, modelos locais de Pivot, seleções de Slicer e estado de Timeline, nos casos com suporte
Alterado
- A comparação preserva células empacotadas e ausentes, resolve identidades de recursos em valores efetivos e mantém o resultado bem-sucedido anterior em modelos sem suporte ou com esgotamento de recursos
Corrigido
- A validação de precisão de parâmetros REAL tipados de banco de dados compila com o Delphi XE5, mantendo as verificações de valor exato, de overflow e de null
Versão 2.384.108
Adicionado
- Idas e voltas de ODS mantêm o texto e os autores comuns de notas, os filtros de valores representáveis e os personalizados, a proteção explícita de células e a proteção equivalente de planilha sem senha
- Os relatórios de conversão mantêm as perdas precisas de metadados através de cópias de planilhas e de salvamentos posteriores, incluindo expressões de filtro sem suporte e proteção não equivalente
Corrigido
- Salvamentos de ODS em stream cancelados ou com falha preservam os bytes, o tamanho e a posição do destino através de uma preparação delimitada com arquivo temporário
- Salvamentos de ODS bem-sucedidos que começam em uma posição de stream diferente de zero preservam o prefixo e corrigem os offsets das entradas ZIP
Versão 2.384.107
Adicionado
- A inspeção de fórmulas armazenadas e as fórmulas de agregação de Pivot conscientes de referências funcionam em contextos de avaliação Classic XLS, XLSX, somente leitura e isolados, incluindo resultados de array disponíveis e erros tipados
- As consultas de agregação de Pivot respeitam membros visíveis modelados, filtros de relatório e subtotais com suporte através de avaliação desacoplada e delimitada de cache, sem atualizar os dados de origem
Corrigido
- Os caches de Pivot XLS nativos do Excel mantêm valores numéricos inline sucessivos e os metadados atuais de validade do cache em vez de retornar totais repetidos incorretos
- As referências de Pivot incluem a área de filtro de relatório modelada acima da localização da tabela principal
Versão 2.384.106
Adicionado
- Consultas automáticas de banco de dados vinculam parâmetros literais tipados e parâmetros de células armazenadas em ordem posicional, preservando Unicode, texto vazio, zero, Boolean, datas e nulls sem substituir valores no texto SQL
- Parâmetros de célula leem os caches de fórmulas disponíveis e os valores armazenados compactos sem recálculo ou materialização, com validação delimitada de metadados e aplicação transacional dos resultados
Corrigido
- Os parâmetros de data do Jet e do ACE preservam os valores DATE, TIME e TIMESTAMP através de vinculações tipadas de OLE DATE, independentemente das projeções de timestamp dependentes de locale
Versão 2.384.105
Adicionado
- Metadados de fórmula leem a identidade real do arquivo referenciado, os formatos numéricos base com suporte, cores negativas, parênteses positivos, alinhamento de texto, estado de bloqueio, largura de coluna e modo de cálculo nos contextos de avaliação XLS e XLSX
- A inspeção desacoplada de estilo base e de extensão esparsa de eixos preserva células armazenadas e empacotadas, padrões de planilha, cores de tema e a propriedade da pasta de trabalho emprestada
Alterado
- Os metadados de largura de coluna retornam a largura arredondada em caracteres e a flag de largura padrão como um array de duas colunas; informações indisponíveis do ambiente do aplicativo Excel e formatos não classificáveis reportam erros explícitos
Versão 2.384.104
Adicionado
- A validação de importação suporta tipos escalares estritos, limites numéricos e de data, sistemas de datas explícitos do Excel, exclusividade composta e relações entre colunas
- Violações estruturadas identificam a planilha, a célula, a regra, a coluna relacionada e a primeira linha duplicada, enquanto a validação de valores armazenados preserva células empacotadas e reporta caches de fórmulas indisponíveis sem recálculo implícito
Versão 2.384.103
Adicionado
- Consultas automáticas de texto atualizam arquivos de largura fixa usando inícios de campo declarados, codificações de caracteres com suporte, conversão tipada de campos, campos ignorados e seleção de cabeçalho ou de primeira linha
- A atualização de largura fixa preserva aspas literais, corta o preenchimento dos campos e rejeita limites inválidos, entrada grande demais e cancelamentos antes de aplicar mudanças à planilha
Versão 2.384.102
Alterado
- Auditorias de símbolos de fórmulas Classic escaneiam mais rápido preservando os achados de funções e de nomes, a deduplicação sem diferenciar maiúsculas de minúsculas, o escopo e a ordem dos achados
Corrigido
- Salvamentos de pastas de trabalho no Windows, patching direto de pacotes, saída em PDF e saída de imagem de página podem substituir atomicamente um arquivo existente mantido por metadados de delete-sharing ou por handles de leitura em sistemas de arquivos com suporte, mantendo as verificações de lock, a proteção readonly e o caminho legado em sistemas de arquivos sem suporte
Versão 2.384.101
Adicionado
- Arrays de seleção de área do INDEX fazem broadcast com seletores de linha e de coluna sobre arrays calculados e uniões de referências na mesma planilha com suporte, retendo a orientação, os tipos de valores selecionados e os erros individuais
- Nomes definidos e vinculações do LET retêm a identidade de referência multiárea com suporte, e o CHOOSE escalar mantém a referência selecionada para o cálculo posterior
Corrigido
- O INDEX aceita um argumento de área explícito igual a 1 para origens calculadas e distingue seletores de área inválidos, ausentes, fracionários e fora do intervalo
- Uniões entre planilhas e uniões de arrays calculados são rejeitadas com o contrato de erros com suporte, em vez de adquirir uma identidade de referência incorreta
- Referências inválidas qualificadas por planilhas locais existentes mantêm os erros de referência delas em fórmulas diretas e nomes definidos, incluindo nomes de planilhas entre aspas, sem alterar as strings de fórmulas nem interpretar qualificadores desconhecidos como planilhas locais
Versão 2.384.100
Adicionado
- Saída portátil headless em PDF, SVG e PNG no Linux, com arquivos de fontes explícitos, shaping nativo de texto, recursos delimitados e publicação exclusiva de arquivos em etapas
- Captura somente leitura no Windows de retângulos Classic XLS e XLSX com suporte em snapshots imutáveis e transferíveis, incluindo resultados de fórmulas armazenados, Table com escopo e aparência condicional, dimensões físicas e mesclagens completas
Corrigido
- A validação portátil de aparência rejeita representações de enum inválidas de forma consistente entre builds otimizadas do compilador
Versão 2.384.99
Adicionado
- Atualização automática explícita de consultas para conexões Text, ADO, ODBC e Web do Windows com suporte, com registro de provedores personalizados e resultados delimitados
Corrigido
- As relações de resultados de consultas nativas e as identidades de colunas persistem ao salvar e reabrir pelos modos com suporte, baseados em tabela ou independentes
- Tipos inválidos de conexão de provedor são rejeitados antes do despacho, sem alterar os resultados da planilha
Versão 2.384.98
Adicionado
- Criação de Timeline de Pivot local, conexões de visualização compartilhada, filtragem inclusiva de dia inteiro e remoção protegida que limpa a seleção ou a preserva
- Atualização explícita nativa de itens sem dados de Slicer entre visualizações conectadas, com limites cumulativos de recursos, cancelamento e preservação da seleção e da identidade dos itens
Corrigido
- O tratamento nativo de relações e da propriedade de filtros da Timeline preserva as seleções importadas com suporte através de materialização, salvamento e reabertura
- As configurações de cross-filter de Slicers de Pivot persistem através da representação tabular nativa delas
- A descoberta de Timelines mantém a decodificação UTF-16 de pastas de trabalho e de partes vinculadas durante o carregamento Open XML
Versão 2.384.97
Adicionado
- Nomes definidos escalares e de arrays calculados disponíveis nos cálculos de agregação numérica e de contagem com suporte, com coerção nativa, rastreamento de dependências e limites de recursos
Corrigido
- A agregação numérica propaga erros tipados de referências locais de planilha, médias vazias retornam erros de divisão por zero, e referências nomeadas com falha mantêm os erros delas sem reiniciar a travessia parcial
Versão 2.384.96
Adicionado
- Argumentos de arrays calculados para junção de texto e para os cálculos com suporte de mediana, estatística de ordem, percentil, quartil, classificação percentual, moda múltipla e covariância populacional
Alterado
- A coleta de arrays e de referências preserva a coerção escalar nativa, erros tipados, o pareamento original de covariância e os limites de recursos de cálculo
Corrigido
- O cálculo do ponto médio da mediana finita evita overflow de mesmo sinal, e percentis exclusivos aceitam ranks válidos de extremidade e de elemento único
Versão 2.384.95
Adicionado
- Saída nativa transacional de relatórios compactos de Pivot com valores de planilha sincronizados, metadados de layout e propriedade de células persistida
- Disponibilidade somente leitura de membros de Slicer entre visualizações conectadas sob outros filtros ativos
- Limpeza explícita de membros históricos do cache de Pivot com retenção configurável e remapeamento coordenado das seleções vinculadas
Alterado
- A saída de Pivot nativa com suporte mantém os filtros manuais e as legendas atuais, e rejeita layouts sem suporte ou células de propriedade do Pivot que foram editadas antes da mutação
Versão 2.384.94
Adicionado
- Visualizações de PivotTable com cache compartilhado e criação local de Slicers de Pivot com limites explícitos de planilha
- Remoção transacional de Slicer que ou limpa a restrição dele ou preserva a seleção como filtros de Pivot comuns, incluindo a política para membros futuros
- Reconstrução de caches agrupados numéricos, de datas e discretos do tipo fixo, com identidades estáveis de membros
- Pré-visualizações desacopladas de metadados de layout de Pivot compacto nativo usando identidades exatas de membros e de agregação
Corrigido
- Reabrir uma pasta de trabalho populada agora substitui os caches de Pivot tipados anteriores, e os links nativos de Slicer criados continuam sendo reconhecidos pelo Excel
- A serialização de caches agrupados preserva os domínios nativos declarados de membros e os atributos oficiais de total geral e de eixo de dados
Versão 2.384.93
Adicionado
- Um leitor e gravador XLSB validado para valores de células tipados, estilos básicos, visualizações de planilha comuns e dimensões
- Saída binária explícita ao salvar a pasta de trabalho em arquivo ou em stream, com detecção automática de entrada binária e relatórios de fidelidade de conversão
Alterado
- A conversão XLSB prepara pacotes completos em etapas e rejeita recursos ou configurações de cálculo sem suporte antes da saída, incluindo salvamentos não verificados ou que permitem perdas
Corrigido
- Os níveis de compressão ZIP configurados são aplicados antes da inicialização do deflater
Versão 2.384.92
Adicionado
- Atualização transacional do cache de Pivot e materialização segura de planilhas para origens locais com suporte de nomes definidos e de tabelas
- Busca de nomes definidos com escopo de planilha e limites de origem resolvidos pelo chamador para a atualização de cache
Corrigido
- A identidade local de origem e o escopo de nomes definidos sobrevivem a movimentações e a renomeações de planilhas, incluindo nomes entre aspas e Unicode
- O XML de fórmulas de nomes definidos omite o sinal de igual inicial opcional, exigido apenas pela sintaxe de fórmulas em memória
- A composição dos totais da tabela segue a contagem real de linhas de totais, preservando todas as linhas de dados quando apenas a dica de UI de totais está presente
Versão 2.384.91
Adicionado
- Entradas de arrays calculados e resultados tipados para transposição, multiplicação de matrizes, determinantes e inversão de matrizes
- Vetores de seleção ordenados, duplicatas e índices negativos para seleção de linhas e de colunas
- Vetores de lookup calculados e solicitações de lookup com valor de array, incluindo fatias completas de lookup escalar e valores de fallback tipados
Alterado
- Trabalho com matrizes, escaneamento de lookup, travessia de seletores, cópia e preenchimento respeitam os limites de etapas de avaliação e de memória de arrays através da composição
Corrigido
- Os caches de texto de fórmulas e de resultados de array são exibidos corretamente no Excel antes do recálculo
- Os caches modernos de erros rich incluem a versão da pasta de trabalho e as declarações de recursos de cálculo exigidas para a exibição nativa em cache
- Opções de lookup e de achatamento rejeitam valores fora do intervalo antes da redução numérica, enquanto opções fracionárias seguem o truncamento nativo
- Resultados vazios de take, drop e flatten mantêm os erros tipados de cálculo deles
Versão 2.384.90
Adicionado
- Pré-visualizações isoladas de resultados de Pivot mantêm as seleções compartilhadas de Slicer e os filtros do chamador sem alterar o cache calculado em uso
- A materialização segura de planilhas para origens locais de Pivot com suporte prepara os resultados em etapas, rejeita conteúdo e estruturas conflitantes e preserva os objetos de célula, a formatação e os comentários existentes
- A propriedade exata de valores tipados sobrevive ao salvamento e à reabertura XLSX, permitindo redimensionar e mover resultados com segurança e a adoção explícita de valores escalares de Pivot existentes
Corrigido
- Excluir a última visualização de Slicer de Pivot vinculada é rejeitado antes de remover o desenho, o cache, o nome reservado ou a seleção dela
- Limpar visualizações de Slicer valida cada cache afetado antes da mutação e limpa em conjunto as visualizações permitidas, os desenhos e os caches não vinculados
Versão 2.384.89
Adicionado
- O INDEX aceita seletores de linha e de coluna com valor de array sobre arrays calculados e intervalos de planilha, incluindo seleções em pares e produtos cruzados de linha por coluna
Corrigido
- Os resultados de seletores preservam valores e erros tipados, preenchem com #N/A as posições ausentes de seletores e respeitam os limites de memória de cálculo e de etapas de avaliação
- Seletores escalares fracionários que truncam para zero produzem spills completos de linha ou de coluna, enquanto seletores negativos retornam #VALUE! antes do truncamento
- A seleção escalar de intervalos mantém o comportamento de referência, e os spills de seletores se recuperam de obstruções, redimensionam e recalculam depois de salvar e reabrir
Versão 2.384.88
Adicionado
- Inspeção tipada de membros, seleção de membros compartilhados e limpeza para os caches de Slicer de Pivot não OLAP importados com suporte
- Cálculos de PivotTable conectados cruzam as seleções de Slicer com restrições independentes em outros campos e com filtros de registro fornecidos pelo chamador
Alterado
- Mudanças de seleção validam cada conexão e membro antes de confirmar, rejeitam máscaras importadas ambíguas do mesmo campo e preservam as representações de cache sem suporte
- Mudanças na coleção de caches de Slicer respeitam a proteção contra gravação da pasta de trabalho quando afetam cálculos de PivotTable conectados
- A exclusão de caches de Slicer de Pivot não OLAP vinculados é rejeitada atomicamente para preservar um estado de filtros consistente em execução e no arquivo salvo
Corrigido
- Seleções de Slicers de Pivot editadas e máscaras de membros de visualizações conectadas são salvas juntas, mantendo os namespaces importados e as extensões desconhecidas
- As conexões de Slicer com suporte seguem as identidades salvas das planilhas e resolvem identificadores estendidos de cache independentemente dos identificadores comuns de cache da pasta de trabalho
- As definições de PivotTable importadas permanecem associadas às visualizações originais delas quando as planilhas são reordenadas
Versão 2.384.87
Alterado
- A atualização local do cache de Pivot retangular preserva as identidades existentes de campos e de membros, acrescenta novos membros tipados e mantém os filtros e as seleções de visualização compartilhada vinculados aos membros originais deles depois de reordenação, remoção ou reintrodução na origem
- Os cabeçalhos da origem casam com os campos do banco de dados pelo nome, permitindo reordenar colunas, enquanto os campos calculados retêm as fórmulas deles e recebem placeholders novos e vazios de registros para avaliações posteriores
- A atualização valida e prepara a origem completa em etapas antes de atualizar o cache, rejeitando schemas sem suporte, tipos de origem, agrupamento derivado e novos membros de grupos discretos não mapeados, sem mudanças parciais
Corrigido
- Os valores de erro de Pivot mantêm os tipos e os códigos deles nos itens compartilhados e nos registros através do salvamento e da reabertura XLSX
- Os domínios de itens compartilhados atualizados recalculam as flags de tipo e os limites representáveis, e os metadados de cache XLSX descrevem com precisão valores mistos, datas, erros, Booleanos e brancos
- A atualização da origem lê células ausentes sem criar células de planilha e compara cabeçalhos de campos Unicode sem truncar o texto deles
- As visualizações de PivotTable atualizadas e salvas incluem os novos membros de cache antes dos itens de subtotal, mantendo a ordem existente de membros, as flags de ocultação e as extensões de layout importadas
- As seleções de página permanecem vinculadas ao membro correto quando a ordem das visualizações difere da ordem do cache, os campos calculados não deslocam mais os registros salvos da origem, e os carimbos de data/hora de atualização usam a representação numérica XLSX
Versão 2.384.86
Adicionado
- O INDEX aceita arrays computados e constantes com seleção escalar, seleção do array completo e extração de linha ou de coluna, mantendo o comportamento de referência para origens de intervalo
- SORT e UNIQUE aceitam arrays calculados e constantes, permitindo composição direta com FILTER, SEQUENCE, LET e outras expressões que produzem arrays
Alterado
- Expressões de array compostas mantêm o redimensionamento automático de spill no XLSX, o cálculo de array de intervalo fixo, erros tipados e o recálculo depois de salvar e reabrir
Corrigido
- A seleção e a ordenação de arrays truncam opções numéricas fracionárias, texto inválido de opção Boolean retorna #VALUE!, e as operações de arrays computados respeitam os limites de memória e de etapas de avaliação
Versão 2.384.85
Adicionado
- Os arrays dinâmicos do XLSX agora calculam em intervalos de spill redimensionados automaticamente, preservam obstruções do usuário com #SPILL!, suportam referências de spill e interseção implícita explícita, e recuperam a propriedade do spill em cache depois de reabrir
- A verificação prévia de conversão reporta as perdas conhecidas do formato de destino, e o salvamento verificado pode rejeitar essas perdas antes de gravar um arquivo ou stream existente
- A saída explícita de modelos habilitados para macro preserva os projetos VBA existentes em pacotes XLTM
- A atualização de tabelas de consulta fornecida pelo chamador suporta resultados delimitados com schema fixo, intervalos de tabela e de filtro sincronizados, progresso, cancelamento e rollback transacional
Alterado
- Faixas de relatório repetidas clonam conversas encadeadas completas com identidades remapeadas e preservam o rollback quando um destino falha
- A validação Boolean personalizada do ODS, os limites com valor de fórmula com suporte, as origens de lista e as referências qualificadas são traduzidos com rebasing da célula base; definições sem suporte e referências de célula são omitidas em conjunto
Corrigido
- Fórmulas de array de intervalo fixo avaliam a aritmética bruta de intervalos elemento a elemento, o MAP com múltiplos arrays aceita parâmetros lambda correspondentes, e o FILTER avalia arrays calculados e máscaras
- Os erros modernos #SPILL! e #CALC! mantêm os metadados tipados de rich-value do XLSX preservando os metadados importados não relacionados e os buckets de rich-value
- Fórmulas XLSX recém-criadas são salvas com separadores de argumentos canônicos e prefixos de funções futuras para interoperabilidade com o Excel; salvar preserva a expressão em memória e reabrir retorna a sintaxe canônica de fórmulas
- As séries de gráficos locais com suporte atualizam os caches numéricos, de texto, de data, de erro, de bolha e de categorias hierárquicas depois de edições e recálculo
- A paginação nativa renderiza as extensões mescladas através da âncora original delas, corta os fragmentos de página e suprime bordas internas e linhas de grade
Versão 2.384.84
Alterado
- Os exemplos de primeiros passos do Delphi e do C++Builder agora incluem um pedido de vendas prático com datas tipadas, preços, descontos e totais calculados, e verificam as pastas de trabalho XLS e XLSX salvas depois de reabrir
- O exemplo de fatura agora conecta uma fatura imprimível a condições de pagamento editáveis e a um livro de recibos, calculando descontos, impostos, pagamentos e o saldo devedor
- O exemplo de layout de planilha agora demonstra criação, enumeração, remoção e preservação de cabeçalhos mesclados depois de reabrir
- Mais nove famílias de exemplos de API focados foram movidas para a pasta Miscellaneous, mantendo o catálogo principal centrado em fluxos de trabalho completos de negócio e em ferramentas interativas
Removido
- Os exemplos mínimos independentes de células mescladas e de texto rico foram consolidados nos exemplos de layout de planilha e de dashboard
Versão 2.384.83
Alterado
- O catálogo de demos agora separa experiências completas e fluxos de trabalho substanciais das receitas de API focadas na pasta Miscellaneous de cada plataforma, com navegação direta e projetos prontos para compilar nos dois níveis
Removido
- Três demos redundantes de intervalo e de layout de planilha foram removidas; os cenários completos delas continuam disponíveis em RangeOps e SheetLayout
Versão 2.384.82
Alterado
- As galerias de dashboard do Delphi e do C++Builder abrem diretamente em uma pasta de trabalho populada, com totais ao vivo, gráficos renderizados, detalhes editáveis, cenários de preços e exportações do resultado atual
- O tour de API oferece navegação direta para dashboard, dados de vendas, pré-visualização de gráficos e receitas de API, com um dataset repetível cobrindo todos os doze meses
- Os exemplos carregam localmente as unidades de cenário e os recursos de manifest de que precisam, permitindo copiar cada projeto sem um diretório comum separado
Corrigido
- O tour de API cria os dados de vendas antes de entrar nas fórmulas do dashboard, permitindo que a vitrine ao vivo dele inicialize com sucesso
- Os gráficos da vitrine ao vivo atualizam os valores e os rótulos em cache depois do recálculo, e exportações repetidas da galeria do C++Builder preservam as edições atuais sem acumular planilhas de relatórios gerados
Versão 2.384.81
Alterado
- Os exemplos de cópia de planilhas verificam conteúdo independente, formatos remapeados, fórmulas e objetos embutidos depois de reabrir a saída deles
- Os exemplos de sistema de datas, busca, agrupamento, fórmula de array e imagem verificam o comportamento distinto deles e reportam saída com falha através de um código de saída diferente de zero
Corrigido
- Os intervalos de AutoFilter do Classic XLS mantêm os limites completos de linhas e de colunas depois de salvar e reabrir, incluindo filtros copiados com critérios ativos
- As galerias de dashboard criam as planilhas referenciadas antes de entrar nas fórmulas, calculam os totais antes de exportar e geram todos os formatos complementares solicitados mesmo quando outra saída falha
- A galeria de dashboard do C++Builder produz os arquivos complementares CSV, HTML e RTF documentados
- Os relatórios compilados preservam o reporte normal de falhas nos builds estáticos Win64 clássicos do C++Builder quando um destino não pode ser substituído
- Os exemplos interativos de API reportam falhas de exportação em PDF, HTML e CSV em vez de afirmar que os arquivos foram gravados
- A vitrine de recursos completa a demonstração de hash semântico com suporte e valida as pastas de trabalho salvas dela sem invocar os snapshots modernos de desenho sem suporte
Versão 2.384.80
Alterado
- O catálogo de exemplos agrupa projetos por tarefa de aprendizado e identifica pontos de entrada recomendados, lições específicas de formato e nomes de projetos compatíveis
- Os exemplos de layout de planilha e de realocação de intervalos compartilham cenários completos preservando os nomes existentes dos projetos e das saídas deles
- Os exemplos de memória, CSV avançado, impressão, propriedades de documento, caixa de texto e proteção de planilha demonstram fluxos de trabalho completos com verificação dos dados salvos e reporte explícito de falhas
Corrigido
- Caixas de texto XLSX reabertas mantêm as relações de desenho delas quando salvas de novo, de modo que as anotações continuam disponíveis através de ciclos repetidos de salvar e reabrir, sem declarações duplicadas de namespace XML
- Os exemplos de conversão em lote respeitam a opção Skip existing antes de abrir origens ou invocar gravadores, e verificam os códigos de sucesso das pastas de trabalho antes de reportar conclusão
- O exemplo de fatura inclui as condições de pagamento e o título completo dele na área imprimível
- O exemplo de console de configuração de página inicia com privilégios comuns de usuário em vez de acionar a detecção de instalador do Windows
Versão 2.384.79
Corrigido
- Salvamentos de arquivos ODS com opções de exportação preservam o destino existente quando a serialização falha ou o salvamento é cancelado, e reportam erros de substituição do destino de forma consistente
- As opções de exportação ODS usam o ciclo de vida normal de salvamento, incluindo política de recálculo, cancelamento pelo progresso, diagnósticos e proteção da pasta de trabalho contra gravação, tanto para saída em arquivo quanto em stream
- Salvamentos de XLSX em stream respeitam a política de recálculo configurada, preservando os valores em cache no modo manual e atualizando as fórmulas alteradas quando solicitado
- Notificações de salvamento concluído de XLSX e ODS não transformam uma saída já gravada em uma falha de cancelamento
- Inicializações e finalizações fracassadas do patch de planilha em fluxo contínuo liberam os handles do arquivo de origem, permitindo que o chamador limpe suas fontes temporárias e reutilize o gravador após uma falha de inicialização
Versão 2.384.78
Corrigido
- Cópias e clones de intervalos preservam a formatação virtual que se intersecta e substituem a formatação de sobreposição anterior apenas dentro do destino, incluindo cópias sobrepostas e formatação entre pastas de trabalho
- Redefinições explícitas de formatação continuam valendo depois de salvar e reabrir pastas de trabalho com formatação padrão de linha ou coluna
- Células XLSX que usam explicitamente a formatação padrão da pasta de trabalho mantêm suas fontes, preenchimentos e formatos numéricos personalizados
Versão 2.384.77
Corrigido
- Os alvos de formato condicional e validação de dados de linha inteira e coluna inteira acompanham edições de linhas e colunas e a clonagem de intervalos quando estão totalmente contidos na origem, com geometria de alvo delimitada e âncoras de fórmulas relativas preservadas
- Estilos repetidos finitos de células em branco importados do ODS mantêm sua extensão completa do intervalo usado, e pastas de trabalho recém-criadas ou redefinidas informam a versão atual da biblioteca nas propriedades do documento
- Cópias de células de linha inteira, coluna inteira e planilha inteira mantêm armazenamento esparso, limpam o conteúdo substituído do destino sem expandir coordenadas em branco e preservam dados de origem sobrepostos e formatação entre pastas de trabalho
Versão 2.384.76
Corrigido
- As regras de formato condicional e validação de dados agora se aplicam de forma consistente a alvos absolutos, invertidos, de linha inteira, coluna inteira e separados por espaços em branco durante a busca, exclusão, cálculo condicional e verificações de validação
- Áreas de alvo malformadas e fora da grade não correspondem mais a células, enquanto as áreas válidas da mesma regra continuam ativas; estatísticas condicionais da grade inteira mantêm armazenamento esparso de células
- Alvos de validação ODS usam âncoras de célula válidas para linhas e colunas inteiras, e alvos condicionais sobrepostos equivalentes não criam mais regras duplicadas ao reabrir
Versão 2.384.75
Corrigido
- As regras de comparação de células e de expressão do ODS mantêm seus intervalos de alvo completos de linha inteira, coluna inteira e largos na saída compatível com Excel; portadores repetidos de branco mantêm os intervalos esparsos compactos e preservam regras sobrepostas e metadados da planilha
- Reabrir regiões repetidas de branco estilizado do ODS mantém sua formatação base compacta, e as regras condicionais padrão retêm precedência sobreposta e cobertura dentro de regiões mescladas
Versão 2.384.74
Corrigido
- O formato condicional ODS mantém as substituições suportadas de fonte, plano de fundo e formato numérico ao salvar e reabrir, incluindo redefinições explícitas; regras com destaques ou intervalos de alvo diferentes permanecem separadas
- O formato condicional XLSX mantém formatos numéricos internos e personalizados, incluindo formatos usados apenas por uma regra condicional; salvar não remove mais esses formatos personalizados nem aponta as regras para um formato diferente
- Os estilos de porcentagem do ODS incluem o símbolo de porcentagem exigido por outros aplicativos de planilha e reabrem sem duplicar esse símbolo
Versão 2.384.73
Corrigido
- Copiar texto para a área de transferência, ler texto dela e colar texto ou dados XML Spreadsheet não falham mais de forma aleatória no Windows 10 e 11. Após cada mudança na área de transferência, o Explorer e o Clipboard User Service (histórico da área de transferência) abrem a área de transferência por alguns milissegundos para lê-la; operações de texto tentavam abri-la uma única vez e podiam falhar com "access denied" nesse instante
- Todas as operações de área de transferência agora usam a mesma política do copiar e colar BIFF8 (formato Excel): continuam tentando abrir a área de transferência por cerca de 500 ms. Quando outro aplicativo segura a área de transferência por mais tempo, a operação ainda falha e o conteúdo existente da área de transferência fica intacto
Versão 2.384.72
Corrigido
- Abrir um arquivo ODS lê o formato numérico General corretamente. O Excel e o LibreOffice gravam General como um estilo numérico sem contagem de casas decimais, o que era lido como duas casas decimais fixas, então um valor como 1,5 aparecia como 1,50; essas células agora não carregam formato numérico, como no aplicativo de origem
- Texto em torno de um número General é mantido, por exemplo
General" kg"
Versão 2.384.71
Corrigido
- Arquivos ODS salvos pelo Excel ou pelo LibreOffice não reportam mais um intervalo usado cobrindo a planilha inteira. Ambos dão a cada linha e coluna um tamanho até a linha 1048576 e a coluna 16384; linhas vazias cuja altura é automática agora mantêm a altura padrão, e os tamanhos de coluna que se estendem até a última coluna passam a ser a largura de coluna padrão da planilha. Um arquivo Excel de 10 linhas, reaberto e salvo de novo, encolhe de cerca de 2,8 MB para poucos KB
- Alturas de linha definidas à mão, e alturas automáticas em linhas com conteúdo (por exemplo, linhas que cresceram para acomodar texto com quebra), continuam sendo mantidas
- Salvar em ODS grava a largura de coluna padrão da planilha (
StandardWidth) nas colunas que não têm largura própria; antes ela era descartada, já que o ODS não tem largura de coluna padrão para a planilha inteira
Versão 2.384.70
Corrigido
- Arquivos ODS salvos pelo Excel ou pelo LibreOffice voltam a abrir em milissegundos. Ambos preenchem cada linha até a coluna 16384 e adicionam um bloco de preenchimento até a linha 1048576; um arquivo de 10 linhas vindo do Excel chegava a levar mais de 5 minutos para abrir, e um do LibreOffice nem terminava
- Células de preenchimento vazias que se parecem exatamente com o estilo de célula Default do documento não são mais transformadas em células em branco formatadas; uma planilha Excel de 10 linhas chegava a ganhar cerca de 180 000 delas. Células vazias com preenchimento, borda, fonte, alinhamento, formato numérico ou proteção próprios continuam sendo mantidas
Versão 2.384.69
Corrigido
- Formatos condicionais salvos em ODS agora aparecem no Excel. Regras de valor (igual, entre, maior que e assim por diante) e regras de fórmula também são gravadas como condições ODF
style:mappadrão nas células que cobrem, a única forma que o Excel lê; antes o Excel abria arquivos ODS do HotXLS sem nenhuma dessas regras - O LibreOffice agora importa regras de valor ODS escritas pelo HotXLS com seu operador e limites reais; antes transformava cada uma delas em "igual a 0"
- Ao abrir um arquivo ODS, formatos condicionais armazenados como condições
style:mapsão lidos, como escrito pelo Excel e por outros produtores ODF. Quando o arquivo também carrega as mesmas regras na forma própria do LibreOffice, cada regra é lida uma única vez - Ao abrir um arquivo ODS, a grafia do LibreOffice para regras de valor é lida (
=5,between(1,10),!="x"); arquivos de versões anteriores do HotXLS continuam abrindo como antes
Versão 2.384.68
Corrigido
- Fórmulas que aplicam um operador a um intervalo de múltiplas células ou a uma matriz inline, como
=SUM(A1:B1*{10,100}),=SUM((A1:B2>2)*1)ou=MAX(A1:B2-1), são armazenadas da mesma forma que o Excel 365 as armazena, então o Excel mostra o mesmo resultado que o HotXLS: em XLSX como fórmulas de matriz dinâmica de célula única, em XLS como fórmulas de matriz de célula única. Antes o Excel as abria com interseção implícita (=SUM(@A1:B1*@{10,100})) e mostrava #VALUE! ou um valor errado - Fórmulas de matriz XLS gravam suas referências e constantes de matriz na forma de matriz, como o Excel faz; antes o Excel avaliava fórmulas de matriz escritas pelo HotXLS com interseção implícita
- Arquivos XLSX com fórmulas de matriz dinâmica (incluindo as criadas com
SetDynamicArrayFormula) abrem no Excel; antes o Excel rejeitava o arquivo inteiro porque os metadados de matriz dinâmica usavam um identificador de extensão com capitalização diferente
Versão 2.384.67
Corrigido
- As comparações de texto seguem a ordem do Excel nos dois motores: ignoram maiúsculas e minúsculas e usam a classificação de palavras da configuração regional do sistema, de modo que os hífens e os apóstrofos só desempatam (
"a-b">"ab"é TRUE) e as demais pontuações se classificam antes de números e letras ("a~b">"ab"e"a_b">"ab"são FALSE). Isso vale para os operadores de comparação, para os critérios>text/<textem COUNTIF, SUMIF, na família *IFS e nas funções de banco de dados, para comparações de matrizes, pesquisas, funções do tipo SORT e classificação de intervalos - VLOOKUP e HLOOKUP comparam texto sem diferenciar maiúsculas de minúsculas, então
VLOOKUP("ABC",...)encontra "abc", como no Excel
Versão 2.384.66
Corrigido
- O formato condicional baseado em fórmulas gravado em ODS agora é reconhecido pelo LibreOffice: a regra é gravada como
formula-is(...)com a célula base, que é a forma que o próprio LibreOffice grava. Antes, o LibreOffice lia toda regra desse tipo como uma regra simples de "valor da célula igual a 0" - As fórmulas de formato condicional gravadas em ODS traduzem matrizes inline, uniões, referências de coluna inteira e de linha inteira e mantêm os marcadores
$da mesma forma que as fórmulas de célula (COUNTIF($A:$A,A1)>1viraCOUNTIF([.$A:.$A];[.A1])>1) - Ao abrir um arquivo ODS, o formato condicional baseado em fórmulas escrito pelo LibreOffice (
formula-is) também é lido, além do presente em arquivos de versões anteriores do HotXLS
Versão 2.384.65
Corrigido
- Referências de coluna inteira e de linha inteira (
A:A,$A:$B,1:1,$1:$2) em fórmulas gravadas em ODS usam a forma de referência do OpenFormula ([.A:.A]). Antes, o Excel abria essas células como=SUM(A:(A))com #NAME?, ou descartava a fórmula; os arquivos ODS do HotXLS agora mostram as mesmas fórmulas e valores no Excel e no LibreOffice
Versão 2.384.64
Corrigido
- As funções de banco de dados (DSUM, DCOUNT, DCOUNTA, DAVERAGE, DGET e as demais) tratam um critério de texto sem operador como "começa com", como o Excel faz:
abno intervalo de critérios corresponde a abc, ab e AB, e os curingas continuam valendo (a?corresponde a toda entrada de dois ou mais caracteres que comece com a).=abe<>abcontinuam comparando a entrada inteira
Versão 2.384.63
Adicionado
- As fórmulas podem conter constantes de matriz inline como
{1,2;3,4}(colunas separadas por vírgulas, linhas por ponto e vírgula, com números, texto, TRUE / FALSE e valores de erro) e uniões de referências como(A1:B2,D4), tanto no motor XLS quanto no XLSX; digitá-las antes falhava com "invalid formula syntax" - Constantes de matriz são avaliadas como matrizes (
=SUM({1,2}*{3,4}),=ROWS({1,2,3;4,5,6}),=SUMPRODUCT(A1:A2,{1;10})), e as uniões funcionam em SUM, COUNT, AVERAGE, MIN, MAX e COUNTA, em AREAS, em ISREF e no argumento area_num do INDEX
Corrigido
- Os arquivos XLS armazenam as constantes de matriz de um jeito que o Excel lê: a constante era gravada como uma referência, e o Excel mostrava
=#N/A; fórmulas XLS que contêm constantes de matriz ou uniões também são lidas de volta com o texto da fórmula
Versão 2.384.62
Corrigido
- O operador de interseção (um espaço entre duas referências) retorna as células que as duas referências cobrem, como no Excel:
=SUM(A1:B2 B1:B2)dá 6 em vez de 2, referências sem uma célula em comum dão #NULL!, e uma interseção pode ser passada a funções que aceitam referências, como ROWS, COLUMNS e INDEX. Isso vale para os dois motores, para fórmulas calculadas e para fórmulas armazenadas em células - Os arquivos XLS mantêm as fórmulas de interseção utilizáveis no Excel: os intervalos referenciados agora são gravados como referências, de modo que o Excel não lê mais
=SUM(A1:B2 B1:B2)como=SUM(@A1:B2 @B1:B2)nem mostra #VALUE! - Uma interseção usada como valor único com mais de uma célula em comum escolhe a célula na linha ou na coluna da fórmula, como qualquer referência de várias células
Versão 2.384.61
Corrigido
- O SUMPRODUCT aceita expressões de matriz como
(B1:B2>0)*1,--(B1:B2>0),B1:B2*C1:C2e um único argumento, nos motores XLS e XLSX; antes isso retornava #N/A. Argumentos de dimensões diferentes retornam #VALUE!, um erro dentro de qualquer argumento é retornado, e texto e valores lógicos contam como 0, como no Excel - Expressões de operador sobre intervalos dentro de SUM, COUNT, AVERAGE, MIN, MAX e COUNTA são avaliadas elemento a elemento, como nas matrizes dinâmicas do Excel:
=SUM((B1:B2>0)*1)conta as duas linhas em vez de usar apenas a primeira célula - TRUE conta como 1 na aritmética:
=TRUE*1retornava -1 - Comparações elemento a elemento tratam um elemento vazio como 0, "" ou FALSE para igualar ao outro lado, e comparam valores lógicos como valores lógicos; juntar um valor lógico com
&em uma matriz dá TRUE / FALSE
Versão 2.384.60
Corrigido
- O Localizar e Substituir com curingas e correspondência de célula inteira (
FindText,ReplaceText,FindTextIn,ReplaceTextInnos dois motores) corresponde à célula inteira do jeito que o Excel faz:a*bagora encontraabcb, que antes era rejeitado porque a correspondência parava no primeirob - No Localizar e Substituir com curingas,
~torna literal o caractere que vem depois e um~no final é ignorado, como o Excel faz:a~bencontraab, ea~~bencontraa~b
Versão 2.384.59
Corrigido
- Os horários de criação e de modificação de documentos XLSX (
Created,Modified) e as propriedades personalizadas com valor de data são lidos corretamente quando o carimbo tem frações de segundo (2026-03-15T08:30:00.123Z) ou um offset de fuso horário (+08:00,-05:00): a hora é convertida para a hora local em vez de ser tomada como hora local sem alteração - Carimbos só de data (
2026-07-01) são lidos como essa data; carimbos com hora mas sem fuso, que o formato W3CDTF não permite, continuam sendo lidos como hora local
Versão 2.384.58
Corrigido
- O AutoFit do XLSX por meio de
TXLSAutoFit(FitXlsxSheet,FitXlsxSheetColumns,FitXlsxSheetRows,MarkSheet) mede cada célula na fonte em que ela é exibida; desde 2.384.46 ele pegava a próxima fonte da lista de fontes da pasta de trabalho, de modo que um cabeçalho em negrito podia ser medido na fonte pequena de outra célula e sair estreito demais - O AutoFit também usa a fonte que a célula herda do estilo da linha ou da coluna dela
Versão 2.384.57
Corrigido
- Com "precisão como exibida" (
FullPrecision = False), o motor XLSX agora arredonda do jeito que o Excel e o motor XLS fazem: formatos de porcentagem mantêm duas casas decimais extras (0.1234 exibido como0.0%armazena 0.123, não 0.1), valores negativos e zero usam a própria seção de formato deles, e pontos médios são arredondados para longe do zero (2.5 exibido como0armazena 3, não 2) - Ambos os motores respeitam as vírgulas de escala por milhar sob "precisão como exibida": 12345.678 exibido como
0.0,(12.3) armazena 12300, como no Excel - Um resultado lógico de fórmula em uma célula com formato de número não é mais transformado em -1 pela "precisão como exibida" do motor XLS
Versão 2.384.56
Corrigido
- Os arquivos ODS gravados pelo HotXLS declaram os namespaces dos prefixos de fórmula deles, de modo que o LibreOffice avalia as fórmulas em vez de mostrar #VALUE! em cada célula com fórmula
Versão 2.384.55
Corrigido
- As fórmulas gravadas em ODS mantêm o significado: matrizes inline usam o separador de linhas do OpenFormula (
{1,2;3,4}vira{1;2|3;4}em vez de uma única linha), uma união de referências como(A1,B2)vira o operador~em vez de dois argumentos de função, e referências absolutas mantêm os marcadores$ - Ler de volta uma união desses do ODS não adiciona mais um segundo par de parênteses, de modo que essas fórmulas sobrevivem sem alteração a uma ida e volta de XLSX para ODS e de volta para XLSX
Versão 2.384.54
Corrigido
- Arquivos XLS protegidos por senha salvos no formato Excel 5.0/95 (ofuscação XOR) agora abrem no Excel. A chave armazenada no arquivo é derivada da senha em vez de ser aleatória, e a matriz de ofuscação usa a rotação de bits que o Excel espera; antes, o Excel reportava senha incorreta para todo arquivo desse tipo, e com apenas a chave corrigida ele reportava o arquivo como danificado
- Pastas de trabalho com ofuscação XOR são lidas com a mesma matriz corrigida, de modo que arquivos cuja chave confere com a senha são descriptografados do jeito que o Excel os criptografa; arquivos XOR gravados por versões anteriores do HotXLS continuam abrindo
Versão 2.384.53
Corrigido
- Comparar uma célula vazia com um valor lógico trata a vazia como FALSE nos motores XLS e XLSX, como o Excel faz: com A1 vazia,
=A1=FALSEe=A1<TRUEagora retornam TRUE e=A1=TRUEretorna FALSE. Antes, a vazia era comparada como 0, que fica abaixo de qualquer valor lógico
Versão 2.384.52
Corrigido
- COUNTIF, COUNTIFS, SUMIF, SUMIFS, AVERAGEIF, AVERAGEIFS e as funções de banco de dados aplicam os critérios de texto com as regras de curinga do Excel tanto no motor XLS quanto no XLSX:
~*e~?correspondem a um asterisco ou a um ponto de interrogação literal, colchetes são caracteres comuns, e um critério sem*nem?é uma comparação simples sem diferenciar maiúsculas de minúsculas. Antes, um critério como"[x]"era lido como um conjunto de caracteres,"~*"não correspondia a um asterisco, e um padrão malformado não correspondia a nada, sem avisar - Critérios
"<>text"contam números, valores lógicos e células vazias como diferentes, e um"<>"sozinho conta toda célula não vazia, como no Excel; a comparação de texto sob<>agora não diferencia maiúsculas de minúsculas - A correspondência com curinga de MATCH e XLOOKUP trata
~como escape para o caractere que vem depois e ignora um~no final, como o Excel faz
Versão 2.384.51
Alterado
- Instantâneos de células somente leitura retêm nomes de planilha em armazenamento UnicodeString compartilhado; SheetName agora é uma propriedade WideString de leitura e escrita com a mesma sintaxe comum de leitura e atribuição de antes, mas nem o endereço bruto do campo dele nem o layout de registros anterior têm suporte; quem chama precisa recompilar contra esta versão
- A saída de relatório para um stream de destino vazio pula o snapshot de backup desnecessário, preservando a reversão do conteúdo e da posição do destino se a saída falhar
- Auditorias profundas de fórmulas processam os caches numéricos com mais eficiência, preservando os valores Variant em cache, os resultados de avaliação e os achados reportados
Corrigido
- A colagem da área de transferência em XLS e XLSX captura os dados BIFF8 e o texto de fallback juntos sob um único lock da área de transferência, de modo que ambos os formatos vêm do mesmo estado da área de transferência; o BIFF8 legível continua utilizável quando o texto companheiro dele não pode ser recuperado, texto indisponível sozinho não insere células, e a política existente de novas tentativas ao abrir a área de transferência fica inalterada
- A publicação com falha do texto obrigatório ou do BIFF8 na área de transferência preserva o código de erro Win32 original durante a limpeza, de modo que quem chama consegue obter o diagnóstico da falha logo depois da chamada
- O leitor de texto da área de transferência de tentativa única preserva as falhas nativas de recuperação de dados durante a limpeza da área de transferência sem mudar o comportamento de nova tentativa dele
Versão 2.384.50
Alterado
- As auditorias de símbolos de fórmula rodam mais rápido em pastas de trabalho XLS esparsas, preservando os achados reportados e a ordem deles
Versão 2.384.49
Corrigido
- Demos do WorkbookAudit (Delphi e C++Builder): o
AuditReport.jsoné gravado sem BOM UTF-8 para que parsers JSON estritos o aceitem; as planilhas XLS informam o intervalo do AutoFilter delas; nomes definidos XLSX que apontam para outra pasta de trabalho mostram o arquivo vinculado em vez do índice dele; execuções pela linha de comando não sobrescrevem mais as configurações salvas; uma caixa de pasta vazia volta para a pasta do programa em vez da raiz da unidade; uma falha ao salvar o exemplo é registrada no log em vez de ser reportada como criado - Demos do ApiTour: reconstruir a pasta de trabalho de demonstração mantém a anterior quando a reconstrução falha, de modo que os botões de exportação não travem mais; as pastas de trabalho são liberadas quando a construção lança exceção; a exportação HTML registra os erros dela no log; o log informa os cinco formatos condicionais que de fato são criados
- Demos do ExcelGraphics: um tipo de imagem sem suporte é reportado em vez de salvar uma planilha vazia, e o diálogo de abertura lista apenas os formatos com suporte
- Demos do OdsExport comparam o tamanho da fonte na verificação de ida e volta e retornam um código de saída diferente de zero quando a verificação ou o salvamento falha; a demo OdsImport do C++Builder confere o resultado do salvamento e não cria mais células vazias enquanto reporta
- Demos do DataExport / ExportWithColoring estreitam apenas a primeira coluna, como dizem os comentários delas, e as demos de exportação do C++Builder abrem o diálogo de salvamento na pasta do programa
- Os readmes das demos listam as APIs e os arquivos de saída que as demos de fato usam
Versão 2.384.48
Corrigido
- Os horários de criação e de último salvamento dos documentos agora são gravados em UTC, como os formatos de arquivo exigem, e lidos de volta como hora local:
Created/Modifieddo XLSX e propriedades de data personalizadas, eCreatedDate/LastSavedDatedo XLS. Antes, a hora local era armazenada como se fosse UTC, de modo que o Excel e o Windows Explorer mostravam os carimbos deslocados pelo offset de fuso horário; os valores gravados e lidos pelo próprio HotXLS ficam inalterados
Versão 2.384.47
Corrigido
- Arquivos XLS com ofuscação XOR (a proteção por senha das pastas de trabalho do Excel 5.0/95,
EncryptionType = xletXor): a posição da chave usada para cada registro agora segue a especificação do formato de arquivo, do mesmo jeito que os outros aplicativos de planilha leem e gravam. Antes, o HotXLS só conseguia ler os arquivos XOR dele próprio, e qualquer registro cujo comprimento não era múltiplo de 16 era decodificado como lixo nos demais
Versão 2.384.46
Corrigido
- O AutoFit do XLSX (
FitXlsxSheet,FitXlsxSheetColumns,FitXlsxSheetRows,MarkSheet) mede cada célula com a fonte, o tamanho, o negrito e o itálico dela, em vez de sempre Arial 10, de modo que texto em Calibri 11, cabeçalhos em negrito e títulos grandes não saem mais estreitos demais - O AutoFit do XLSX mede o texto como ele é exibido através do formato de número (datas, moeda, porcentagens), e não o valor bruto armazenado
- O AutoFit do XLSX mantém as larguras ajustadas das colunas dentro de
MaxWidth; a margem da célula costumava ser somada depois de o limite ser aplicado - O AutoFit do XLSX dimensiona as linhas de células com quebra de texto em colunas sem largura explícita contra a largura padrão da planilha; antes, essas células eram medidas como uma única linha e a linha saía baixa demais
Versão 2.384.45
Corrigido
- Pastas de trabalho XLS: critérios do
ApplyAutoFiltercomo'>=100'ou'=2.5'agora são salvos como condições numéricas; eles eram salvos como texto, que o Excel compara como texto, de modo que o filtro escondia toda linha numérica. Um valor sem operador de comparação (como'North'ou'100') continua sendo salvo como texto, do jeito que o Excel guarda um item escolhido de uma lista Criteria1.DataTypereporta 4 (número) para esses critérios em vez de 6 (texto);Criteria1.Valuecontinua sendo lido de volta como 100
Versão 2.384.44
Corrigido
- O
INDIRECTcom um texto de referência A1 lia a célula uma linha abaixo e uma coluna à direita (INDIRECT("D1")retornava E2), tanto em pastas de trabalho XLS quanto XLSX; o texto R1C1 já estava correto. Uma referência além da última linha ou coluna agora retorna#REF!
Versão 2.384.43
Corrigido
- Pastas de trabalho XLSX: fórmulas agora podem referenciar a planilha inteira de 1.048.576 × 16.384. Referências além da coluna IV ou da linha 65.536 (
=XFD1,=A100000,=SUM(XFC1:XFD1),Data!C1048576) eram rejeitadas como nomes desconhecidos na entrada ou retornavam erro; agora elas são parseadas, calculam, deslocam junto com linhas e colunas inseridas e são salvas como foram escritas - Pastas de trabalho XLSX: referências de coluna inteira e de linha inteira (
A:A,1:1) cobrem a planilha completa, de modo queROWS(A:A)retorna 1048576 eSUM(A:A)inclui valores abaixo da linha 65.536; oADDRESSretorna colunas de três letras como$XFD$1 - Pastas de trabalho XLS: referências à última linha e coluna da planilha de 65.536 × 256 (
=A65536,=IV1) são aceitas; elas eram rejeitadas como nomes desconhecidos
Versão 2.384.42
Corrigido
- As unidades legadas
lxRows/lxCols(mantidas por compatibilidade de código-fonte; as classes de pasta de trabalho não as usam): um índice de linha acima de 1.048.575 lançaERangeErrorem vez de estourar e cair de volta na linha 1, o registro ROW não marca mais toda mudança de nível de contorno como recolhida, e gravar COLINFO de uma coluna sem configurações próprias usa os padrões em vez de travar
Versão 2.384.41
Corrigido
- Builds de Lazarus / Free Pascal compilados em modo de string ANSI: arquivos temporários cujo caminho contém caracteres fora da página de código do sistema agora são removidos na limpeza; antes, os nomes deles eram armazenados com perda e os arquivos ficavam para trás na pasta de temporários
Versão 2.384.40
Corrigido
TlxCellMMU(o armazenamento empacotado de células) lançaEInvalidOperationquando uma célula é gravada fora da ordem de linhas dentro de um bloco de 256 linhas ou sobre uma célula existente, eERangeErrorpara posição negativa ou coluna além de 65.534; antes, uma gravação assim corrompia silenciosamente a linha vizinha. As gravações em massa da própria biblioteca já mantêm a ordem de linhas e não são afetadas
Versão 2.384.39
Alterado
- Pastas de trabalho XLSX: atribuir a
TXLSXWorksheet.TabColoragora também defineTabColorIsAutocomo False, de modo que a cor da guia aparece sem uma segunda atribuição, acompanhando as propriedades de cor de fonte, preenchimento e borda. DefinirTabColorIsAutocomo True depois disso ainda remove a cor da guia
Versão 2.384.38
Alterado
- Pastas de trabalho XLS:
TXLSWorksheet.AddPivotTableagora trataDestRoweDestColcomo base um, comoCells[Row, Col], a documentação e o motor XLSX;AddPivotTable('Data!A1:C9', 3, 1, ...)ancora a tabela dinâmica em A3. Código que passava posições de base zero precisa somar 1, e uma âncora de 0 ou fora da planilha agora retornanil - Pastas de trabalho XLS: as posições em
TXLSPivotTable(FirstRowaFirstDataCol) e o intervalo de origem emTXLSPivotCache(SourceFirstRowaSourceLastCol) agora são base um para tabelas dinâmicas novas e abertas, de modo que o mesmo código lê as mesmas células nos dois motores e uma tabela dinâmica copiada entre eles mantém o lugar
Versão 2.384.37
Corrigido
- Pastas de trabalho XLSX: uma tabela dinâmica colocada abaixo da linha 65.535, ou empurrada para lá pela inserção de linhas, mantinha a posição real; antes, a âncora era cortada para 16 bits e a tabela dinâmica salva parava nas linhas erradas
- As propriedades de posição da tabela dinâmica (
FirstRow,FirstCol,LastRow,LastCol,FirstHeaderRow,FirstDataRow,FirstDataCol) agora sãoIntegerem vez deWord - Pastas de trabalho XLSX:
AddPivotTableeAddPivotTableCopyretornamnilquando a âncora fica fora da planilha ou o bloco copiado passaria da última linha ou coluna, em vez de gravar uma tabela dinâmica que o Excel rejeita
Versão 2.384.36
Corrigido
- As demos do C++Builder XlsTables, XlsCondFormat12, XlsCreateChart e InteractiveFeatures gravam as colunas de texto delas como texto; passar um
const wchar_t*para umOleVariantescolhia o construtorbool, e todo cabeçalho e rótulo saía como TRUE - A demo DefinedNames lista os nomes XLS a partir do índice 1 em vez de travar no índice 0, o WorkbookAudit conta referências externas em nomes de pasta de trabalho XLS, e o FileMonitor grava
Monitored.xlsxem vez do.xlsxxescrito errado, que fazia toda leitura de nome de planilha falhar - As demos Pictures e OdsExport embutem um PNG válido; o literal de bytes era corrompido pela conversão de string e os comprimentos dos chunks do Pictures estavam errados
- O ApiTour avalia o passo
DEMOADDdele na planilha API Tour em vez da planilha Dashboard ativa, em que um argumento de texto podia abortar a inicialização; o tour clássico do C++Builder agora mostra o resultado do passo - FreezePanes, QuickStart e ApiTour congelam exatamente as linhas e colunas de cabeçalho;
FreezePanesrecebe contagens, não a primeira célula rolável - Cores de formato condicional em ApiTour, CondFormatGallery, OdsExport e WorkbookAudit são fornecidas em BGR como a API espera, de modo que barras de dados e escalas de cor mostram as cores pretendidas; o CondFormatGallery dá às regras de top-N, duplicados e acima da média um destaque visível
- MemoryDataExport e HtmlExport não reportam mais exportações CSV, HTML e RTF bem-sucedidas como falhas (esses gravadores retornam 0 em caso de sucesso), e o MemoryDataExport grava os três arquivos mesmo que um deles falhe
- Demos que salvam e depois reportam ou abrem o arquivo (QuickStart, ExcelGraphics, HotXLSInMemory, OrderCalc, PurchaseOrder e várias demos de console) conferem o resultado do salvamento em vez de anunciar sucesso com o arquivo bloqueado
- O ConversionWorkbench trata qualquer resultado negativo do gravador como falha e remove a saída antiga primeiro, de modo que um arquivo velho não esconde mais uma conversão que falhou; a versão C++Builder exporta toda planilha para HTML
- InvoiceTemplate, OrderCalc e DataExport não dependem mais do formato de número e data do Windows: fórmulas de imposto, preços e limiares de data funcionam em sistemas que usam vírgula como separador decimal ou data com o ano na frente
- Correções menores: os totais do QuickStart usam texto escuro sobre o preenchimento claro, o DateSystems mostra os seriais brutos e uma data válida da época 1904, o CrossWorkbookCopy mantém as células mescladas dele fora da tabela, o CrossWorkbookCopyXls usa uma lista separada por vírgulas e um azul-claro de verdade, o Hyperlinks mostra o texto de link pretendido, o SheetProtection descreve e define as ações permitidas corretamente, o OdsImport não cria mais células vazias durante a varredura, o InteractiveFeatures salva uma pasta de trabalho sem carga útil VBA como .xlsx, o WorkbookAudit reporta arquivos XLS criptografados e os projetos VBA deles, o ChartTypes mantém os gráficos dele longe dos dados, as demos de exportação de dados do C++Builder encontram Demos.mdb a partir da pasta de saída da IDE, e o FormulaFunctions confere a célula reaberta e conta as falhas de reabertura
Versão 2.384.35
Corrigido
- Atribuir uma cor a uma fonte, preenchimento, borda ou run de rich text XLSX agora surte efeito por si só. Esses objetos começam com a cor automática, e um
Color,ForegroundColorouBackgroundColorexplícito era descartado silenciosamente, a menos que o sinalizadorColorIsAuto/ForegroundIsAuto/BackgroundIsAutocorrespondente também fosse limpo - Atribuir uma cor RGB também limpa uma origem anterior de cor de tema ou indexada, que de outro modo teria precedência sobre ela; atribuir um slot de tema ou indexado de 0 ou mais limpa o sinalizador automático
- Cores de borda coladas em uma pasta de trabalho XLSX a partir da área de transferência, cores de borda de pastas de trabalho clássicas exportadas para XLSX e a cor de fonte passada a
TXLSXComment.SetFontagora são gravadas, em vez de se perderem para a cor automática
Versão 2.384.34
Corrigido
- Itens de subtotal, total geral e em branco na lista de itens de um campo de tabela dinâmica não são mais lidos como itens de dados; copiar uma tabela dinâmica assim gravava um item apontando para o índice de cache -1
- Campos de tabela dinâmica de arquivos do Excel mantêm o subtotal padrão deles: o Excel omite
defaultSubtotalquando ele está ligado, e o HotXLS tratava o atributo ausente como desligado - Campos de cache de tabela dinâmica cujos itens compartilhados omitem
containsStringsão lidos como campos de texto, seguindo o padrão do esquema, em vez de campos mistos
Versão 2.384.33
Corrigido
- Tabelas dinâmicas gravadas pelo motor XLSX usam os valores de eixo do esquema (
axisRow,axisCol,axisPage); versões anteriores gravavamrowAxis/colAxis/pageAxis, que não são OOXML válidos. O HotXLS ainda lê arquivos que contêm os valores antigos - Campos de tabela dinâmica usados na área de valores são marcados com
dataField="1", e campos sem itens não recebem mais uma lista<items>vazia que o esquema não permite - Itens de tabela dinâmica ocultos e recolhidos mantêm o estado deles quando a tabela dinâmica é copiada ou reconstruída, e a lista de itens de cada campo termina com os itens de subtotal que o Excel espera para as funções de subtotal dele
- Campos de cache de tabela dinâmica carregam um
numFmtIdnumérico em vez do textoGeneral
Versão 2.384.32
Corrigido
- A importação de ODS converte linhas de array inline corretamente:
{1;2|3;4}vira{1,2;3,4}em vez de uma fórmula que o Excel não consegue parsear - A importação de ODS converte o operador de união de referências:
SUM([.A1:.B2]~[.C3])viraSUM((A1:B2,C3))
Versão 2.384.31
Corrigido
- A importação de ODS lê células de hora cuja duração traz uma parte de data, como
P0Y0M0DT12H30M15S, e durações em semanas, comoP1W, em vez de cair no texto de exibição - Um
Mantes do separadorTde uma duração ODS é um mês, não um minuto; anos e meses diferentes de zero, que não têm comprimento fixo, agora caem no texto de exibição em vez de transformarP1Mem um minuto
Versão 2.384.30
Corrigido
TGWmfEmfReadfecha o metaarquivo quando o arquivo é curto demais ou está danificado, em vez de mantê-lo bloqueado até o processo encerrarTGWmfEmfReadtrata um WMF placeable cujo cabeçalho informa zero unidades por polegada como sem tamanho, em vez de dividir por zeroTGWmfEmfReadmantém tamanhos e limites de 32 bits emBSEWMF, batendo com o cabeçalho de imagem que ele descreve
Versão 2.384.29
Corrigido
- Imagens WMF e EMF de 64 KB ou mais em pastas de trabalho XLS clássicas sobrevivem a abrir e salvar; os tamanhos armazenado e descomprimido delas eram cortados para 16 bits, de modo que o Excel não conseguia decodificar a imagem no arquivo salvo
- Limites de imagem de metaarquivo fora do intervalo -32768..32767 são mantidos em vez de sofrer wrap-around
Versão 2.384.28
Corrigido
TXMLWriternão produz mais XML malformado quando valores de texto ou de atributo contêm caracteres de controle, surrogates não pareados ou U+FFFE / U+FFFF; caracteres que o XML 1.0 não consegue representar ficam de foraTXMLWritergrava um carriage return no texto de um elemento como character reference, de modo que o texto é lido de volta inalterado em vez de ter o CR transformado em LFTXMLWriterlança um erro quando o stream de destino aceita menos bytes do que foi gravado, como em um disco cheio, em vez de deixar um arquivo truncado em silêncio
Versão 2.384.27
Corrigido
- Copiar um intervalo cujas fórmulas apontam para acima ou à esquerda do bloco copiado, como
=B4+1copiado de B5, agora cola com a referência ainda uma linha acima; antes ela ficava presa à célula original, e uma fórmula podia acabar se referindo a si mesma - Os dados de área de transferência do Excel que o HotXLS publica mantêm as células copiadas na posição delas na planilha, de modo que os aplicativos que os leem veem os endereços originais
Versão 2.384.26
Corrigido
- Os helpers de string do zlib (
ZCompressStr,ZDecompressStre as variantes in-place) agora processam a string inteira; com strings Unicode, apenas a primeira metade do texto era comprimida, de modo que uma ida e volta perdia dados
Versão 2.384.25
Corrigido
- Hiperlinks em pastas de trabalho clássicas cujo texto de exibição vem sinalizado sem o sinalizador de site são lidos corretamente, e hiperlinks com um tipo de destino incomum não fazem mais a abertura inteira falhar nem retornam um sub-endereço embaralhado
Versão 2.384.24
Corrigido
- Uma exceção lançada pelo manipulador de mudanças do monitor de arquivos não para mais o monitor em silêncio; ele continua vigiando e reporta as mudanças seguintes
Versão 2.384.23
Corrigido
- Cores de tema com tint abaixo de -1 em um arquivo malformado são limitadas ao preto em vez de produzir cores aleatórias ao exportar ou imprimir
Versão 2.384.22
Corrigido
- Conexões de dados criadas pela API são salvas com o atributo de versão de refresh que o formato de arquivo exige
- Uma conexão com nome ou id ausente ou repetido não faz mais a pasta de trabalho inteira falhar ao abrir; a entrada é mantida como estava e salva de volta inalterada
Versão 2.384.21
Corrigido
- Alterar o código-fonte de um módulo VBA agora surte efeito no Excel: o projeto é salvo de um jeito que o Office compila o novo código-fonte em vez de executar o código compilado em cache do antigo
- O código-fonte de módulos VBA agora é salvo na forma comprimida que o formato define; o último bloco de cada módulo era armazenado de um jeito que o Office trata como danificado
- Um stream de diretório VBA malformado não faz mais a abertura da pasta de trabalho travar, e uma entrada de módulo sem as informações de stream não deixa mais um módulo vazio no projeto
Versão 2.384.20
Corrigido
- Nomes definidos carregados de uma pasta de trabalho clássica mantêm as referências deslocadas deles depois que linhas ou colunas são inseridas ou excluídas e a pasta de trabalho é salva; antes, o arquivo ainda continha a referência original
Versão 2.384.19
Corrigido
- Ajustar apenas as linhas ou apenas as colunas de uma planilha XLSX não define mais como zero a largura de toda coluna medida, ou a altura de toda linha medida, quando ela não tinha tamanho explícito
Versão 2.384.18
Corrigido
- Critérios do AutoFilter em pastas de trabalho clássicas são combinados do jeito como foram definidos: condições AND eram salvas como OR e vice-versa, de modo que o Excel mostrava as linhas erradas
- Critérios booleanos do AutoFilter são salvos como TRUE ou FALSE; eles eram armazenados em uma forma que o Excel lê como valor de erro
Versão 2.384.17
Corrigido
- As datas de criação e de último salvamento de pastas de trabalho clássicas agora batem com o Excel; elas eram gravadas um dia atrasadas e lidas um dia adiantadas
- A data de último salvamento é armazenada na propriedade de documento certa; era salva no slot de contagem de páginas, em que o Excel e o Windows não a exibiam como data
- O tempo total de edição é armazenado como uma duração, de modo que o Excel e o Windows mostram o número real de minutos em vez de cerca de 299 anos; horários gravados por versões anteriores continuam sendo lidos corretamente
Versão 2.384.16
Corrigido
- A regra de valores únicos da verificação de importação agora compara os valores das células; todo valor depois do primeiro em uma coluna era reportado como duplicado
- Adicionar uma segunda regra para a mesma coluna substitui a primeira de forma limpa; a regra antiga era liberada mas ainda conferida, e liberar o verificador lançava um erro de ponteiro inválido
- Verificar uma planilha não cria mais células vazias para os brancos que ela lê
- Manter apenas as linhas com violação não grava mais além da tabela de linhas quando uma violação fica abaixo do intervalo usado, e a linha de legenda é inserida acima dos dados em vez de sobrescrever a primeira violação
Versão 2.384.15
Corrigido
- Ler uma entrada ZIP em pedaços pequenos não perde mais os últimos bytes da entrada quando os dados comprimidos terminam no meio de uma sequência repetida, o que podia fazer um XLSX válido falhar com erro de tamanho de entrada
- Descomprimir dados que expandem além de 2 GB agora lança um erro em vez de derrubar o processo de 64 bits
- O stream de descompressão retorna todos os dados restantes depois que a entrada dele se esgota, em vez de parar antes da hora
Versão 2.384.14
Corrigido
- Imagens PNG entrelaçadas com 1, 2 ou 4 bits por pixel não gravam mais além do buffer de imagem, o que podia travar ou corromper pixels vizinhos ao exportar ou imprimir uma pasta de trabalho que as contém
- Imagens PNG entrelaçadas são decodificadas corretamente quando um passo começa com o filtro Average ou Paeth
- Imagens PNG em tons de cinza de 2 bits agora renderizam os níveis de cinza reais, e ler pixels individuais de imagens em tons de cinza e de paleta de 2 bits retorna as cores certas
- Imagens PNG cujos dados comprimidos têm bytes excedentes não fazem mais o decodificador travar, e imagens válidas com um chunk de dados de imagem grande não são mais rejeitadas com erro de CRC
- Imagens com profundidade de bits inválida ou um comprimento de chunk além do fim do arquivo são rejeitadas de forma limpa, em vez de travar ou alocar gigabytes de memória
- Chunks de texto salvos em imagens PNG não são mais truncados nem corrompidos
Versão 2.384.13
Corrigido
- Pastas de trabalho clássicas criptografadas com RC4 agora usam o hash de senha correto para senhas de 28 caracteres ou mais, de modo que elas abrem no Excel; senhas de 32 caracteres ou mais antes produziam arquivos que nem o HotXLS conseguia abrir
- Senhas RC4 de até 255 caracteres são aceitas na abertura, e arquivos com senhas de 28 a 31 caracteres salvos por versões anteriores continuam abrindo
- Um cabeçalho RC4 CryptoAPI malformado com comprimento exagerado é reportado como arquivo corrompido em vez de lançar um erro genérico
Versão 2.384.12
Corrigido
- Pastas de trabalho com criptografia Agile que declaram SHA-256 agora são descriptografadas corretamente; os segmentos de dados eram sempre descriptografados com vetores de inicialização SHA-512, de modo que a pasta de trabalho falhava ao abrir mesmo com a senha certa
- Arquivos Agile cujos key data e password key encryptor usam algoritmos de hash diferentes não são mais reportados como senha errada
- Um spin count acima do limite de 10.000.000 do formato é rejeitado de imediato, em vez de manter a CPU ocupada por horas
- Um password verifier truncado não lê mais além do buffer dele, e a chave de integridade gravada pelo
SaveAsEncryptedAgileagora tem o comprimento que o formato exige
Versão 2.384.11
Corrigido
- Pastas de trabalho salvas com
SaveAsEncryptedagora abrem no Excel. A chave do ECMA-376 Standard Encryption era derivada sem o passo final e o tamanho do pacote era criptografado junto com os dados, de modo que o Excel rejeitava a senha; pastas de trabalho criptografadas assim pelo Excel 2007 também já podem ser abertas - Pastas de trabalho criptografadas salvas por versões anteriores do HotXLS ainda abrem com a senha certa
- Um cabeçalho de criptografia malformado com comprimento exagerado não causa mais uma access violation durante a abertura
Versão 2.384.10
Corrigido
- Copiar e colar fórmulas entre células, e ordenar com as fórmulas copiadas junto, não move mais referências absolutas:
$A$1fica no lugar,A$1move apenas a coluna e$A1apenas a linha, como no Excel - Nomes de função que parecem endereços de célula, como
LOG10(, não são mais deslocados como referências quando uma fórmula é colada, de modo que a fórmula colada não vira maisLOG11(e retorna#NAME? - Referências qualificadas com nome de planilha, como
Sheet2!A1ou'My Sheet'!B3, agora são deslocadas ao colar, como as não qualificadas - Colar texto que começa com
=ou um apóstrofo em uma pasta de trabalho clássica o mantém como texto; antes ele virava uma fórmula ou perdia o primeiro caractere
Versão 2.384.9
Corrigido
- Formatos de número de tempo decorrido como
[h],[mm]e[ss].00agora são reconhecidos como formatos de hora em vez de serem confundidos com nomes de cor; com a precisão como exibido desligada (FullPrecisiondefinido comoFalse), uma duração formatada como[ss].00não é mais arredondada como se fosse um número comum de duas casas decimais, o que antes transformava valores de poucos segundos em zero - Tokens de minuto separados da hora ou do segundo por um literal, como em
h:mmemm:ss, agora são lidos como minutos, e não como meses, quando um formato de número é analisado
Versão 2.384.8
Corrigido
- Copiar texto, HTML ou dados de planilha para a área de transferência do Windows agora usa um owner temporário válido, inclusive em programas de console e worker threads sem janela de aplicativo; os dados copiados continuam disponíveis depois que esse owner é destruído
- Uma publicação na área de transferência que falha agora libera todo bloco de dados alocado que o Windows não aceitou, incluindo os blocos complementares de texto e HTML quando a publicação de planilha falha
Versão 2.384.7
Corrigido
- Compilar a biblioteca do código-fonte com RAD Studio XE5 até o RAD Studio 12 Athens falhava depois que o suporte a Free Pascal e a correção do dia bissexto do
DATEentraram: esses compiladores ainda parseiam a verificação de versão do Free Pascal enquanto a pulam, e rejeitam o cast numérico por trás do caso especialDATE(1900,2,29). Ambos os pontos agora usam formas que todo compilador com suporte aceita, de modo que toda a gama do RAD Studio compila de novo
Versão 2.384.6
Corrigido
- Copiar células que têm um comentário em uma pasta de trabalho .xls clássica, seja dentro da mesma pasta de trabalho, para outra pasta de trabalho ou deslocando linhas e colunas, mantinha o texto do comentário mas perdia os runs de formatação dele, de modo que toda cópia mostrava a anotação inteira em uma única fonte; agora os runs viajam junto com o texto, e entre pastas de trabalho as fontes deles são adicionadas à pasta de trabalho de destino
- Copiar uma planilha inteira com
Sheets.AddCopyem uma pasta de trabalho .xls clássica perdia os comentários em células sem valor nem formatação; agora esses comentários também são copiados - Comentários em pastas de trabalho .xlsx eram reabertos sem o nome da fonte, o tachado e a cor dos runs de formatação, e runs salvos nunca carregavam sublinhado nem sobrescrito/subscrito; tudo isso agora sobrevive a um salvar e reabrir, incluindo runs copiados de outra pasta de trabalho com
CloneRangeTo
Versão 2.384.5
Corrigido
- Runs de formatação em comentários e caixas de texto em pastas de trabalho .xls clássicas não perdem mais as fontes ao salvar. Uma fonte usada só por esse tipo de run podia ser descartada da lista de fontes salva, na maioria das vezes quando o HotXLS salvava de novo uma pasta de trabalho que já tinha salvado uma vez, e o run então mostrava no Excel a fonte padrão ou pegava uma fonte adicionada nesse meio-tempo; essas fontes agora são mantidas, e os runs são renumerados junto com o resto da lista de fontes
TextRuns.FontIndexem comentários e caixas de texto segue a numeração de fontes do arquivo, em que o índice 4 nunca é usado e a quinta fonte é o índice 5; a reserva de paleta para cores de fonte indexadas agora lê esses índices da mesma maneira
Versão 2.384.4
Corrigido
- A mudança de numeração de fontes em 2.384.1 era ela própria o bug: arquivos .xls clássicos numeram fontes do jeito que o Excel faz ([MS-XLS] §2.5.129), em que o índice 4 nunca é usado e a quinta fonte é o índice 5, mas o 2.384.1 passou a usar uma contagem simples de base zero; pastas de trabalho salvas então mostravam no Excel cada fonte personalizada uma posição antes (a primeira recuava para a fonte padrão), e pastas de trabalho criadas no Excel abriam com cada fonte personalizada deslocada uma posição para depois. Salvar e abrir seguem de novo a numeração do Excel, verificado contra pastas de trabalho escritas e lidas pelo próprio Excel
- Células de rich text mantêm a fonte de cada run de formatação em aberturas, salvamentos e cópias de planilhas entre pastas de trabalho, incluindo runs cuja fonte nenhuma célula usa diretamente
- Pastas de trabalho salvas pelo 2.384.1 até o 2.384.3 com cinco ou mais fontes já carregam a numeração deslocada, que nem o Excel nem o HotXLS conseguem distinguir de dados válidos; regenere-as a partir da origem, ou reaplique as fontes afetadas e salve de novo
Versão 2.384.3
Corrigido
- Datas de 1900-01-01 a 1900-02-28 ficavam com um dia de diferença em relação ao Excel nos dois motores de pasta de trabalho, porque o calendário 1900 do Excel conta um 1900-02-29 fantasma; a leitura e a escrita agora aplicam a correção documentada,
DATE(1900,2,29)responde com 1900-02-28 em vez de#VALUE!, e a tabela de strings compartilhadas sobrevive a caracteres NUL embutidos e a páginas de código de dois bytes através dos limites de registro sem dessincronizar - As comparações encadeiam da esquerda para a direita como o Excel as avalia, então
=1<2<3agora é lido como(1<2)<3e retorna FALSE como o Excel (TRUE passa na frente de qualquer número em uma comparação), enquanto antes era agrupado como1<(2<3)e retornava TRUE; um operando em branco equivale tanto a 0 quanto a uma string vazia nas comparações; critérios com curinga se aplicam ao "diferente de" emCOUNTIFeSUMIFexatamente como já faziam para o "igual a"; o intervalo de soma doSUMIFe funções irmãs é redimensionado da célula superior esquerda até a forma do intervalo de critérios em vez de ser truncado; e oINDIRECTrespeita o segundo argumento (texto R1C1 absoluto) e rejeita lixo depois da referência - O
YEARFRACcom base 0 aplica os ajustes de NASD para o fim de fevereiro que oDAYS360já implementava, então os períodos que tocam o fim de fevereiro são contados corretamente - Um texto com "endstream" dentro de uma célula não pode mais truncar uma página PDF durante a compressão de streams; o patch do token de páginas totais mantém o comprimento do stream consistente quando a compressão é pulada, offsets de objeto acima de 32 bits falham de forma ruidosa em vez de corromper a tabela de referências cruzadas, e JPEGs em tons de cinza ou CMYK recebem a tag com o espaço de cores real em vez de
/DeviceRGB - Uma pasta de trabalho cujo armazenamento de caches de tabela dinâmica foi removido ou truncado abre com os caches afetados marcados como incompletos em vez de falhar todo o carregamento, e regrava esses caches no layout inline legado em vez de dar erro
- Uma tabela de strings compartilhadas cuja contagem declarada de strings excede o que a cadeia de registros entrega agora falha na abertura em vez de resolver silenciosamente as células restantes como strings vazias
Versão 2.384.2
Corrigido
- Ao converter uma pasta de trabalho .xls clássica para .xlsx, células mescladas que ficavam à esquerda de uma mesclagem anterior em uma linha mais baixa eram descartadas silenciosamente; o scan não reutiliza mais a variável de intervalo usado para a área de mesclagem
- Um comentário XML dentro da lista de extensões da pasta de trabalho era reemitido com marcadores
<!--duplicados em cada salvamento, gerando um arquivo que o Excel precisa reparar; os nós de comentário agora sobrevivem à ida e volta byte a byte - Registros de planilha não reconhecidos capturados de um .xls aberto eram descartados em todos os salvamentos seguintes apesar de mantidos para replay, e vazavam memória a cada abertura; agora eles persistem e são reproduzidos exatamente como foram capturados pelo gravador de registros padrão
- Nomes definidos com mais de 255 caracteres e comentários de nome com mais de 65535 caracteres corrompiam o enquadramento do registro NAME no salvamento; ambos agora são rejeitados logo de cara
- Um salvamento abortado vazava os buffers de registros da pasta de trabalho e da planilha quando uma incompatibilidade de criptografia estourava no meio da gravação; o salvamento agora libera os buffers em todos os caminhos de saída
- O gravador de patch in-place apagava o arquivo original antes de renomear o substituto para o lugar, de modo que uma renomeação que falhasse destruía a pasta de trabalho; a troca agora é uma substituição atômica única que mantém os dois arquivos em caso de falha
- As referências de célula do leitor direto aplicam os limites de 16384 colunas e 1048576 linhas em vez de aceitar coordenadas com overflow, atributos inteiros malformados caem para os padrões em vez de abortar toda a leitura, e datas entre 1900-01-01 e 1900-02-28 são convertidas com o dia bissexto fantasma do Excel considerado nos dois sentidos
- Valores de atributo com tabulação, line feed ou carriage return sobrevivem à ida e volta sem mudanças em vez de colapsar em espaços, e uma entidade não terminada no texto de um elemento agora é rejeitada como no ramo de atributos
- Cópias literais de entradas ZIP de 4 GiB ou mais, que o caminho de cópia não consegue enquadrar corretamente, agora são recusadas como faz o gravador de streaming em vez de produzir um arquivo corrompido
- O runner do corpus grava seus resultados de forma atômica para que uma execução interrompida não possa destruir as evidências retidas, registra timeouts de build em vez de quebrar e tolera linhas de stage-trace malformadas; o verificador do LibreOffice grava as evidências de forma atômica e a sondagem de substituição de arquivos volta de fato a coletar a lista de produtos antivírus
Versão 2.384.1
Corrigido
- Toda fonte a partir da quinta era gravada com um índice de registro uma posição além do fim da lista de fontes, então o Excel reparava a pasta de trabalho e as fontes personalizadas voltavam como a padrão; salvar e abrir agora usam o índice zero-based documentado, então fontes personalizadas sobrevivem à ida e volta e arquivos criados no Excel mantêm suas fontes ao serem abertos no HotXLS
- Avaliar
=0^-1ou uma base negativa com expoente fracionário derrubava o recálculo com uma exceção de ponto flutuante em vez de retornar#DIV/0!ou#NUM! - Regras de expressão de formatação condicional lidas de um .xls existente eram salvas de novo como um registro CF12 órfão sob o cabeçalho legado simples, que o Excel descarta; agora elas mantêm a forma de registro legada e a formatação de destaque
- O operador de interseção de referências e a interseção implícita de resultados redimensionados de
OFFSETe deINDIRECTmulti-célula seguiam o eixo errado ou rejeitavam intervalos válidos de uma linha ou coluna só, devolvendo a célula errada ou#REF! - O leitor de linhas em streaming reportava todo booleano de fórmula em cache como FALSE e todo erro em cache como
#NULL!ao ler arquivos .xls clássicos - Arquivos .xls grandes cujo contêiner de arquivo composto passa dos 109 setores FAT residentes no cabeçalho não podiam ser abertos pelo leitor de arquivos compostos autossuficiente, porque a cadeia de extensão DIFAT nunca era seguida
- Estilos de tabela personalizados recarregavam as cores de preenchimento e fonte com os canais vermelho e azul trocados, então um estilo salvo voltava com a cor errada
- Imagens PNG malformadas embutidas em uma pasta de trabalho podiam derrubar o processo com uma escrita fora dos limites durante a inserção de imagens PDF ou uma varredura sem limite de chunks de texto; PNGs embutidas agora passam por verificação de dimensões e chunks malformados são rejeitados
- Regiões EMF de vários retângulos eram renderizadas como a bounding box delas, imagens EMF sem extensão de viewport explícita eram escaladas errado, e texto em sobrescrito era renderizado abaixo da linha de base na saída de canvas, impressão e metarquivo
- Regras de formatação condicional BIFF com prioridade automática carregavam todas prioridade 1, o que o Excel sinaliza como reparo; as prioridades automáticas agora são únicas por planilha, como as equivalentes em XLSX
- O estilo de borda
xlSlantDashDotera gravado comoxlDashDotDotna saída de bordas .xls clássicas - Um registro de cabeçalho de pasta de trabalho criptografada truncado lançava uma exceção pelo
Openem vez de retornar o código de erro de senha, e vários caminhos de erro vazavam memória ao parsear arquivos de imagem ou de pasta de trabalho malformados
Versão 2.384.0
Alterado
- Caches de tabela dinâmica do XLS clássico são salvos do jeito que o Excel salva: os registros de cada cache vão para o próprio stream de armazenamento, enquanto o identificador de stream, o escopo do cache e a definição da origem de planilha ou intervalo nomeado são gravados uma vez nos globais da pasta de trabalho; caches criados por versões anteriores do HotXLS mantêm o layout inline anterior, a menos que a atualização opcional de enquadramento seja habilitada
- Pastas de trabalho protegidas por senha criptografam o stream de cada cache de tabela dinâmica como um stream de registros próprio que recomeça do início do stream em vez de continuar a posição de criptografia do stream da pasta de trabalho
Corrigido
- Uma tabela dinâmica podia apontar para o cache errado depois de salvar uma pasta de trabalho que misturava caches lidos de um arquivo existente com caches criados por código; a referência de visão para cache agora segue a ordem real de salvamento
- Todos os pacotes do HotXLS ainda carregavam o recurso de versão 2.379.7, e reconstruir um pacote no C++Builder podia remover o recurso de versão por completo; todos os pacotes agora carregam a versão atual
Versão 2.383.4
Corrigido
- Auditorias profundas de fórmulas agora mantêm os resultados alterados disponíveis para as fórmulas dependentes mesmo quando as alterações caem dentro da tolerância de relato, e a aplicação explícita atualiza esses resultados não reportados
- A tolerância relativa agora é respeitada para resultados em cache de dupla precisão nos dois motores de pasta de trabalho, enquanto resultados inalterados evitam uma comparação duplicada
Versão 2.383.3
Corrigido
- Salvamentos de pasta de trabalho baseados em arquivo agora preservam o erro nativo do Windows quando uma saída XLSX, XLTX ou ODS concluída não consegue substituir o destino, incluindo quando a limpeza ou um callback de progresso muda o estado de erro da thread
Versão 2.383.2
Corrigido
- Cópias repetidas de bandas de relatório e de intervalos reutilizam as buscas de sufixo de nomes definidos em vez de reescanear cada cópia anterior, preservando o primeiro nome disponível, o escopo de planilha e o reuso de nomes liberados por edições posteriores
Versão 2.383.1
Corrigido
- A reconstrução de dependências de fórmulas evita escanear repetidamente as linhas de fórmulas anteriores, reduzindo o custo de cadeias de cálculo grandes ao mesmo tempo que preserva referências de saída de matriz, dependências entre planilhas e a ordem de lookup
Versão 2.383.0
Adicionado
- Modelos do Excel sem macro podem ser salvos como XLTX por meio de uma seleção explícita do formato de saída, usando arquivos ou streams e saída com buffer ou em streaming
- A saída de modelo preserva fórmulas, nomes definidos, áreas de impressão e metadados de planilha sem alterar o comportamento de salvamento padrão da pasta de trabalho; pastas de trabalho com VBA são rejeitadas antes de o destino ser gravado
Versão 2.382.5
Corrigido
- As configurações fonéticas preservam o índice de fonte padrão exigido, impedindo que o Excel rejeite as pastas de trabalho salvas quando o índice é zero
- Fórmulas dinâmicas de área de impressão e uniões de intervalos qualificados por planilha sobrevivem a uma ida e volta sem adicionar um prefixo de planilha a uma função nem truncar referências dentro de uma expressão
- As partes do pacote geradas e preservadas compartilham declarações de tipo de conteúdo exclusivas, e as propriedades personalizadas não colidem mais com identificadores opacos de relações raiz
Versão 2.382.4
Corrigido
- Referências escalares a nomes definidos usam a interseção com a linha ou coluna atual, enquanto os argumentos de intervalo mantêm seus intervalos completos, evitando ciclos falsos de dependência em modelos de empréstimo
- A aritmética de fórmulas que mistura inteiros e valores de ponto flutuante mantém a precisão de ponto flutuante em vez de ser truncada para quatro casas decimais
- O recálculo prioriza os precedentes de pesquisa disponíveis antes de ler seus caches, evitando contagens de pagamento desatualizadas e resultados de pesquisa semelhantes
Versão 2.382.3
Corrigido
- O AGGREGATE trata erros não calculados e agregações aninhadas com configurações de seleção independentes, preserva cálculos de matriz e propaga os tipos de erro originais
- Os salvamentos em XLS clássico preservam os caches de fórmulas existentes até um recálculo explícito, incluindo raízes de fórmulas compartilhadas e de matriz; as fórmulas compartilhadas traduzem as referências relativas para suas células de destino
- As referências estruturadas suportam barras invertidas e pontos em nomes de tabelas, sintaxe aninhada de linha atual e nomes de colunas com escape, sem alterar textos semelhantes dentro das cadeias de fórmulas
- A formatação condicional em XLSX mantém cores RGB, sinalizadores de fonte explícitos, estilos de sublinhado, nomes de fontes, tamanhos e esquemas
- Os gráficos não modificados preservam suas definições originais e deslocamentos de âncora diferentes de zero, evitando alterações nas cores, posições e tamanhos das séries
- Definir margens de página não grava mais uma orientação de página não especificada, e o XLS clássico preserva as margens de página importadas ausentes em vez de adicionar padrões que alteram a disposição da impressão
Versão 2.382.2
Corrigido
- Pastas de trabalho ODS que contêm grandes intervalos repetidos de linhas em branco abrem e salvam sem expandir cada altura de linha e o estilo herdado de célula em branco em objetos individuais
- A saída ODS preserva alturas de linha explícitas e linhas estilizadas repetidas de forma compacta, incluindo sobreposições de linha única e alturas limpas; os intervalos de altura de linha também sobrevivem à cópia de planilhas, à inserção e exclusão de linhas, à disposição lado a lado e à exportação para XLSX
Versão 2.382.1
Corrigido
- Abrir e salvar pastas de trabalho XLSX com configurações de coluna de largura total não examina mais repetidamente os metadados de coluna nem copia o XML de coluna em crescimento, eliminando os timeouts de round-trip em pastas de trabalho de datas e de modelos e mantendo as configurações de coluna
- As definições de pivots em ODS retêm as declarações de namespace XML herdadas, incluindo as extensões do produtor, de modo que o XML salvo permanece bem formado
Versão 2.382.0
Corrigido
- Salvar uma pasta de trabalho XLS clássica agora mantém as células
SUBTOTALaninhadas fora dos resultados de subtotal que as contêm, preservando os totais em cache originais em vez de contar as linhas de grupo duas vezes - Os gráficos XLSX são carregados apenas pelo relacionamento de desenho referenciado por cada planilha, de modo que uma parte de desenho convencional não vinculada não pode mais duplicar um gráfico durante um round-trip
- As definições de tabelas data-pilot do OpenDocument sobrevivem a um salvamento ODS, incluindo seus intervalos de origem, campos, intervalos de destino, botões e atributos de extensão do produtor
- As opções 0-7 de
AGGREGATEagora seguem as regras documentadas de seleção de linhas ocultas, erros eSUBTOTAL/AGGREGATEaninhados nas formas de cálculo por referência e por matriz
Versão 2.381.0
Adicionado
- Slicers de tabela (Excel 2013+):
Worksheet.Slicers.Add(Table, ColumnName)cria de ponta a ponta uma visualização de slicer para qualquer coluna de uma tabela — o cache de slicer de suporte, nomeadoSlicer_<column>, o nome definido reservado#N/A, a extensãoslicerListda planilha e uma âncora de desenho markup-compatibility com um aviso de fallback para versões mais antigas do Excel são todos gravados automaticamente, e a visualização pode ser posicionada, receber legenda e estilo por meio deCaption,ColumnCount,StartItem,StyleName,RowHeighteSetBounds - Modelo de round-trip dos slicers: as visualizações e os caches de slicer voltam a ser interpretados na abertura (caches compartilhados são reutilizados entre visualizações, e excluir a última visualização descarta o cache dela), as partes e âncoras de slicer não modificadas são reproduzidas byte a byte, e o cache de uma tabela mantém o vínculo com a tabela válido mesmo quando o salvamento renumera os ids de tabela
Corrigido
- Os caches de slicer gravados por versões anteriores referenciavam o id de tabela que o arquivo carregava no momento da abertura; quando o salvamento renumerava os ids de tabela na pasta de trabalho inteira, o
tableIddesatualizado podia fazer o Excel acionar a reparação do arquivo. Agora o vínculo acompanha a tabela ao longo da renumeração
Versão 2.380.0
Adicionado
- Gráficos waterfall e treemap: os tipos de gráfico estendidos do Excel 2016 podem ser criados, salvos e reabertos. Eles são serializados como partes dedicadas de gráfico estendido, com tipo de conteúdo próprio, vínculo de dados com a planilha e uma âncora de desenho markup-compatibility que carrega um aviso de fallback para leitores mais antigos
- Gráficos treemap suportam categorias hierárquicas: cada nível de categoria da série é gravado e lido de volta como seu próprio nível dentro da dimensão de categorias, preservando os rótulos das folhas e dos níveis pai
Versão 2.379.4
Corrigido
- Um contêiner XLS clássico corrompido ou hostil não corrompe mais a memória ao ser aberto. O leitor de arquivos compostos copiava um setor inteiro para o mini stream mesmo quando apenas parte dele pertencia ali, seguia a minitabela de alocação além do fim desse stream, aceitava tamanhos de setor que o formato não define e dimensionava a tabela de alocação a partir de uma contagem não verificada. As cadeias de setores e de mini setores agora têm proteção contra ciclos, e um nome de stream que preenche seu campo sem terminador é delimitado
- Um registro de estilo que nomeia um índice de formato de célula além da tabela de formatos não grava mais por meio desse índice. Os contadores de referência nas listas de formatos compartilhados e de chaves verificavam apenas o limite inferior, de modo que um índice de 12 bits vindo do arquivo podia alcançar além do array
- Um cabeçalho de arquivo local gravado com informações estendidas ZIP64 não estoura mais o próprio buffer: o tamanho de cabeçalho declarado agora contabiliza o campo extra de 28 bytes que o gravador acrescenta. Deslocamentos de entradas e posições de stream são rastreados como valores de 64 bits, uma entrada ZIP64 é lida usando o comprimento de seu campo extra em vez do sentinela, e uma entrada maior que 4 GiB é recusada em vez de ser registrada com seu restante
- Um nome de entrada ZIP que contém um separador do Windows é normalizado. Uma única barra invertida nunca era convertida em barra comum, de modo que
..\..\namepassava pela verificação de travessia de diretórios, que divide pela barra comum - Um intervalo de máscara sem limite superior, como
[a-, não lê mais além do fim da máscara, e construir uma máscara que começa com um conjunto de caracteres não vaza mais um conjunto por máscara. Ambos são alcançáveis a partir de critérios do COUNTIF e do SUMIF - A pesquisa de célula inteira com caracteres curinga agora exige que o padrão corresponda à célula inteira, alinhando-se com o comportamento documentado e com a comparação de célula inteira sem curingas.
FindTextcom o padrãoabcantes também correspondia a uma célula contendoabcdef - A precisão como exibido não arredonda mais células cujo formato de número não tem espaço reservado para dígitos. Uma célula formatada como
Generalpelo nome, como texto com@, ou com um formato apenas de literais era arredondada para um número inteiro - A tabela de strings compartilhadas não relata mais strings exclusivas do que as que grava, não anexa mais os trechos de rich text de uma string excluída à string que reutilizar seu slot, e não emite mais um registro de continuação contendo apenas o byte de opções quando uma string transborda unicamente por causa de sua cauda de formatação
- A importação de RTF para de duplicar caracteres não ASCII. Um escape
\\uNé seguido de caracteres de fallback escritos como\\'hh, que a lógica de pulo não reconhecia, de modo que cada um deles também era emitido como texto. Os grupos pulados agora respeitam as cargas úteis brutas\binN, e uma tabela mais larga ou mais alta do que a grade da planilha para na borda em vez de gerar um erro - Uma referência numérica fora do intervalo de caracteres que o XML define é rejeitada na leitura em vez de produzir um NUL embutido, um surrogate sem par ou um ponto de código revertido. Tab, line feed e carriage return sobrevivem a um ciclo de salvar e abrir OPC como referências de caractere, em vez de serem normalizados para espaços
- A importação de CSV preserva o valor de
SkipRowsentre parses; ele era decrementado na própria variável, de modo que a segunda leitura de arquivo pelo mesmo carregador não pulava linha nenhuma - Uma parte
xl/tables/agora é reconhecida ao decidir quais partes preservar; a comparação do prefixo estava um caractere mais curta e nunca correspondia
Versão 2.379.3
Corrigido
- A importação de HTML decodifica referências de caracteres decimais.
ée todas as demais formas&#NNN;produziam um caractere NUL em vez do próprio caractere, porque a conversão gravava o resultado e a posição de erro na mesma variável e o código de sucesso sobrescrevia o valor. As referências hexadecimais não eram afetadas; ambas as formas agora rejeitam valores fora do intervalo representável em vez de emitir um caractere perdido - A exportação de HTML mantém o sub-endereço completo de um hiperlink interno ao construir o destino de sua âncora. Um sub-endereço com mais de 255 caracteres era truncado, de modo que a âncora gerada não correspondia mais ao link
Versão 2.379.2
Corrigido
- Um GIF inserido por meio de
AddPictureouImages.AddFromFileagora obtém seu tamanho do descritor de tela lógico. Antes, todo GIF relatava 100 por 100 pontos independentemente de suas dimensões reais, de modo que a imagem chegava esticada ou achatada - O dimensionamento de BMP lê o cabeçalho de bitmap que o arquivo realmente declara: um
BITMAPCOREHEADERcom suas dimensões de 16 bits é compreendido em vez de ser lido como campos de 32 bits, e um BMP top-down com altura negativa não produz mais uma altura de imagem negativa - O dimensionamento de JPEG aceita todos os marcadores de frame SOFn, e não apenas baseline, sequencial estendido e progressivo. JPEGs sem perdas, com codificação aritmética e hierárquicos antes caíam no padrão de 100 por 100
Versão 2.379.1
Corrigido
- Imagens WMF agora são decodificadas como cenas vetoriais para SVG, PDF e saída paginada. Desde a 2.363.0 o decodificador lia cada registro como um tamanho de 16 bits seguido do código de função, mas um registro de metaarquivo começa com um tamanho de 32 bits, de modo que todo WMF gravado pelo Windows ou pelo Office parava em seu primeiro registro e a imagem caía em um espaço reservado raster. Os registros agora são enquadrados conforme
[MS-WMF] §2.3, e os parâmetros de caneta, pincel, fonte, texto, forma e polígono são lidos de seus deslocamentos especificados META_STRETCHDIBesperava o DIB antes do retângulo de destino e assumia um cabeçalho de bitmap de 40 bytes; o retângulo agora precede o DIB como o formato especifica,BITMAPV4HEADER/BITMAPV5HEADERe tabelas de cores são respeitados ao localizar os bits de pixel, e o registro contribui com um comando de imagem emXDest,YDestcom tamanhoDestWidthporDestHeightMETA_EXTTEXTOUTignora seu retângulo opcional quandoETO_OPAQUEouETO_CLIPPEDestá definido, de modo que o texto desenhado com fundo opaco não é mais lido do deslocamento errado- Imagens de metaarquivo embutidas em uma renderização de página leem seus pixels do deslocamento que o cabeçalho de bitmap indica, em vez de 40 bytes fixos, de modo que uma imagem
BITMAPV4HEADERouBITMAPV5HEADERnão é mais renderizada como ruído de cores deslocadas
Versão 2.379.0
Adicionado
TGridToXLSagora faz parte do pacote de runtime do Free Pascal, de modo que umaTDBGriddo Lazarus é exportada da mesma forma que sob a VCL: colunas explícitas mantêm seus títulos, fontes, cores, alinhamento, larguras e visibilidade, uma grade sem colunas explícitas exporta uma coluna por campo do dataset, e o resultado é salvo como XLS, XLSX, HTML ou RTF pela mesma chamadaSaveAs
Versão 2.378.4
Corrigido
- TEXTBEFORE e TEXTAFTER liam a contagem de argumentos de uma variável local que nunca recebia atribuição, de modo que os argumentos opcionais de ocorrência, modo de correspondência, correspondência pelo fim e se-não-encontrado podiam ser ignorados, ou uma chamada válida rejeitada com #VALUE!, dependendo do conteúdo residual da pilha; a contagem agora vem da própria chamada
- Um OFFSET redimensionado, ou seja, com altura ou largura diferente de 1, avaliado em uma única célula comparava a célula da fórmula com uma âncora que ainda não tinha sido calculada, de modo que a interseção implícita podia devolver #REF! ou a célula errada; a âncora deslocada agora é calculada antes do teste de interseção
Versão 2.378.3
Corrigido
- Sob o Free Pascal, corresponder ou substituir uma string vazia gerava o erro de expressão regular, de modo que uma expressão de relatório como
regexreplace(Code,"[^0-9]","")falhava comREPORT_EXPRESSION_INVALID_REGEXsempre que o campo estava em branco. O backend do FPC agora responde comoTRegExresponde sob o Delphi: um padrão que aceita string vazia, como^$ou.*, corresponde a ela e produz seu texto de substituição, enquanto[0-9]+ou\s+relata que não há correspondência
Versão 2.378.0
Adicionado
- O HotXLS agora compila com Free Pascal 3.2.2 e Lazarus/LCL no Windows, em Win32 e Win64. As APIs de pasta de trabalho XLS e XLSX, as fórmulas, os estilos, o leitor e o gravador diretos, a exportação de datasets e os auxiliares de renderização funcionam todos a partir de código FPC com a semântica de string Unicode do Delphi; o tópico Suporte a Free Pascal e Lazarus cobre a configuração do aplicativo e as diferenças de backend
- O pacote de runtime
Lib/FPC/HotXLSLaz.lpkabre no Lazarus ou compila por arquitetura a partir da linha de comando por meio debuild-FPC-Lib.cmd, e as suítes de smoke test do Lazarus emTests/Lazaruscobrem ciclos de salvar e abrir de pastas de trabalho, compressão, criptografia, streams COM, gráficos, leitura de texto, expressões regulares, exportação de datasets e expressões de relatório - As compilações FPC usam backends Pascal empacotados para ZIP, streams de compressão e AES, de modo que arquivos XLSX, incluindo os protegidos por senha, não precisam de DLL zlib nem dos arquivos de objeto pré-compilados que o Delphi vincula; o PNG mantém seu canal alfa, o desenho e a reprodução de EMF passam por metaarquivos do Windows, e a exportação de TIFF multipágina usa o runtime GDI+
Versão 2.377.2
Adicionado
- Um PivotCache XLS clássico gravado pelo HotXLS agora carrega os registros contra os quais o formato define o cabeçalho do cache. O id de stream e o tipo de dados de origem do cabeçalho nomeavam um SXStreamID e um SXVS que nunca eram gravados, de modo que nenhum leitor podia verificar nenhum dos dois; ambos os registros agora são gravados e ambos os campos do cabeçalho recebem os mesmos valores, de modo que concordam por construção
- Os substreams de cache também carregam o SXDBEx, o registro que segue o cabeçalho do cache em todo cache que o Excel grava. Ele registra quando o cache foi atualizado pela última vez, de modo que
TXLSPivotCache.RefreshedDateagora sobrevive a um salvar e recarregar em XLS clássico da mesma forma como já ocorria no XLSX TXLSPivotCache.StreamIdeTXLSPivotCache.SourceDataTypeexpõem os dois valores, lidos de volta de um arquivo que os declara e gravados no par de registros mais o cabeçalho do cache. Um cache construído porAddPivotTablerelata o stream 0 e uma origem de intervalo de planilha
Alterado
- A reescrita opcional do enquadramento antigo de caches (
UpgradeLegacyPivotCacheFraming) agora produz também esses três registros, de modo que um cache atualizado não fica apenas corretamente enquadrado, mas completo da mesma maneira que os recém-gravados. Um cache que já carregava um SXStreamID, um SXVS ou um SXDBEx mantém o que carregava; um cujo SXDBEx declara registros de fórmula que o HotXLS não grava permanece na reprodução bruta - A leitura não é afetada: arquivos gravados antes desta versão carregam exatamente como antes, e os registros de cache para os quais o HotXLS ainda não tem modelo — entre eles o DConRef ou o DConName que nomeiam um intervalo de origem — continuam sendo preservados byte a byte ao longo de um ciclo de salvar e abrir
Versão 2.377.1
Adicionado
- Uma pasta de trabalho agora pode pedir para seus substreams de PivotCache antigos serem reescritos ao salvar.
TXLSWorkbook.UpgradeLegacyPivotCacheFramingé desativado por padrão; quando ativado, um arquivo XLS clássico cujos caches foram gravados pelo HotXLS antes da v2.377.0 é salvo com esses caches reemitidos pelos gravadores SXDB / SXFDB / SXDBB corrigidos, de modo que a sequência de correções de pivot cache das versões v2.376.1 a v2.376.7 alcança arquivos que já existem, e não apenas novas saídas - A atualização se aplica apenas onde comprovadamente não custa nada. Um cache lido de um arquivo é reemitido somente quando todo o seu substream continha registros que o HotXLS modela e seu enquadramento é um que o próprio HotXLS gravou errado; todo o resto — todo cache produzido pelo Excel e qualquer cache que carregue um registro como o SXDBEx, que o HotXLS mantém apenas como bytes opacos — continua reproduzindo seus próprios bytes com a opção ativada.
TXLSPivotCache.CanUpgradeFramingrelata o veredito de um cache, eRawFramingIsLegacy/RawModelIsCompleterelatam as duas metades em que ele se apoia - Um cache atualizado é gravado onde seu substream estava, em vez de ser movido para a frente dos demais, de modo que uma exibição de tabela dinâmica continua resolvendo para o cache que nomeava antes do salvamento
Corrigido
- Um PivotCache XLS clássico lido de um arquivo e depois entregue ao gravador com seu sinalizador de reprodução bruta limpo produzia dois substreams de cache, o do modelo e o do arquivo. Agora produz um
Versão 2.377.0
Adicionado
- Planilhas XLS clássicas aceitam objetos de gráfico embutidos:
AddChartObjectem uma planilha ancora um frame de gráfico na grade da planilha (forma de controle hospedeiro OBJ tipo 5 mais a âncora de cliente MSODRAWING), constrói o substream de gráfico por meio do construtor de gráficos compartilhado e acompanha a lista de registros da planilha, de modo que o layout do arquivo corresponda ao que o leitor reconecta ao abrir; um ciclo de salvar e abrir traz o frame de volta com seu modelo de gráfico — séries, título e referências de intervalo intactos
Corrigido
- Registros SeriesText decodificam sua carga útil de string com a largura correta: o leitor passava a contagem de caracteres onde se esperava uma contagem de bytes, de modo que legendas e rótulos de série de 16 bits voltavam truncados à metade do comprimento (um título de cinco caracteres lido como dois)
Versão 2.376.7
Corrigido
- As linhas em cache por trás de uma tabela dinâmica em um arquivo XLS clássico são gravadas da forma como [MS-XLS] 2.4.276 as descreve: um registro por linha de dados em cache, contendo um índice por campo de cache, com um byte de largura, ou dois bytes para um campo com mais de 255 valores distintos. O HotXLS vinha gravando um esquema próprio, comprimindo cada campo em apenas os bits suficientes para contar seus valores e empacotando muitas linhas em um registro, o que nenhum outro programa conseguia decodificar e que contrariava o sinalizador de mais-de-255-valores que a definição de campo já carregava
- O Excel agora pode ler os valores que um PivotCache do HotXLS mantém, em vez de ter que reconstruí-los a partir do intervalo de origem quando a pasta de trabalho abre — era nisso que dependia uma pasta de trabalho cujos dados de origem haviam sido movidos, alterados ou excluídos desde então
- As linhas em cache também são lidas de volta. Antes, o HotXLS ignorava o registro por completo, de modo que um cache carregado de um arquivo voltava com toda linha apontando para o primeiro valor de cada campo, e tudo o que fosse calculado a partir desse cache seguia esses valores errados. Isso vale para uma pasta de trabalho gravada pelo Excel tanto quanto para uma gravada pelo HotXLS
- Um campo de cache que não carrega valores não contribui com nada para uma linha em cache, e um campo com mais de 255 valores é armazenado e lido no tamanho maior que o formato exige
- Pastas de trabalho gravadas pelo HotXLS v2.376.6 e anteriores continuam carregando com suas linhas em cache intactas
Versão 2.376.6
Corrigido
- O registro de cabeçalho do PivotCache em um arquivo XLS clássico tem o layout que [MS-XLS] 2.4.275 descreve. A contagem de registros é um campo de quatro bytes ali, e o HotXLS a gravava em dois bytes, de modo que todo campo atrás dela saía uma posição adiantado e o registro ficava quatro bytes mais comprido — o número de campos de cache acabava dentro da contagem de registros, a palavra de sinalizadores caía no identificador de stream, e a contagem de campos caía no comprimento do nome de quem atualizou o cache por último, prometendo um nome que o registro era curto demais para conter
- Os sinalizadores do cabeçalho agora dizem o que o cache realmente é: se seus registros estão armazenados no arquivo, se ele é atualizado quando a pasta de trabalho abre, se a atualização é permitida e se a consulta de atualização roda em segundo plano. Essas quatro configurações já apareciam na saída XLSX e agora viajam também com um arquivo XLS clássico, junto com o nome de quem atualizou o cache por último
- O tipo de dados de origem no cabeçalho é gravado como um intervalo de planilha, em vez de ficar em um valor que o formato não define, e as contagens de campos e a contagem de registros usados carregam os totais reais do cache
- O nome de quem atualizou é aparado aos 255 caracteres que o registro permite, e um cache sem esse nome não grava nome algum em vez de um espaço reservado vazio
- Pastas de trabalho gravadas pelo HotXLS v2.376.5 e anteriores ainda carregam e ainda entregam sua contagem de registros de cache. Nada mais foi jamais armazenado no cabeçalho antigo — o gravador preenchia todo campo atrás da contagem de registros com valores fixos que nunca lia do cache — de modo que os sinalizadores e o nome de quem atualizou de tal arquivo voltam como padrões, e não como valores recuperados
Versão 2.376.5
Corrigido
- Nomes de campos de PivotCache sobrevivem a um salvar e recarregar de um arquivo XLS clássico. O comprimento do nome era lido do lugar errado na definição de campo de cache — um índice que é sempre $FFFF — de modo que o nome era descartado toda vez e todo campo de cache voltava sem nome
- O registro de definição de campo de cache tem o layout que [MS-XLS] 2.4.283 descreve: grbit, ifdbParent, ifdbBase, citmUnq, csxoper, cisxoper, catm e, em seguida, o nome do campo. O HotXLS vinha gravando três campos que o registro não tem — um índice de item de subtipo, um formato de número e uma segunda contagem de itens — e colocando $FFFF em índices que a especificação limita pelo número de campos no cache
- A palavra de sinalizadores do registro agora descreve o campo a que pertence: se o campo carrega itens de cache, se esses itens incluem números, datas ou texto, se um mínimo e um máximo podem ser calculados, se algum item não é uma data e se há mais de 255 deles. A contagem de itens no registro agora corresponde ao número de registros de itens de cache que de fato o seguem
- Nomes de campos de cache mais longos que os 255 caracteres que o registro permite são aparados a 255 em vez de serem gravados com seu comprimento total
- Pastas de trabalho gravadas pelo HotXLS v2.376.4 e anteriores ainda carregam com seus nomes de campos de cache intactos — o nome ocupava a mesma posição no layout antigo, de modo que nada que carregava um nome o perde
Versão 2.376.4
Corrigido
- Os caches de tabela dinâmica em arquivos XLS clássicos agora usam os números de registro que o [MS-XLS] lhes dá. Sete registros no substream de cache vinham sendo emitidos com o número de algum outro registro: a definição de campo de cache como $00C8 (SXDBB), o tipo de campo como $00FB (SxFormat), os índices de item por registro como $00C5 (SXDI), e os valores de cache numéricos, booleanos, de erro, de data e em branco como $00CE, $00CF, $00D0, $00CC e $00CB (SXDtr, SxNil, SXTbl, SXInt, SxErr). Agora são SXFDB $00C7, SXFDBType $01BB, SXDBB $00C8, SXNum $00C9, SxBool $00CA, SxErr $00CB, SXDtr $00CE e SxNil $00CF, de modo que o Excel pode ler um pivot cache gravado pelo HotXLS e o HotXLS pode ler um gravado pelo Excel
- Valores em branco em um campo de pivot cache sobrevivem a um ciclo de salvar e abrir. O gravador sempre os emitia, mas o leitor não tinha um caso para eles, de modo que todo valor em branco era descartado ao carregar e cada valor depois dele naquele campo se deslocava uma posição, deixando as referências de item da tabela dinâmica apontando para os valores errados
- Pastas de trabalho gravadas pelo HotXLS v2.376.3 e anteriores continuam carregando com seus valores de cache intactos. Cada substream de pivot cache é lido com a numeração com que foi gravado, decidida a partir de seu próprio registro de definição de campo, e um cache lido de um arquivo existente é gravado de volta com os números com que chegou, de modo que reabrir e salvar uma pasta de trabalho antiga não muda silenciosamente seus bytes
Versão 2.376.3
Corrigido
- As exibições de tabela dinâmica em arquivos XLS clássicos agora gravam seu registro de extensão SXEx com o número que o [MS-XLS] lhe dá, $00F1; o gravador vinha usando $00C6, que é o SXDB, o registro de cabeçalho de pivot cache — o Excel, procurando a extensão de exibição, não encontrava nada e um registro alegando ser um cabeçalho de cache ficava no meio de uma planilha, de modo que as propriedades de exibição que o SXEx carregava se perdiam mesmo depois da correção de layout de campos da v2.376.1
- Pastas de trabalho gravadas pelo HotXLS v2.376.2 e anteriores ainda abrem com suas exibições de tabela dinâmica intactas: dentro de uma planilha, o antigo $00C6 continua aceito como a extensão de exibição que deveria ser, e dentro de um substream de pivot cache o $00C6 continua lido como o cabeçalho de cache, de modo que nada que antes carregava deixa de carregar
Versão 2.376.2
Corrigido
- Planilhas de gráfico 3-D XLS clássicas criadas sem uma cena explícita agora carregam os sinalizadores que documentadamente devem carregar: a palavra de sinalizadores Chart3d padrão definia um bit que o registro reserva em vez do bit de dimensionamento automático, de modo que um gráfico 3-D padrão reaberto ficava com agrupamento ativado, mas dimensionamento automático desativado, e nunca correspondia à cena que dizia gravar; gráficos que passam uma cena 3-D explícita não foram afetados e seus bytes permanecem inalterados
Versão 2.376.1
Corrigido
- As exibições de tabela dinâmica gravam um registro SXEx cujos campos ficam onde os leitores os esperam: o corpo fixo de 24 bytes estava deslocado em dois campos, de modo que ele anunciava dois registros de formatação que nunca vinham e deixava todo comprimento de string opcional em zero, o que o [MS-XLS] 2.4.282 proíbe — esses comprimentos devem ser ou o marcador de ausência ou um comprimento real de 1 a 255; o corpo agora começa no campo correto e marca toda string opcional como ausente, de modo que o Excel lê as propriedades da exibição em vez de um bloco embaralhado
- O comprimento do registro SXEx é derivado dos bytes de fato gravados, em vez de uma constante fixa no código, de modo que o tamanho declarado e a carga útil não podem mais se separar como acontecia antes da v2.376.0
Versão 2.376.0
Adicionado
- Planilhas de gráfico XLS clássicas podem se vincular a uma exibição de tabela dinâmica: uma nova sobrecarga de
AddChartSheetaceita o nome da exibição dinâmica de origem e o sinalizador de ocultar legendas de campos, que são gravados nos registros SXViewLink ($0858, [MS-XLS] 2.4.316) e PivotChartBits ($0859, 2.4.196) nos globais do gráfico antes de Units conforme o ABNF do substream de Chart Sheet; a inspeção de gráficos decodifica ambos os registros — incluindo codificações de string de 8 e 16 bits — de volta ao modelo tipado (marcador de gráfico dinâmico, nome da exibição de origem, sinalizador de legendas) e ao instantâneo semântico canônico, enquanto gráficos sem os registros de vínculo permanecem sem marcação
Corrigido
- As exibições de tabela dinâmica gravam um registro SXEx com o tamanho correto: o emissor declarava um corpo de 24 bytes mas gravava 26 bytes, de modo que os dois bytes excedentes caíam onde se esperava o cabeçalho do próximo registro e todo registro depois da exibição (incluindo o EOF da planilha e qualquer substream de planilha de gráfico que seguisse uma planilha dinâmica) era analisado errado, fazendo pastas de trabalho que combinam uma tabela dinâmica com uma planilha de gráfico reabrirem sem o gráfico
- Nomes de exibição de linhas de tendência em gráficos clássicos decodificam cargas úteis de string de 8 bits corretamente; o leitor anterior de caracteres largos devolvia um nome vazio para registros que o Excel grava com caracteres de 8 bits
Versão 2.375.0
Adicionado
- Séries de gráfico XLS clássicas aceitam preenchimentos com cores de tema: o estilo por série agora carrega um índice de cor de tema e um tint que são gravados em um registro GelFrame depois do AreaFormat conforme [MS-XLS] 2.4.131, usando a extensão de cor de tema OfficeArt (fillType, fillColor com o RGB achatado, índice de esquema fillColorExt, carga útil de tint fillColorExtMod); quando nenhuma cor de preenchimento explícita é fornecida, a cor achatada é resolvida do tema Office padrão com o tint aplicado, e a inspeção de gráficos decodifica a intenção de tema de volta ao modelo tipado e ao instantâneo semântico canônico
Corrigido
- A compilação completa da biblioteca multi-versão volta a ficar verde para todos os compiladores suportados: casts e chamadas que apenas compiladores mais novos aceitam (um type cast Extended de valores Int64, um cast rígido Double de um inteiro, um argumento procedural nil na resolução de sobrecarga, acesso a TPicture.LoadFromStream onde ele é protegido, e o tipo de token GdiplusStartup que mudou entre gerações da VCL) foram tornados seguros entre versões do XE5 até a versão atual
Versão 2.374.0
Adicionado
- Cenas de gráfico 3-D são configuráveis e inspecionáveis: uma nova sobrecarga de
AddChartSheetaceita rotação, elevação, distância de perspectiva, altura, profundidade, gap e os sinalizadores de cluster, dimensionamento automático, dimensionamento em ângulo reto e paredes bidimensionais, que são gravados no registro Chart3d conforme [MS-XLS] 2.4.46, e a inspeção de gráficos decodifica a cena de volta ao modelo tipado (Scene3D) na leitura; gráficos que mantêm as sobrecargas anteriores ainda emitem os padrões correspondentes ao Excel byte a byte
Versão 2.373.0
Adicionado
- Séries de gráfico XLS clássicas aceitam substituições de estilo por série: cor e estilo de linha, cor de preenchimento, e forma, cores e tamanho do marcador são gravados no bloco de formatação da série com o sinalizador automático limpo, de modo que o Excel respeita os valores fornecidos, e a inspeção de gráficos decodifica os registros LineFormat, AreaFormat e MarkerFormat de volta ao modelo tipado e ao instantâneo semântico canônico
Versão 2.372.0
Adicionado
- Séries de gráfico XLS clássicas aceitam referências nomeadas e externas para categorias e valores: texto que não é um intervalo A1 simples é compilado pelo motor de fórmulas da pasta de trabalho, e o registro BRAI carrega um item de área de gráfico contendo a fórmula compilada, de modo que a passagem de salvar o resserealiza com os índices atuais do repositório de nomes definidos; a inspeção de gráficos descompila a referência de volta ao seu nome na leitura, enquanto texto não resolúvel mantém o BRAI de espaço reservado vazio
Versão 2.371.0
Adicionado
- Séries de gráfico XLS clássicas podem se vincular ao grupo de eixos secundário: marcar uma série em
AddChartSheeteleva AXESUSED a dois, emite um segundo bloco AxisParent com seus próprios eixos de categoria e de valores, mais seu próprio grupo de gráfico, conforme o ABNF do substream de Chart Sheet do [MS-XLS], e encaminha a série por SerToCrt ao segundo grupo; a inspeção de gráficos decodifica a vinculação de grupo de gráfico por série na leitura
Versão 2.370.0
Adicionado
- Séries de gráfico XLS clássicas aceitam rótulos de dados:
AddChartSheetemite um registro AttachedLabel com os sinalizadores show-value, show-percent, show-category-name, show-label-and-percent, show-bubble-size e show-series-name (layout de bits do [MS-XLS] 2.4.5), e a inspeção de gráficos decodifica tanto o AttachedLabel quanto o registro de rótulo estendido DataLabExtContents, incluindo seu separador, de volta ao modelo tipado e ao instantâneo semântico canônico
Versão 2.369.0
Adicionado
- A inspeção de gráficos XLS clássicos agora decodifica a estrutura de grupos de eixos: o AXESUSED revela a contagem declarada de grupos de eixos, e todo eixo registra se pertence ao grupo AxisParent primário ou secundário, com o índice de grupo transportado para o instantâneo semântico canônico
Versão 2.368.0
Adicionado
- Linhas de tendência e barras de erro de gráficos BIFF agora decodificam para o modelo tipado de gráfico na leitura: cada bloco Series revela seus registros Trendline com tipo de regressão, ordem ou período, interceptação (incluindo automática), sinalizadores de exibição de equação e R-quadrado, períodos de previsão e retroprevisão, e nome de exibição, além de seus registros SerErrBar com lado da direção, tipo de valor, tampas de extremidade e magnitude
- O instantâneo semântico clássico mapeia linhas de tendência e barras de erro para os contêineres canônicos compartilhados em vez de gerar um erro, de modo que pastas de trabalho com séries de gráfico avançadas são comparadas de forma determinística e mudanças de linha de tendência alteram o stream canônico
Versão 2.367.0
Adicionado
- O RecalcAndVerifyEx executa uma auditoria de cálculo profunda em ambos os motores de pasta de trabalho: toda fórmula é avaliada uma vez pelo grafo de dependências em uma sobreposição de resultados isolada, de modo que as células dependentes leem desta passagem em vez de caches obsoletos, falhas de avaliação são classificadas em categorias tipadas (argumentos não suportados, referências circulares, referências externas negadas ou ausentes, tabelas de dados puladas, cancelamento, falhas internas) com códigos de resultado, e cada falha carrega uma pilha de chamadas limitada
- A auditoria respeita um orçamento de problemas com ordenação estável de planilha, linha, coluna e categoria, um sink de progresso que pode cancelar nos limites de nós, tolerâncias numéricas configuráveis e uma ApplyResults opcional que confirma os valores recalculados atomicamente após uma passagem totalmente bem-sucedida sobre uma estrutura de pasta de trabalho inalterada; o padrão continua estritamente somente leitura
Alterado
- Os pontos de entrada RecalcAndVerify e CalculateAndVerify existentes mantêm sua semântica anterior de comparação rasa como shims de compatibilidade, ao mesmo tempo em que compartilham os novos campos de relatório
Versão 2.366.0
Alterado
- A exportação de PDF agora monta documentos por meio de um gravador sequencial de objetos que transmite cada objeto direto ao destino, de modo que nenhuma cópia intermediária do documento inteiro é construída; documentos não assinados vão em streaming direto para streams somente para frente, enquanto documentos assinados são montados em um spool limitado que recebe os patches de conteúdo ByteRange e de assinatura antes de uma única cópia direta
- As cargas úteis de anexos PDF são copiadas de seus spools de provedor para o documento final em blocos fixos e referenciam seu tamanho de stream por meio de um objeto de comprimento indireto, mantendo a memória de pico estável para anexos de várias centenas de megabytes
Corrigido
- Os resumos de assinatura agora são computados incrementalmente sobre os dois intervalos de bytes cobertos do documento montado, em vez de por meio de uma cópia completa do documento, e os campos de assinatura reservados são localizados a partir do próprio objeto de assinatura, e não pela varredura dos bytes montados
Versão 2.365.0
Adicionado
- O texto de assinatura PDF visível agora é renderizado pelo pipeline de fontes Unicode embutidas, com alinhamento à esquerda, centralizado ou à direita, tamanho, cor e estilo negrito ou itálico configuráveis, cobrindo qualquer sistema de escrita em nomes de signatários, motivos e locais
- Imagens de aparência de assinatura PDF aceitam cargas úteis JPEG com dimensões derivadas do marcador de frame, enquanto imagens grandes demais ou corrompidas falham de forma determinística antes que o resumo seja computado
- Anexos PDF expõem uma política explícita de nomes duplicados, direcionam para spool cargas úteis grandes de provedor em um arquivo temporário além de um limite configurável de bytes e recusam nomes hostis ao nó folha contendo separadores de caminho ou caracteres de controle
Alterado
- As árvores de nomes de anexos PDF agora são ordenadas pelos bytes de seus nomes codificados conforme a ISO 32000-1 7.9.6, e a coleção de anexos permanece congelada enquanto os provedores rodam, de modo que adições reentrantes falham atomicamente
Versão 2.364.0
Adicionado
- Imagens EMF e WMF embutidas reproduzem blocos de caminho com passagens de preenchimento, de traço e combinada de traço e preenchimento, retângulos arredondados, arcos, cordas, setores de pizza e arcos angulares por meio de conversão exata de arco para Bézier, preenchimentos e molduras de região resolvidos de retângulos RGNDATA limitados e canetas estendidas geométricas ou cosméticas, tudo nivelado na cena compartilhada imutável com as mesmas fronteiras de falha fechada contra recortes, escapes e registros privados
Versão 2.363.0
Adicionado
- Imagens EMF e WMF embutidas agora são reproduzidas por meio de uma lista de permissões expandida de registros seguros: pilhas de estado de contexto de dispositivo com salvar e restaurar, mapeamento de janela e viewport com transformações de mundo, tabelas de objetos de caneta e pincel incluindo objetos de estoque, retângulos, elipses, cadeias de linhas, polígonos, polilinhas e curvas de Bézier com estilos de traço, trechos de texto limitados com fontes, cores e alinhamento, e imagens stretch-DIB restritas recodificadas como PNG, enquanto registros de estado desconhecidos continuam falhando de forma fechada para o fallback de raster limitado em vez de invocar a reprodução de metaarquivos da plataforma
Corrigido
- Imagens WMF agora analisam o layout de cabeçalho de registro de dois bytes padrão, de modo que metaarquivos placeable e padrão reais são decodificados, e não apenas fixtures sintéticas
Versão 2.362.0
Adicionado
- XLS clássico e XLSX agora preservam o estado de array de fórmulas de tabela, modos de IME de validação de dados tipada, dicas de thread de cálculo, presença de forçar cálculo completo, dicas de atualizar tudo e nomes de código de pasta de trabalho por meio de suas representações binárias ou OOXML nativas
RecalcAndVerifydevolve uma auditoria de cálculo estruturada e limitada com categorias estáveis de cache, análise, função ausente e nome ausente, deixando caches de fórmulas e semântica da pasta de trabalho inalteradosTXLSPageImageExporter.ExportRangerenderiza um retângulo de células solicitado como um único PNG ou JPEG compacto, sem papel, margens, cabeçalhos, rodapés, títulos de impressão ou quebras de página, e os eventos de antes e depois da imagem de página podem desenhar no canvas real de codificação- Um exportador dedicado de imagens de célula mede, renderiza e salva qualquer retângulo de células clássico ou XLSX como uma única imagem compacta com resolução, escala, formato e qualidade JPEG configuráveis; fundos transparentes ou coloridos, opções independentes para objetos, linhas de grade e bordas de célula, orçamentos de pixels e de bytes, e salvamento de arquivo por meio de substituição atômica na mesma pasta que deixa um destino existente intocado quando algo falha
- Os eventos de pintura de imagem de página agora recebem um contexto somente leitura completo carregando o canvas ativo, limites de pixels, tamanho de página em pontos, resolução, escala, números de página do documento e da planilha, contagem total de páginas e a planilha de origem, disparam exatamente uma vez por frame renderizado, incluindo frames de TIFF multipágina, ficam silenciosos durante a medição e nunca disparam seu evento posterior nem gravam bytes parciais de imagem quando o evento precedente gera um erro
TXLSSvgExportsuporta callbacks completos por página, namespaces de ID de documento e de página determinísticos e sobreposições seguras opcionais de hiperlink com ScreenTips e atributos seguros de nova janela- Os exportadores HTML clássico e XLSX fornecem uma exibição de planilha opcional com cabeçalhos semânticos de linha e coluna, além de um hot tracking limitado em CSS puro, e ambos rejeitam esquemas de URI ativos ou locais, mantendo o texto de exibição do link
- Assinaturas PDF visíveis podem usar imagens de aparência PNG contidas, cobertas ou esticadas, e anexos PDF podem obter sua carga útil preguiçosamente de uma interface de origem de chamada única durante cada salvamento
- Um decodificador vetorial limitado de EMF e WMF valida cabeçalhos, tamanhos de registros, totais, posicionamento exato do EOF e restrições de escapes, e depois reproduz seu subconjunto seguro de comandos de retângulo pelos backends compartilhados de Canvas e SVG sem invocar a reprodução de metaarquivos do driver
Alterado
- A gravação direta de XLSX pode criar atributos de array de fórmulas de tabela e modos de IME de validação de dados tipada, enquanto fórmulas de tabela em array não são mais silenciosamente expandidas como fórmulas escalares por linha
Versão 2.361.99
Alterado
- O PDF etiquetado automático agora emite imagens XLSX informativas como elementos de estrutura Figure independentes, com texto alternativo Unicode, identificadores densos de conteúdo marcado por página, entradas exatas de árvore pai e um elemento semântico por instância visível, enquanto cargas úteis de imagem iguais continuam compartilhando um XObject; imagens sem texto alternativo permanecem artefatos decorativos
Versão 2.361.98
Corrigido
- Fórmulas de pesquisa que examinam um intervalo cobrindo a própria célula (VLOOKUP, HLOOKUP, LOOKUP, XLOOKUP, XMATCH, MATCH) não relatam mais erros falsos de referência circular durante o recálculo, enquanto edições dentro do intervalo examinado ainda disparam o recálculo da fórmula
- Critérios de texto do AutoFilter com mais de 255 caracteres são limitados ao limite do registro de filtro, em vez de gravar uma condição de autofiltro corrompida
- Espaços consecutivos usados pelo operador de interseção implícita são preservados quando o texto da fórmula é regenerado, em vez de colapsar em um único espaço
- Nomes definidos integrados além de áreas de impressão, títulos de impressão e bancos de dados de filtro (áreas de consolidação, extração, banco de dados, critérios, gravador, títulos de planilha e marcadores da família Auto_Open) são preservados tal como estão quando pastas de trabalho XLS clássicas são abertas e salvas
Versão 2.361.97
Adicionado
- Pastas de trabalho XLS clássicas e XLSX agora expõem uma política compartilhada de exibição de objetos de três estados, com preservação sem perdas da fonte intocada e mapeamento entre formatos; objetos ocultos não expandem mais a saída paginada ou HTML nem entram nos caminhos de renderização de desenho e mídia
- O visualizador de pastas de trabalho renderiza espaços reservados nomeados leves para objetos em modo de espaço reservado, enquanto os exportadores de PDF, SVG, bitmap, impressão e HTML mantêm objetos completos por padrão e oferecem uma opção explícita de espaço reservado que evita a decodificação de imagens e a construção de cenas de gráfico
Versão 2.361.96
Alterado
- Layouts manuais de gráfico agora preservam campos de origem independentes e tokens inválidos, resolvem coordenadas de fator e de borda com posicionamento limitado que preserva o tamanho, respeitam destinos de plotagem internos e externos mais sobreposição de título e legenda, convertem a geometria ODF suportada por meio de distâncias absolutas de gráfico e renderizam posicionamento consistente de título, legenda, área de plotagem e título de eixo na saída de paginação, SVG, PDF, imagem, visualização, impressão, visualizador e HTML
Versão 2.361.95
Alterado
- Os rótulos de dados de gráfico originados de células XLSX agora pertencem a cada série com fórmulas completas, caches indexados, visibilidade explícita compartilhada e por ponto, atualização ao vivo da planilha, fallback de cache externo, tradução de fórmulas durante cópias e expansão de relatórios, e composição consistente de rótulos com o personalizado primeiro na saída de paginação, SVG, PDF, imagem, visualização, impressão, visualizador e HTML
Versão 2.361.94
Alterado
- Eixos de categorias de gráfico multinível agora preservam caches hierárquicos esparsos e intervalos bidimensionais ativos, constroem extensões conscientes de pai em tempo linear, respeitam o comportamento de nível único, invertido, da direita para a esquerda, oculto e de categoria em branco, e renderizam rótulos e separadores de hierarquia consistentes na saída de paginação, SVG, PDF, imagem, visualização, impressão, visualizador e HTML; a exportação ODS usa o intervalo de categorias folha
Versão 2.361.93
Alterado
- Eixos de data agora inferem unidades de calendário uma vez entre todas as séries visíveis, escolhem intervalos automáticos limitados a partir do trecho visível, da largura do eixo, da fonte do rótulo medida, do formato de número e da rotação, e derivam rótulos, coordenadas, marcas de escala e linhas de grade de coleções compartilhadas de marcas de escala principais e secundárias na saída de paginação, SVG, PDF, imagem, visualização, impressão, visualizador e HTML
Versão 2.361.92
Alterado
- Eixos de data XLSX agora preservam formatos de número do eixo e o estado do vínculo de origem, renderizam rótulos formatados com estilo de texto e rotação, e respeitam a direção invertida mantendo o espaçamento contínuo para datas duplicadas e esparsas na saída de paginação, SVG, PDF, imagem, visualização, impressão, visualizador e HTML
Versão 2.361.91
Alterado
- Eixos de data XLSX agora preservam se as unidades de calendário base, principal e secundária e a detecção automática de categorias foram omitidas ou fornecidas explicitamente, incluindo unidades de dia explícitas e valores falsos; os registros de extensão de eixo de data clássicos expõem campos tipados, retêm valores brutos mascarados ou inválidos e podem mapear configurações ativas para o modelo de eixo XLSX
Versão 2.361.90
Alterado
- Gráficos de eixo de data XLSX agora preservam o espaçamento contínuo de datas e renderizam intervalos principais de dia, mês ou ano com o sistema de datas 1900 ou 1904 da pasta de trabalho na saída paginada, SVG, PDF, imagem, visualização, impressão, visualizador e HTML; a saída baseada em paginação também respeita as marcas de escala secundárias e as linhas de grade configuradas
Versão 2.361.89
Adicionado
- O visualizador de pastas de trabalho agora dispõe em mosaico fundos de planilha válidos atrás das células sem preenchimento, enquanto impressão, PDF, SVG, bitmap, metarquivo e a saída HTML clássica ou XLSX expõem uma opção explícita
ExportSheetBackgroundImagesque vem desativada por padrão
Alterado
- A renderização paginada de fundos agora preserva a fase de mosaico relativa à planilha entre páginas, decodifica cada fundo uma vez por sessão de renderização, reutiliza um único XObject de imagem PDF ou recurso SVG e pula payloads corrompidos com um diagnóstico
Versão 2.361.88
Adicionado
- Planilhas clássicas agora expõem autoria tipada de imagens de fundo e um recurso de fundo compartilhado somente leitura, leem e gravam registros de fundo BIFF8 com divisão contínua do payload, reconstruem payloads de bitmap como dados BMP padrão, preservam byte a byte formatos nativos não suportados e desconhecidos com diagnósticos, copiam a propriedade de fundos em profundidade e convertem fundos conhecidos em qualquer direção entre XLS e XLSX
Versão 2.361.87
Corrigido
- Cópias de planilhas XLSX agora retêm os bytes da imagem de fundo e o tipo de mídia em cópias na mesma pasta de trabalho e entre pastas de trabalho, enquanto cópias na mesma pasta de trabalho reutilizam a mídia de origem preservada e cópias entre pastas de trabalho transferem a propriedade da mídia antes de salvar
Versão 2.361.86
Adicionado
- Pastas de trabalho XLS clássicas e XLSX expõem
AllowUnsafeFormulaCallbacks, enquanto a avaliação contextual oferece a opção correspondente por chamada e o status estruturadoxlfeUnsafeFunctionDenied
Segurança
- Nomes de fórmula perigosos externos e no estilo macro não chegam mais por padrão a handlers de funções de usuário locais da pasta de trabalho, de processo, do resolvedor ou de eventos, e a negação acontece antes de os argumentos da fórmula serem avaliados
Versão 2.361.85
Adicionado
- Pastas de trabalho XLS clássicas e XLSX expõem
AuditFormulaSymbolspara diagnósticos estruturados de função desconhecida, nome desconhecido e sintaxe em células de fórmula e nomes definidos, com estatísticas por operação de fórmulas únicas e de acertos de cache
Alterado
- Funções e nomes desconhecidos preservados agora avaliam para erros
#NAME?do Excel pelos caminhos de cálculo direto, dependente, contextual, serial e paralelo - Mudanças no registro de funções de usuário por pasta de trabalho ou por processo e mudanças de fórmula em nomes definidos agora invalidam o estado de cálculo afetado antes do próximo recálculo
Corrigido
- Erros de fórmula lidos de células em cache dependentes agora permanecem como erros tipados em vez de entrar na conversão escalar e estourar uma exceção de conversão Variant
Versão 2.361.84
Adicionado
- A atribuição normal de fórmulas em XLS clássico e XLSX agora aplica atomicamente a política de entrada de fórmulas da pasta de trabalho, de modo que a rejeição estrita deixa o valor da célula, o cache de fórmulas e as dependências inalterados, enquanto o modo de preservação armazena funções e nomes desconhecidos
Alterado
- O XLS clássico grava chamadas desconhecidas preservadas por meio de tokens de funções de usuário de suplementos BIFF e mantém o texto de nomes desconhecidos preservados em ciclos de salvar, reabrir e converter entre XLS e XLSX
- A validação de entrada de fórmulas reconhece funções de usuário de callback configuradas, funções chamáveis
LAMBDAeLET, lambdas de nomes definidos, marcadores de posição de relatório, vínculos externos registrados e referências estruturadas válidas sem invocar manipuladores
Corrigido
- A validação de XLSX agora preserva referências estruturadas válidas aninhadas e da linha atual e não reutiliza mais texto de coluna desatualizado ao examinar uma referência de tabela não resolvida
Versão 2.361.83
Alterado
- A atribuição de valores em XLS clássico e XLSX agora aplica
FormulaEntryPolicy.EmptyStringModede forma consistente: o padrão limpa strings vazias exatas, o modo de preservação armazena uma string vazia constante, eNullouUnassignedsempre limpa a célula - O carregamento nativo de XLS, XLSX e ODS, além da conversão de XLS para XLSX e de XLSX para XLS, agora preserva strings vazias constantes confiáveis sem confundi-las com células ausentes ou fórmulas como
="" - Os gravadores de linhas ou colunas de strings e Variant do XLSX retêm caminhos rápidos de armazenamento compactado, deixando as entradas limpas como ausentes e armazenando strings vazias exatas apenas no modo de preservação
Versão 2.361.82
Adicionado
- Pastas de trabalho XLS clássicas e XLSX agora expõem uma
FormulaEntryPolicycompartilhada, enquanto ambos os motores de planilha fornecem métodosValidateFormulaEntrysem mutações que retornam um problema, uma ação e um símbolo desconhecido estruturados antes de o chamador alterar uma célula
Alterado
- A validação de entrada de fórmulas agora distingue entrada vazia exata de fórmulas que retornam uma string vazia, separa funções desconhecidas, nomes desconhecidos, falhas de sintaxe, destinos inválidos e limitações do formato de destino, e reconhece funções de usuário registradas sem invocar seus manipuladores
Versão 2.361.81
Alterado
- Inserções ou exclusões de linhas ou colunas inteiras agora remapeiam de forma consistente em XLS e XLSX as áreas de seleção ordenadas e a área ativa de cada painel, preservando a ordem das áreas remanescentes e criando uma célula de fronteira como fallback quando todas as áreas forem removidas
- A normalização de seleções de painéis grandes, a edição estrutural e as consultas agora usam construtores lineares amortizados e crescimento de capacidade em vez de cópias repetidas de strings completas ou matrizes
Corrigido
- O XLS clássico agora preserva byte a byte os corpos de registros
Selectionmalformados ou contraditórios enquanto reportaxlsDiagnosticSelectionRecordInvalid, em vez de expor um estado tipado parcialmente confiável
Versão 2.361.80
Adicionado
TXLSWorksheeteTXLSXWorksheetagora expõem os métodos correspondentesTryGetWindowScrolleScrollWindowpara ler e alterar a primeira célula visível de qualquer painel lógico existente com coordenadas de base um
Alterado
- O estado de rolagem de quatro painéis agora preserva de forma independente os eixos compartilhados superior, inferior, esquerdo e direito em ciclos de salvar, abrir e copiar planilhas em XLS e XLSX, enquanto painéis ausentes e coordenadas inválidas falham sem alterar o estado da exibição
Versão 2.361.79
Alterado
- Planilhas XLS clássicas retêm grupos de seleção ordenados independentes para cada painel, agregam registros
SelectionBIFF consecutivos em uma única sequência lógica, preservam corpos de registros intocados e copiam o estado de seleção completo junto com a planilha - Seleções clássicas com mais de 1369 áreas são gravadas como blocos consecutivos em conformidade com o padrão, mantendo um único índice agregado de área ativa em todos os blocos
Versão 2.361.78
Adicionado
TXLSWorksheeteTXLSXWorksheetagora expõem os métodos correspondentesGetSelectedAreaseSelectAreascom reconhecimento de painéis por meio do tipo compartilhadoTXLSPanePosition
Alterado
- Consultas de seleções de painéis retornam instantâneos ordenados de propriedade do chamador com o índice da área ativa, preservam áreas sobrepostas e deixam o estado da planilha inalterado quando um painel está ausente ou uma atualização é inválida
Versão 2.361.77
Adicionado
IXLSWorkbook,TXLSWorkbookeTXLSXWorkbookagora expõem os métodos correspondentesSaveSemanticSnapshotem streaming eComputeSemanticHashincremental de SHA-256 com perfis Content e SecurityComplete, além de opções explícitas de estado do visualizador, metadados voláteis e cache de fórmulas
Alterado
- Instantâneos semânticos percorrem modelos de pasta de trabalho esparsos sem materializar um instantâneo completo, e as operações de instantâneo e de hash mantêm uma concessão de leitura para que modificações públicas concorrentes falhem antes de alterar o estado da pasta de trabalho
Versão 2.361.76
Adicionado
- O modelo de gráficos tipado do XLS clássico agora expõe títulos de gráfico, eixo de categorias e eixo de valores
Corrigido
- A extração do modelo de gráficos do XLS clássico agora identifica séries, legendas, grupos de gráficos, eixos, estado 3-D, rótulos de séries e fórmulas de origem das séries a partir de seus registros BIFF definidos
- Posições de legendas e a classificação entre pizza e rosca são decodificadas de seus campos de registro definidos
Versão 2.361.75
Adicionado
- O FeatureShowcase do Delphi e o XlsxFeatureGallery do C++Builder agora demonstram o mesmo fluxo de trabalho de contexto de dados de relatório compilado, tabela em memória, acesso estrito a dados, continuação após falhas recuperáveis, planilha de diagnósticos, resultado de execução imutável e saída atômica para arquivo
- O tópico de relatórios compilados agora fornece exemplos correspondentes do Delphi e do C++Builder, incluindo a aquisição de smart interfaces do C++Builder necessária para tabelas de relatório com interface
Corrigido
- A galeria de recursos XLSX do C++Builder vincula o pacote estático do HotXLS completo e correspondente à versão, de modo que as dependências de implementação de relatórios compilados sejam resolvidas sem diretivas frágeis do vinculador por unidade
Versão 2.361.74
Alterado
RunToStream,RunToFileeRunToEncryptedFileagora compartilham uma única transação de saída que publica uma pasta de trabalho serializada somente após a conclusão da geração e do salvamento do relatório- A saída de relatório não criptografada preserva o formato da pasta de trabalho do modelo, incluindo saída ODS a partir de modelos ODS, enquanto a saída criptografada continua sendo um contêiner do Office criptografado
Corrigido
- Falhas de serialização, substituição, cancelamento e falhas fatais de relatório deixam streams, arquivos e arquivos criptografados de destino existentes inalterados e liberam sessões de dados por execução e armazenamento temporário antes de retornar
Versão 2.361.73
Adicionado
- Faixas de relatório de intervalos nomeados e de tabelas do Excel agora expõem
ErrorMode,StrictDataAccess,RuntimeLimitse instantâneos imutáveis deLastResult, com um estado de faixaCompletedWithErrorsdistinto
Alterado
WriteAndContinuepode gravar uma falha de linha explicitamente recuperável como texto de diagnóstico literal, registrar a linha do cursor de origem e a célula de saída real e depois continuar os destinos posteriores dessa linha e as linhas de entrada seguintes- Expressões de relatório consomem valores tipados de instantâneos de faixa antes de recorrer ao texto, preservando valores numéricos, de data, booleanos e outros valores Variant suportados durante a avaliação de expressões
Corrigido
- Falhas fatais de destino, cancelamento e limites de runtime durante a expansão de faixas restauram os destinos de origem e a estrutura inserida, limpam sinalizadores de diagnóstico revertidos e publicam zero destinos aplicados
Versão 2.361.72
Adicionado
TXLSReportRuntimeLimitsdelimita a contagem de problemas de runtime retidos, o comprimento das mensagens sanitizadas e a memória de problemas, enquantoRuntimeDiagnosticsSheetNamegrava opcionalmente uma planilha de diagnóstico estruturada- Erros explícitos de dados do resolvedor, divisão por zero em expressões e expressões regulares inválidas agora recebem categorias de problema e códigos de erro estáveis de provedor ou de expressão
Alterado
WriteAndContinuepreserva os destinos seguros fora de células e registra o problema correspondente, enquanto nomes de planilhas e fórmulas de nomes definidos continuam sendo destinos estruturais de falha imediata- Resultados de erro de dados do resolvedor permanecem recuperáveis quando servidos pelo cache de aliases por execução, enquanto exceções lançadas por um resolvedor continuam sendo fatais
Segurança
- Mensagens de runtime param na primeira linha, censuram formas comuns de credenciais e de tokens de portador e impõem limites de contagem, comprimento e memória antes de modificar o destino com falha
Versão 2.361.71
Adicionado
- Células exatas
{{#usertable(alias, logicalName, providerKey, name=expression)}}são compiladas em declarações de tabela tipadas de avaliação preguiçosa, eTXLSCompiledReportTemplate.UserTableCountrelata a contagem de declarações separadamente dos destinos de saída TXLSReportTemplateChecker.DataContextvalida previamente chaves de provedor registradas, limites de parâmetros tipados, declarações malformadas e conflitos de alias sem distinção entre maiúsculas e minúsculas, sem invocar um resolvedor
Alterado
- Modelos e geradores de relatórios avaliam os parâmetros de declaração antes de gravar nos destinos, registram esses parâmetros na sessão de execução atual e só resolvem uma tabela declarada quando
dbvalueoudbcountreferencia o alias dela pela primeira vez - Declarações repetidas e iguais compartilham uma única solicitação, enquanto declarações que reutilizam um alias com outro nome lógico, provedor, ordem de parâmetros, tipo ou valor falham com a localização da célula declarante antes de modificar a pasta de trabalho
Segurança
- Declarações de tabelas de usuário aceitam apenas uma chave de provedor registrada e parâmetros de dados tipados e limitados, rejeitam acesso a tabelas de dados dentro de expressões de parâmetro e não expõem nenhum campo de modelo para SQL, caminhos, URLs ou texto de comando
Versão 2.361.70
Adicionado
TXLSReportDataRequestleva a identidade nomeada ou de tabela de usuário, parâmetros tipados, local de origem e controle de execução somente leitura atéIXLSReportDataResolver, cujos estados de resultado explícitos distinguem desfechos não tratados, resolvidos, não encontrados e de erro de dadosTXLSReportDataContext.RegisterResolver,RemoveResolvereClearResolversgerenciam um registro de resolvedores nomeados sem distinção entre maiúsculas e minúsculas, enquantoTXLSReportDataLimitslimita aliases, resolvedores, parâmetros, nomes, mensagens e esquemas de tabela retornados
Alterado
- Cada sessão de dados de relatório transforma o registro de resolvedores em uma busca O(1), mantém as tabelas explícitas como autoritativas, adapta provedores de tabelas legados, armazena em cache solicitações tipadas por alias e rejeita um alias reutilizado cujo nome lógico, provedor, ordem de parâmetros, tipo ou valor seja diferente
- Executores e faixas de relatório agora transmitem um controle de cancelamento thread-safe pela resolução de dados, param após o cancelamento sem confirmar o destino ativo e deixam um alias cancelado disponível para uma nova tentativa limpa, em vez de armazenar o cancelamento como erro de dados
Segurança
- Solicitações de dados tipadas rejeitam caracteres de controle, coordenadas de origem negativas, nomes de parâmetros duplicados, matrizes Variant ou referências sem suporte, strings excessivas, aliases ou provedores em excesso e esquemas de tabela grandes demais antes de qualquer trabalho inseguro ou modificação da pasta de trabalho
Versão 2.361.69
Adicionado
TXLSXWorksheet.ClearRowHeighteClearColWidthremovem uma substituição explícita de dimensão sem afetar outros metadados de linha ou coluna
Alterado
- Os destinos de relatórios compilados agora concluem a avaliação de expressões antes de invocar a formatação dinâmica e confirmam conteúdo de células, formatos numéricos, alturas de linha e larguras de coluna por meio de um único limite de reversão
- Diagnósticos recuperáveis de células derivam estilos de fonte vermelha e preenchimento amarelo da fonte existente da célula, preservam o restante do estilo da célula e reutilizam estilos em pool entre fontes base iguais e execuções repetidas do executor
Corrigido
- Uma falha recuperável de avaliação não deixa mais para trás formatos numéricos dinâmicos ou dimensões explícitas de linha e coluna, e as gravações de diagnóstico agora limpam qualquer fórmula antes de armazenar texto literal
Versão 2.361.68
Adicionado
- Executores e geradores de relatórios compilados expõem
ErrorMode,StrictDataAccesse umLastResultimutável com estado terminal, contagem aplicada, detalhes de falhas e problemas de runtime ordenados WriteAndContinuepode substituir falhas de dados de células explicitamente recuperáveis por diagnósticos literais e terminar comoCompletedWithErrors, enquanto o modoStoppadrão permanece compatível
Alterado
- O acesso estrito a dados relata tabelas ausentes, acesso aleatório indisponível, linhas ausentes e campos ausentes por meio de códigos de erro estáveis quando não há fallback explícito no modelo
- Somente falhas de dados explicitamente marcadas como recuperáveis podem continuar; falhas estruturais, de callback, de cancelamento, de recursos, de segurança, de serialização e outras falhas fatais ainda interrompem o relatório
Corrigido
- Falhas de saída em arquivos e arquivos criptografados agora publicam um resultado de execução com falha em vez de reter um resultado concluído da fase anterior de geração da pasta de trabalho
Versão 2.361.67
Alterado
- Modelos, executores, faixas de intervalo e faixas de tabelas do Excel compilados agora resolvem
dbvalueedbcountpor meio de uma sessão de dados isolada por execução lógica - Aliases repetidos são carregados uma vez dentro de uma execução, execuções posteriores recarregam dados do provedor, execuções concorrentes mantêm caches independentes e as duas passagens de
PreprocessAndRuncompartilham um único instantâneo consistente de tabelas - Expressões de faixas de relatório vinculam apenas suas variáveis de linha ou coluna, de modo que nomes de tabelas literais e variáveis de localização internas não sejam mais confundidos com colunas de origem
Corrigido
- Sessões de dados de relatório e seus instantâneos de provedor são liberados após execução bem-sucedida, cancelada ou com falha, incluindo exceções de provedor e novas tentativas de executores reutilizáveis
Versão 2.361.66
Adicionado
TXLSReportDataContext.BeginRunretorna um instantâneo isolado deIXLSReportDataSessioncom inspeção de estado e contagens de aliases resolvidos ou em cache
Alterado
- Sessões de dados de relatório usam um cache de hash sem distinção entre maiúsculas e minúsculas para tabelas explícitas, resultados preguiçosos de provedores, aliases ausentes e erros de dados de provedores
- Cada alias distinto chega à cadeia de provedores no máximo uma vez por sessão, os resultados do provedor permanecem vinculados ao alias solicitado e a recursão com o mesmo alias falha imediatamente
- Chamadas diretas de
TXLSReportDataContext.TryGetTableeRequireTablemantêm um cache de compatibilidade separado, invalidado quando os registros mudam
Versão 2.361.65
Adicionado
IXLSXImageBlobeTXLSXImageBlobfornecem cargas úteis imutáveis de raster e SVG com resumos SHA-256 de uso único, tamanho em bytes e uma chave de cache opcionalTXLSReportImageResult.CacheKeypermite que um provedor de imagens V2 identifique explicitamente conteúdo reutilizável, enquanto conteúdo conflitante para a mesma chave é rejeitado antes de modificar a planilha
Alterado
- Imagens de relatório repetidas compartilham uma única carga útil imutável por chave de cache explícita ou correspondência exata de resumo, mantendo âncoras e transformações independentes
- XLSX e ODS salvam cada carga útil de imagem distinta uma única vez, reutilizam seu relacionamento de mídia entre planilhas e restauram cargas úteis compartilhadas quando a pasta de trabalho é reaberta
- A reabertura de XLSX agora restaura dados complementares de SVG a partir de relacionamentos de extensão do DrawingML e os emparelha com o fallback de raster
Versão 2.361.64
Adicionado
TXLSReportImageResultpode declarar dimensões de pixels de origem e DPI, enquanto solicitações e resultados de imagens expõem deslocamentos de destino relativos à âncora em EMUTXLSXImage.OffsetXEMUeOffsetYEMUpreservam o posicionamento de imagens dentro de uma âncora em ciclos de salvar e abrir XLSX e ODS
Alterado
- A vinculação de imagens V2 deriva a geometria física dos cabeçalhos PNG, JPEG, GIF, BMP, EMF e WMF, aplica dimensionamento Natural, Contain, Cover ou Stretch e centraliza imagens contidas sem decodificar seus pixels
- A geometria de raster é rejeitada antes de modificar a planilha quando os cabeçalhos estão truncados, as dimensões declaradas divergem, um lado excede 100.000 pixels ou o tamanho total decodificado excede 100 milhões de pixels
Versão 2.361.63
Adicionado
IXLSReportImageDataProviderV2pode retornar bytes de imagem ou streams emprestados pelo chamador e transferidos pelo provedor, com contexto de pasta de trabalho, planilha, destino, faixa, tabela, linha, âncora e cancelamentoOnTransformImagepode substituir ou redimensionar uma imagem antes da vinculação, enquanto faixas compiladas de intervalo e de tabelas do Excel expõem um instantâneo somente leitura de cada linha de dados real
Alterado
- Streams de imagens V2 são lidos em blocos limitados com um limite padrão configurável de 64 MiB; streams emprestados que permitem posicionamento restauram sua posição e streams transferidos são liberados exatamente uma vez
- Cargas úteis V2 rejeitam dados vazios, assinaturas de formato incompatíveis, dimensões inconsistentes, âncoras inválidas e deslocamentos fora da grade antes de modificar a planilha
- Faixas compiladas de intervalo e de tabelas do Excel vinculam destinos de imagem uma vez por linha gerada a partir de colunas vinculadas materializadas, sem examinar células geradas da planilha
Versão 2.361.62
Adicionado
TXLSCompiledReportRunnereTXLSReportGeneratoragora aceitam umIXLSReportImageProviderexistente com políticas para imagens ausentes e células de diretivasTXLSReportImageBinder.ApplyTargetvincula uma diretiva de imagem pré-compilada sem examinar células não relacionadas da planilha
Alterado
- Células exatas
{{#image Key}}são compiladas em destinos de relatório tipados, permanecem inalteradas quando nenhum provedor está configurado e reutilizam sua chave e coordenadas compiladas entre sessões do executor
Versão 2.361.61
Adicionado
TXLSCompiledReportRunneragora expõe eventos emparelhados de geração de pasta de trabalho e planilha, com identidade estável da planilha, coordenadas originais e atuais, dados de relatório somente leitura, contagens de destinos, cancelamento e detalhes de falhasTXLSReportGeneratorexecuta modelos de pasta de trabalho, arquivo, stream ou arquivo criptografado por meio de eventos do ciclo de vida de leitura de modelo e geração, com modificação in-place ou por clone atômico selecionável
Alterado
- A geração de relatórios congela o conjunto original de planilhas, recompila após mudanças de estrutura acionadas por callbacks, rejeita modificação concorrente da mesma pasta de trabalho, emparelha eventos de entrada durante cancelamento e falha e preserva a primeira exceção
- Streams de relatório permanecem de propriedade do chamador, streams de modelo que permitem posicionamento restauram sua posição, streams somente para frente são consumidos em blocos limitados e destinos de stream, arquivo e arquivo criptografado só mudam após conclusão bem-sucedida
- Relatórios compilados sem manipuladores de ciclo de vida mantêm o loop direto de destinos, sem exames de planilhas, contextos de eventos ou alocações de ciclo de vida por destino
Versão 2.361.60
Adicionado
- Pastas de trabalho XLSX agora expõem
HasWebAddinTaskPanes,WebAddinTaskPaneCounteRemoveWebAddinTaskPanespara inspeção e remoção exatas de painéis de tarefas na raiz do pacote
Alterado
- A remoção de painéis de tarefas de suplementos da Web agora valida um grafo de relacionamentos interno limitado antes da modificação, preserva partes de pacote compartilhadas e não relacionadas, remove descendentes exclusivos e partes de relacionamentos próprios, reconstrói tipos de conteúdo, impede a ressurreição por cópia da origem e é idempotente
- Pastas de trabalho XLS clássicas e ODS relatam a remoção de painéis de tarefas de suplementos da Web como sem suporte, sem examinar o conteúdo do pacote
Versão 2.361.59
Adicionado
- Pastas de trabalho XLS clássicas e XLSX agora expõem as propriedades correspondentes
SaveExternalLinkValueseUpdateLinkspara persistência de cache e preferência de atualização de vínculos declarada no arquivo
Alterado
- Desativar valores de vínculos externos em cache agora omite apenas registros
XCT/CRNclássicos ou conteúdosheetDataSetde XLSX, mantendo definições de vínculos, nomes definidos, relacionamentos, XML desconhecido e caches em memória - Políticas de vínculos externos agora preservam integralmente os valores reservados da origem em ciclos de salvar e abrir até serem editadas, são convertidas entre XLS e XLSX, mantêm inalteradas as partes de pacote compactadas e nunca iniciam acesso externo a arquivos ou à rede
Versão 2.361.58
Adicionado
TXLSHTMLExporteTXLSXHtmlExportSessionagora expõem o instantâneo imutávelRenderGeometryusado pela operação HTML atual
Alterado
- Exportadores HTML de XLS clássico e XLSX agora convertem larguras de caracteres do Excel em comprimentos CSS fixos por meio de geometria de largura máxima de dígito específica do backend, em vez de fatores de conversão embutidos no código ou unidades de caractere CSS
- Exportações HTML de pasta de trabalho, planilha, intervalo e múltiplas planilhas incrementais capturam uma calibração local da operação com um cache de métricas limitado e nunca modificam alturas de linha ou larguras de coluna armazenadas
Versão 2.361.57
Alterado
- Operações de PDF, SVG, bitmap, visualização de impressão e visualizador de pasta de trabalho agora capturam instantâneos distintos e imutáveis de geometria de renderização com caches de métricas limitadas conscientes do backend
- A renderização compartilhada de páginas e a quebra de linhas SVG agora usam medição de fontes local da operação em vez de estado global de processo de bitmap GDI e listas de strings, preservando as alturas de linha e larguras de coluna armazenadas
Versão 2.361.56
Alterado
- O AutoFit de XLS clássico e XLSX agora captura um serviço imutável de geometria de renderização da pasta de trabalho por operação, incluindo medição de texto calibrada, quebra de linhas, espaçamento entre linhas, margens de células e as fontes visíveis reais do XLSX
- A paginação agora captura a geometria local da pasta de trabalho em cada construção, remove o estado global de processo de fonte normal e largura máxima de dígito e aplica larguras de coluna implícitas calibradas sem modificar alturas de linha ou larguras de coluna armazenadas
Versão 2.361.55
Adicionado
- Pastas de trabalho XLS clássicas e XLSX agora criam serviços imutáveis de geometria e medição de fontes de propriedade da operação, com caches locais limitados, conversões de largura compartilhadas e nenhum cache global de processo de DPI ou largura base no AutoFit
Versão 2.361.54
Adicionado
- Pastas de trabalho XLS clássicas e XLSX agora expõem valores validados de
TXLSRenderCalibration, além de instantâneos independentes deCaptureRenderCalibratione padrões deResetRenderCalibrationpara futuras operações de renderização
Versão 2.361.53
Adicionado
- O carregamento de XLSX agora relata
xlsDiagnosticPrinterSettingsRelationshipInvalidquando um relacionamento de configurações de impressora da planilha está ausente, com tipo incorreto ou órfão
Alterado
SaveXLSWorkbookAsXLSXeSaveXLSXWorkbookAsXLSagora transportam campos tipados de configuração de página e bytes opacos de driver de impressora de forma independente, com os campos padrão tendo prioridade sobre padrões privados duplicados
Corrigido
- O carregamento de XLSX não vincula mais uma parte de configurações de impressora não relacionada quando o relacionamento nomeado por
pageSetupé inválido - A conversão de XLSX para BIFF8 agora rejeita configurações de impressora grandes demais ou não representáveis antes de gravar quaisquer bytes de destino
Versão 2.361.52
Adicionado
- Planilhas XLS clássicas e XLSX agora expõem as propriedades
PrinterDriverDataeHasPrinterDriverDataisoladas por cópia, além deClearPrinterDriverDatapara controle direto da carga útil opaca do driver de impressora
Corrigido
- Limpar dados de driver de impressora XLSX agora remove o relacionamento da planilha e a parte binária do pacote mesmo quando a preservação de partes sem suporte está ativada
Versão 2.361.51
Alterado
- O carregamento e o salvamento de XLSX agora preservam as configurações de impressora binárias de cada planilha por meio do relacionamento
pageSetup, da declaração de tipo de conteúdo e da parte de pacoteprinterSettingsN.bin - As configurações de impressora sobrevivem a cópias de planilhas na mesma pasta de trabalho e entre pastas de trabalho, com propriedade independente exata em bytes, enquanto partes de origem inalteradas podem reter sua carga útil compactada original
Versão 2.361.50
Alterado
- O carregamento e o salvamento de XLS clássico agora preservam a carga útil completa do driver de impressora BIFF
PLSjunto com cada segmentoContinueimediatamente seguinte - Cargas úteis de driver de impressora são copiadas em profundidade junto com as planilhas, emitidas antes de
Setupem blocos de tamanho BIFF exato e rejeitadas quando estruturalmente incompletas ou maiores que o limite de segurança de 1 MiB
Versão 2.361.49
Adicionado
- A configuração de página do XLS clássico agora expõe as propriedades somente leitura
HasSetupRecordePrinterSettingsInitializedpara que chamadores possam distinguir configurações de impressora ausentes ou não inicializadas de valores definidos
Alterado
- Salvar uma planilha clássica intocada agora preserva a ausência de um registro BIFF
Setupe retém cada byte de um registro existente de 34 bytes, incluindo bits de sinalização reservados e não modelados - Os definidores de configuração de página agora criam um registro
Setupausente somente quando necessário e inicializam campos dependentes de impressora ou de orientação de acordo com a propriedade afetada
Versão 2.361.48
Adicionado
SaveXLSXWorkbookAsXLSagora converte uma pasta de trabalho de modelo XLSX para BIFF8 por meio de sobrecargas de arquivo e stream, preservando valores carregados, fórmulas, estilos principais, intervalos mesclados, dimensões de linhas e colunas, modo de data da pasta de trabalho e estado da planilha ativa
Alterado
- A conversão de XLSX para XLS constrói uma paleta determinística de 56 cores antes de gravar estilos, preserva os slots indexados já em uso e aplica quantização OKLab ponderada quando as cores diretas excedem a capacidade do BIFF8
- O caminho de conversão percorre células carregadas esparsas ou compactadas sem materializar a grade de origem, rejeita coordenadas fora dos limites do BIFF8 antes de tocar no destino e agora está disponível nos exemplos ConversionWorkbench do Delphi e do C++Builder
Versão 2.361.47
Adicionado
- Pastas de trabalho XLS clássicas e XLSX agora expõem métodos
ApplyBiffPalettePlancorrespondentes que validam e aplicam atomicamente um plano de paleta atual de 56 slots - Pastas de trabalho clássicas agora expõem
BiffPaletteSavePolicy, com uma opção explícita de otimização BIFF8 e um padrão que preserva a saída de paleta histórica
Alterado
- A aplicação do plano de paleta agora valida geração da origem, hash da origem, todas as identidades e cores de slots, contagens agregadas, travas de preservação, sinalizadores de alteração e destinos opacos antes da primeira modificação, e depois reconstrói uma única vez o correspondente OKLab em cache
- Salvamentos BIFF8 otimizados deixam a paleta aplicada na pasta de trabalho após o sucesso, mas restauram todas as 56 cores de origem e a geração original se a saída falhar ou for cancelada; os caminhos de saída BIFF5 e não BIFF permanecem inalterados
Versão 2.361.46
Adicionado
- Pastas de trabalho XLS clássicas e XLSX agora expõem métodos
BuildBiffPalettePlancorrespondentes que retornam um plano de 56 slots sem modificações, com identidade da paleta de origem, slots bloqueados, cores propostas, mapeamentos agregados de cores verdadeiras, cobertura exata e estatísticas de erro perceptual
Alterado
- O planejamento de paleta BIFF agora preserva consumidores indexados e cores exatas existentes antes de atribuir slots livres, e usa clusterização OKLab determinística ponderada por frequência apenas quando cores diretas e cores de tema resolvidas excedem a capacidade restante
- A construção do plano de paleta lê metadados armazenados de estilos e formatos condicionais sem alterar entradas da paleta, contagens de cores personalizadas, células, comportamento de salvamento ou armazenamento esparso
Versão 2.361.45
Adicionado
- Pastas de trabalho XLS clássicas e XLSX agora expõem métodos
ScanIndexedColorUsagecorrespondentes que retornam um inventário determinístico de 56 slots com índices públicos e físicos, valores ARGB normalizados, contagens de definições e referências, tipos de consumidores e travas de preservação
Alterado
- A varredura de uso de cores indexadas agora cobre pools de estilos da pasta de trabalho, referências de células esparsas, estilos nomeados, sobreposições de intervalo, linhas de grade da planilha, formas, comentários, rich text, fontes de gráficos, estilos diferenciais, barras de dados e escalas de cores, sem materializar células não utilizadas ou alterar o estado da pasta de trabalho
- Cores de formatos condicionais indexadas agora sobrevivem a ciclos de salvar e abrir por meio de estilos diferenciais BIFF clássicos e OpenXML, barras de dados e escalas de cores, incluindo salvamentos em streaming que emitem identificadores de estilos diferenciais antes das partes de planilha
Versão 2.361.44
Adicionado
- Pastas de trabalho XLS clássicas e XLSX agora expõem métodos
NearestIndexedColorcorrespondentes que retornam o índice público de paleta mais próximo, o slot físico, o valor ARGB normalizado, a distância perceptual ao quadrado e o status de correspondência exata
Alterado
- A correspondência da cor indexada mais próxima agora compartilha uma única implementação OKLab em cache entre ambos os motores de pasta de trabalho e o gerenciador de cores legado, com desempate determinístico pelo índice mais baixo e atualizações de cache limitadas a modificações efetivas da paleta
- Consultas de cor mais próxima examinam apenas as 56 entradas físicas da paleta BIFF, rejeitam entradas parcialmente transparentes e nunca modificam o estado da paleta ou da pasta de trabalho
Versão 2.361.43
Adicionado
- Pastas de trabalho XLS clássicas e XLSX agora expõem sobrecargas
ResolveIndexedColorcorrespondentes que classificam índices de cores públicos, valores BIFFicve cores indexadas OOXML, retornando metadados de paleta, automático, sistema ou inválidos - O resultado tipado de cor indexada relata o índice bruto, o slot da paleta, a função de cor do sistema, o valor ARGB normalizado e se uma cor concreta foi resolvida
Alterado
- Tokens de cores automáticas e de sistema não consultam mais implicitamente a área de trabalho atual do Windows; chamadores podem fornecer um resolvedor explícito quando uma cor concreta do ambiente for necessária
- Cores de sistema de tema agora usam seu valor RGB de fallback armazenado, mantendo carregamento, salvamento e processamento headless determinísticos entre máquinas
Corrigido
- Valores inválidos de cores indexadas OOXML não são mais resolvidos para preto opaco, e os padrões do gerenciador de cores legado agora usam os valores exatos da paleta de 128 canais
Versão 2.361.42
Adicionado
TXLSWorksheeteTXLSXWorksheetagora expõem os métodos correspondentesTryGetOutlineNode,SetOutlineNodeCollapsedeSetOutlineDisplayLevelpara nós de resumo de linhas ou colunas com base um
Alterado
- Consultas e atualizações da estrutura de tópicos de planilhas agora adaptam metadados esparsos do motor a planos compactados, preservam o estado aninhado dos filhos por padrão e aplicam alterações de ocultação e recolhimento sem examinar coordenadas não utilizadas da planilha
- Grupos de linhas e colunas do OpenDocument agora preservam o estado nativo aninhado de exibição em alterações diretas de metadados, edições estruturais, ciclos de salvar e abrir ODS e conversão para marcadores de nós de resumo XLSX
TXLSXWorksheet.ToggleRowGroupedeToggleColGroupedpermanecem disponíveis como wrappers de compatibilidade com reconhecimento de direção em torno da API de nós de resumo
Versão 2.361.41
Adicionado
TXLSOutlineGeometryagora pode construir instâncias compactadas deTXLSOutlineMutationPlanpara recolhimento ou expansão idempotente de nós e alterações do nível de exibição da estrutura de tópicos com base um- Planos de modificação da estrutura de tópicos expõem modos explícitos de preservar, recolher e expandir filhos, mantendo marcadores de recolhimento aninhados independentes por padrão
Alterado
- Expandir um nó aninhado da estrutura de tópicos agora considera ancestrais recolhidos e descendentes recolhidos ao derivar a visibilidade, e a descoberta de nós em massa percorre apenas intervalos materializados com uma passagem linear de pilha monótona
Versão 2.361.40
Adicionado
- A nova unidade
lxOutline, neutra em relação ao motor, constrói geometria de estrutura de tópicos de linhas ou colunas a partir de intervalos esparsos ordenados e descobre nós de resumo antes ou depois, intervalos de detalhe aninhados, níveis de resumo, estado oculto e marcadores explícitos de recolhimento, sem examinar coordenadas não utilizadas da planilha
Versão 2.361.39
Adicionado
- Metadados de coluna do XLS clássico agora expõem o marcador independente de recolhimento da estrutura de tópicos por meio de
TXLSColumnInfo.CollapsedeTXLSColumnInfoList.Collapsed
Corrigido
- Marcadores de recolhimento da estrutura de tópicos de colunas do XLS clássico agora sobrevivem a ciclos de salvar e abrir BIFF, cópias de formato de coluna, cópias de planilhas e coalescência de registros adjacentes, enquanto a largura definida, o melhor ajuste e os sinalizadores fonéticos permanecem intactos
Versão 2.361.38
Corrigido
- Colunas de resumo da estrutura de tópicos do XLS clássico agora preservam sua posição lógica à esquerda ou à direita em exibições de planilha da esquerda para a direita e da direita para a esquerda, em vez de gravar o bit de direção oposto em
WSBOOL
Versão 2.361.37
Adicionado
- Planilhas XLS clássicas e XLSX agora expõem
EvaluateFormulaAtpara avaliação somente leitura de fórmulas A1 ou R1C1 em um contexto explícito de célula de destino IXLSFormulaEvaluationTemplatecompila uma âncora de fórmula imutável uma única vez e a avalia repetidamente em outras células por meio deEvaluateAtouEvaluateAtWithOptions- As opções de avaliação de fórmulas agora incluem limites para comprimento da fórmula, etapas de itens de sintaxe, profundidade de recursão e bytes de matriz gerados, com o esgotamento relatado como
xlfeResourceLimit
Alterado
- Avaliação de uso único e reutilizável agora compartilham nomes locais da planilha, referências estruturadas, dependências de fórmulas fora do cache, raízes de matrizes, status volátil, cancelamento e referências externas explicitamente autorizadas, sem gravar o estado da pasta de trabalho
- Os métodos
Calculateexistentes da pasta de trabalho e da planilha permanecem como fachadas de compatibilidade sobre o avaliador contextual tipado
Corrigido
- A avaliação contextual agora preserva variantes de erro de fórmulas e distingue falhas de análise, de função sem suporte, de referência circular, de referência externa, de cancelamento, de tempo de vida da planilha e de limite de recursos
- Modelos R1C1 reutilizáveis agora transladam deslocamentos relativos de linha e coluna a partir de sua âncora de compilação quando avaliados em outra célula de destino
Versão 2.361.36
Adicionado
ConvertExternalDefinedNamesToRefErrorsagora está disponível em pastas de trabalho XLS clássicas e XLSX para desvincular nomes definidos confirmados de pastas de trabalho externas sem reescrever fórmulas comuns de células- Definições malformadas ou sem suporte que forem ignoradas são relatadas por meio de
xlsDiagnosticDefinedNameConversionSkipped
Alterado
- A conversão substitui atomicamente as definições selecionadas por
#REF!nativo, mantendo o escopo de pasta de trabalho ou planilha, a visibilidade, os comentários, os sinalizadores de macro e integrados, os atributos desconhecidos e as partes de vínculos externos
Corrigido
- A sintaxe de slot de nomes definidos externos, como
=[1]!RemoteName, agora é resolvida por meio do vínculo de pasta de trabalho declarado, e as fórmulas dependentes retêm o valor de erro do Excel resultante durante o recálculo
Versão 2.361.35
Adicionado
TXLSWorkbookWorkspace.Recalculateagora avalia nós de fórmula registrados de XLS clássico, XLSX e ODS em uma única passagem topológica entre pastas de trabalho, com detecção de componentes fortemente conectados e propagação de geração desatualizadaTXLSWorkspaceRecalcResultrelata reutilização do grafo, nós desatualizados e avaliados, ciclos, dependentes bloqueados, invalidações e acertos e falhas de cache em runtime
Alterado
- O workspace retém seu grafo de dependências até que os registros ou a topologia de fórmulas mudem, enquanto edições comuns de valores marcam como desatualizados apenas os nós afetados da pasta de trabalho e seus dependentes transitivos
- Leituras repetidas de células externas em uma passagem de cálculo compartilham um cache exato de pasta de trabalho, planilha, linha e coluna, invalidado antes de cada atualização programada de fórmulas
Corrigido
- Vínculos bidirecionais entre pastas de trabalho não são mais tratados como circulares, a menos que o grafo de células de fórmula contenha um ciclo real; membros do ciclo e seus dependentes bloqueados são invalidados em vez de retornar valores em cache obsoletos
- Uma sessão de workspace com falha ou invalidada por ciclo agora retém o estado desatualizado local do motor, para que um recálculo posterior da pasta de trabalho tente novamente as fórmulas inacabadas em vez de tratar uma passagem parcial como concluída
Versão 2.361.34
Adicionado
TXLSWorkbookWorkspace.BuildDependencyGraphagora cria um único grafo de dependências entre as pastas de trabalho registradas de XLS clássico, XLSX e ODS, retendo identidades de pasta de trabalho, planilha, célula, intervalo retangular e nome definido com escopoTXLSWorkspaceDepGraphexpõe consultas de nós de fórmula, referências, arestas, dependentes de células e dependentes de nomes definidos, além de diagnósticos de checagem de candidatos para aferir o desempenho
Alterado
- Intervalos grandes de fórmulas permanecem como intervalos compactos em vez de se expandir em células individuais, enquanto árvores de intervalos de linha podam tanto a busca por dependentes quanto a construção de arestas sem materializar valores compactados da planilha
- Nomes definidos locais retêm tanto sua dependência simbólica quanto as dependências de célula ou intervalo resolvidas estaticamente, enquanto nomes definidos externos preservam o slot declarado da pasta de trabalho externa, o nome e o escopo da planilha
Corrigido
- Nomes definidos comuns não são mais limpos enquanto o analisador de fórmulas verifica um prefixo opcional de pasta de trabalho externa
Versão 2.361.33
Adicionado
TXLSWorkbookWorkspace.OnLoadWorkbookagora pode solicitar uma pasta de trabalho externa por meio de uma política controlada pelo chamador, no máximo uma vez por identidade normalizada, enquantoResolveWithLoaderrelata diagnósticos tipados de não encontrado, erro, ciclo e limite de recursosMaxLoadDepth,MaxWorkbookCounteResetLoadAttemptsfornecem limites explícitos e controle de nova tentativa para o carregamento de pastas de trabalho externas
Alterado
- Solicitações concorrentes de pastas de trabalho externas agora compartilham um único resultado de carregamento em andamento, e a reentrada aninhada é rejeitada sem esperar em um ciclo de carregamento entre threads; o workspace padrão ainda não realiza nenhum acesso ao sistema de arquivos ou à rede
Versão 2.361.32
Adicionado
- Pastas de trabalho XLS clássicas agora expõem
CreateWorkspaceWorkbook,RegisterExternalWorkbook,UnregisterExternalWorkbookeExternalWorkspace, permitindo que pastas de trabalho clássicas, XLSX e ODS forneçam valores externos de fórmulas por meio de um workspace neutro em relação ao motor - Os caches de vínculos externos do XLS clássico agora decodificam valores de número, string, booleano, erro e vazio de registros XCT e CRN tipados em uma busca esparsa de tempo constante, sem materializar planilhas
Alterado
- A avaliação de fórmulas externas agora resolve nomes de planilhas antes das alternativas posicionais e lê de forma consistente primeiro uma pasta de trabalho ativa explicitamente registrada, depois um cache de arquivo tipado, e então retorna
#REF!, enquanto registros destruídos são revogados sem acesso implícito a arquivos ou à rede - Identidades de pastas de trabalho externas entre aspas podem conter esquemas de URI, letras de unidade do Windows e outros dois-pontos sem serem confundidas com um separador de intervalo tridimensional de planilha, de modo que as IRIs de fontes externas ODF permaneçam intactas durante a importação de fórmulas
Versão 2.361.31
Adicionado
TXLSWorkbookWorkspace,IXLSWorkspaceWorkbookeTXLSXWorkbook.CreateWorkspaceWorkbookfornecem uma base thread-safe de identidade e registro de pastas de trabalho externas, com status de resolução explícito, acompanhamento de geração e adaptadores de pasta de trabalho revogáveis
Alterado
TXLSXWorkbook.RegisterExternalWorkbookagora preserva caminhos e extensões, resolve destinos relativos de relacionamentos em relação à pasta de trabalho proprietária, rejeita aliases ambíguos ou destinos com o mesmo nome base em vez de escolher um silenciosamente, revoga registros quando uma pasta de trabalho de destino é destruída e mantém o fallback tipado do cache de vínculos externos sem acesso implícito a arquivos ou à rede
Versão 2.361.30
Adicionado
- Exibições somente leitura de pastas de trabalho clássicas e XLSX agora podem avaliar fórmulas sob demanda por meio de
xlsvEvaluateFormulase relatar o resultado independente por meio deFormulaEvaluation, sem substituir os caches de fórmulas armazenados
Alterado
- Exibições concorrentes somente leitura agora isolam sinalizadores de recursão de fórmulas, resultados escalares, fórmulas XLSX compiladas e matrizes, enquanto fórmulas externas de XLSX usam apenas caches de vínculos externos locais do arquivo e nunca desreferenciam registros de pastas de trabalho ativas
Corrigido
- Valores em cache de vínculos externos XLSX agora resolvem o índice de planilha com base um transportado por registros XTI externos para a entrada correta de planilha em cache com base zero
Versão 2.361.29
Adicionado
- Pastas de trabalho XLSX agora expõem
IXLSXWorkbookOwner.CreateReadOnlyViewcom planilhas ativas locais da exibição, instantâneos de células materializadas e compactadas por valor, resultados de fórmulas em cache, texto de fórmulas opcional, ordem segura de liberação do proprietário ou da exibição e exclusão de gravação com falha imediata
Alterado
- Exibições XLSX somente leitura usam apenas caches de fórmulas externas armazenados localmente e nunca desreferenciam registros fracos de pastas de trabalho ativas
Versão 2.361.28
Adicionado
- Pastas de trabalho clássicas agora expõem
CreateReadOnlyVieweIXLSReadOnlyWorkbookViewpara exibições de modelo compartilhado de tempo constante, com planilhas ativas independentes, instantâneos de células por valor, resultados de fórmulas em cache, texto de fórmulas opcional, tempo de vida do proprietário com contagem de referências e exclusão de gravação com falha imediata
Versão 2.361.27
Adicionado
- Pastas de trabalho clássicas, XLSX e ODS agora expõem
CreateFormulaCacheReadere a interface compartilhadaIXLSFormulaCacheReaderpara inspeção de caches de fórmulas neutra em relação ao motor, com invalidação segura de tempo de vida
Alterado
- A inspeção de caches de fórmulas compartilhadas agora preserva o resultado armazenado independente de cada membro, de modo que um seguidor sem valor em cache relate ausência em vez de herdar o valor do membro raiz
Versão 2.361.26
Adicionado
TXLSXWorkbook.TryGetCachedFormulaValueagora relata a presença, a procedência e o tipo de valor do cache de fórmulas XLSX e ODS, sem cálculo ou modificação da pasta de trabalho
Corrigido
- Os caches de fórmulas XLSX e ODS agora preservam resultados ausentes e vazios explícitos, strings vazias, booleano falso, zero numérico, erros tipados e datas explícitas em ciclos de salvar e reabrir, enquanto fórmulas alteradas não serializam mais resultados em cache obsoletos
Versão 2.361.25
Adicionado
- Pastas de trabalho clássicas agora expõem
TryGetCachedFormulaValuecom presença de cache, procedência e tipo de valor explícitos, permitindo ler um resultado de fórmula armazenado sem cálculo, callbacks de funções de usuário, descompilação de tokens ou modificação da pasta de trabalho
Corrigido
- Os caches booleanos e de erros de fórmulas do XLS clássico agora usam o byte de carga útil BIFF especificado em fórmulas comuns e compartilhadas, e os resultados de erros carregados permanecem valores tipados
varErrorem ciclos de salvar e reabrir
Versão 2.361.24
Adicionado
- Pastas de trabalho clássicas e XLSX agora fornecem uma sobrecarga
CreateLoadedCellCursor(Boolean)que pode incluir células vazias armazenadas com estilo independente como instantâneosxlckBlank
Alterado
- O percurso opcional de células vazias preserva a ordem de planilhas, linhas e colunas, mantém o armazenamento XLSX compactado e exclui coordenadas com formato herdado, além dos placeholders Empty e Null sem estilo
Versão 2.361.23
Adicionado
- Pastas de trabalho XLSX agora expõem
TXLSXWorkbook.CreateLoadedCellCursorpara percurso de estado constante, linha a linha, de células de valor e fórmula armazenadas nas planilhas TXLSLoadedCellKindagora incluixlckErrorpara que valores de erro XLSX armazenados mantenham seu tipo de valor distinto
Alterado
- Os cursores XLSX percorrem blocos esparsos de linhas materializados ou armazenamento compactado diretamente, sem ordenar células ou materializar valores compactados, e os instantâneos de fórmulas retornam o valor em cache atualmente armazenado sem recálculo
- Mudanças de topologia em toda a pasta de trabalho e a liberação da pasta de trabalho invalidam os cursores XLSX por meio de uma concessão de tempo de vida compartilhada, enquanto edições no conteúdo de células existentes mantêm o percurso válido e a propriedade dos instantâneos capturados
Versão 2.361.22
Adicionado
- Pastas de trabalho clássicas agora expõem
IXLSWorkbook.CreateLoadedCellCursorpara percurso de estado constante, linha a linha, de células de valor e fórmula armazenadas nas planilhas TXLSLoadedCellSnapshotretorna identidade própria da planilha, coordenadas com base um, estilo, tipo de valor, valor e texto da fórmula, sem expor objetos internos de células
Alterado
- Cursores de células carregadas falham imediatamente após mudanças na topologia de células, na coleção de planilhas ou na substituição do modelo da pasta de trabalho, enquanto edições no conteúdo de células existentes mantêm o percurso válido e os instantâneos capturados anteriormente inalterados
Versão 2.361.21
Adicionado
- Armazenamentos de células de planilhas e coleções de planilhas clássicas e XLSX agora expõem contadores independentes de geração estrutural para percursos longos e seguros
XlsValidateStructureGenerationeEXLSLoadedCellCursorInvalidatedfornecem um único contrato de validação de falha imediata para leitores de células carregadas
Alterado
- Criação, remoção e limpeza de células, reordenação de coordenadas, transições de armazenamento compactado, reconstruções de índice e operações de adição, exclusão ou movimentação de planilhas avançam a geração relevante, enquanto edições no conteúdo de células existentes, renomeação ou ativação de planilhas e mutações sem efeito a mantêm estável
Versão 2.361.20
Adicionado
TXLSForwardReaderagora aceita entrada ODS pela mesma superfície de callbacks de XLS, XLSX, CSV e TSVPeakRowBufferedByteseSheetPassesStartedexpõem o conjunto de trabalho de pico de linhas lógicas e a contagem de passagens bem-sucedidas de planilhas do backend compartilhado de linhas
Alterado
TXLSForwardReaderagora adapta oTXLSRowCursorpara todos os formatos com suporte, compartilhando limites de linha, projeção de colunas, estado de fórmulas, rich text, senha, comportamento de registros ignorados e posição de stream em vez de manter caminhos de varredura separados- Os índices de planilhas do leitor antecipado são consistentemente com base um, e planilhas ignoradas por
OnSheetnão são abertas nem descompactadas
Versão 2.361.19
Adicionado
TXLSRowCursoragora expõe estados explícitos fechado, antes do primeiro, ativo, EOF, cancelado e com falha, além de um métodoCancelidempotente que libera o stream da planilha ativa sem fechar a origemCurrentRowViewfornece uma exibição emprestada da linha atual com verificação de geração, sem duplicar sua matriz de células; avançar, selecionar uma planilha, cancelar, fechar ou destruir o cursor invalida as exibições anteriores comEXLSRowCursorViewInvalidated- Aberturas de stream agora aceitam
xsoBorrowedouxsoOwned, transferindo a propriedade somente após uma abertura bem-sucedida, ePeakRowBufferedBytesrelata o buffer estimado de pico de linhas lógicas desde a última abertura
Alterado
- Falhas de partes de planilha e de início de passagem agora preservam sua exceção de leitura original e colocam o cursor no estado de falha, em vez de aparecer como cancelamento ou EOF normal; selecionar explicitamente uma planilha reinicia a passagem para nova tentativa
Versão 2.361.18
Adicionado
TXLSDirectCelleTXLSRowCursorCellagora expõemHasFormulaeFormulaTextAvailable, distinguindo valores simples, fórmulas com texto disponível e fórmulas cujo texto está suprimido ou indisponívelTXLSDirectReader,TXLSForwardReadereTXLSRowCursoragora fornecemIncludeFormulaText; desativá-lo preserva valores em cache, coordenadas, estilos e presença de fórmulas, evitando o acúmulo de texto de fórmulas em streams XLSX e ODS
Alterado
- Limites de linha e projeção de colunas agora são enviados para os backends XLS, XLSX, ODS, CSV e TSV antes da alocação de valores, fórmulas e rich text; extensões repetidas de colunas ODS saltam diretamente entre colunas selecionadas e blocos de linhas repetidos são cortados no intervalo solicitado
- As opções de passagem do cursor de linhas ficam congeladas enquanto uma passagem de planilha está ativa e voltam a ser mutáveis após EOF, seleção de planilha ou fechamento, impedindo que uma passagem misture configurações incompatíveis de filtro ou decodificação
Versão 2.361.17
Adicionado
TXLSRowCursoragora abre arquivos ODS e streams de propriedade do chamador, detecta automaticamente pacotes ODS pelo mimetype oucontent.xml, pré-carrega nomes de planilhas e transmite a tabela selecionada por meio deFindFirsteFindNext, sem materializar uma pasta de trabalho
Alterado
- O percurso de linhas ODS expande linhas e colunas repetidas preguiçosamente, omite células cobertas como valores independentes, preserva células vazias com estilo e valores de fórmulas em cache, restaura posições de streams emprestados e relata contagens de repetição inválidas ou limitadas pela grade por meio de
OnSkippedRecord
Versão 2.361.16
Adicionado
TXLSRowCursoragora lê em streaming arquivos CSV e TSV ou streams de propriedade do chamador, com detecção de BOM UTF-8 e UTF-16, registros entre aspas de múltiplas linhas, aspas escapadas, detecção de delimitador por vírgula, ponto e vírgula, tabulação ou barra vertical, substituição opcional de delimitador e reconhecimento opcional de tipos de número, data ISO, booleano e erro
Alterado
TXLSForwardReadereTXLSRowCursoragora compartilham um único backend pausável de linhas de texto, preservando resultados idênticos de callbacks e pull, enquanto liberam as cargas úteis de Variant, fórmulas e rich text da linha anterior antes de avançar
Versão 2.361.15
Adicionado
TXLSRowCursoragora abre pastas de trabalho.xlsclássicas de arquivos ou streams, detecta automaticamente contêineres compostos BIFF e retorna resultados de fórmulas numéricos ou de string em cache, além de célulasBlankeMulBlankarmazenadas, retendo apenas a linha lógica atual
Alterado
- As sobrecargas
Opendo cursor de linhas aceitam umTXLSForwardFormatopcional; aberturas de arquivos são proprietárias do seu stream BIFF interno, aberturas de stream emprestam o stream do chamador e restauram sua posição inicial emClose, e passagens repetidas deFindFirstbuscam diretamente a planilha selecionada
Versão 2.361.14
Adicionado
- O cálculo de fórmulas agora suporta
ISFORMULApara células individuais, referências entre planilhas e intervalos retangulares, retornando uma matriz booleana da mesma forma para entradas de intervalo, sem avaliar as fórmulas referenciadas
Alterado
- As verificações de presença de fórmulas distinguem valores comuns e vazios, membros de fórmulas compartilhadas, membros de fórmulas de matriz clássicas e XLSX, âncoras de matrizes dinâmicas e elementos filhos de despejo dinâmico; as matrizes geradas são limitadas por
FormulaArrayMemoryLimit - XLSX armazena
ISFORMULAcom o prefixo_xlfn., ODS emite a grafia padrão do OpenFormula, e salvamentos do XLS clássico rejeitam a função futura sem suporte sem confirmar um stream parcial
Corrigido
- A análise de texto de fórmulas agora reconhece os sete literais de erro padrão do Excel, permitindo que
#REF!se propague por funções somente de referência, enquanto um nome definido que é resolvido para um escalar relata#VALUE!em vez de#NAME?
Versão 2.361.13
Adicionado
- O cálculo de fórmulas agora suporta
UNICHARem toda a faixa de escalares Unicode, incluindo caracteres suplementares e de uso privado, com erros compatíveis com o Excel para zero, valores fora da faixa, pontos de código substitutos e não caracteres Unicode - O cálculo de fórmulas agora suporta
BAHTTEXTcom texto de baht e satang tailandeses, arredondamento de ponto médio com duas casas decimais para longe do zero, valores negativos, grupos de milhões repetidos e entradas finitas em notação científica
Alterado
UNICHAReBAHTTEXTmapeiam intervalos e matrizes geradas elemento por elemento, preservando os erros locais; XLSX armazenaUNICHARcom seu prefixo de função futura, enquantoBAHTTEXTpermanece uma função padrão simples tanto em XLS quanto em XLSX
Versão 2.361.12
Adicionado
- O cálculo de fórmulas agora suporta
COMBINAePERMUTATIONAcom argumentos não negativos truncados, estouro verificado, propagação de matrizes singleton e erros por elemento, além de matrizes de identidadeMUNITsem teto fixo de dimensão - Pastas de trabalho clássicas e XLSX expõem
FormulaArrayMemoryLimitcom um padrão de 64 MiB para limitar as cargas úteis de matrizes de fórmulas geradas, incluindo workers de recálculo XLSX paralelos
Alterado
PERMUTATIONAusa exponenciação logarítmica,COMBINAencurta sua recorrência multiplicativa eMUNITaloca uma matriz numérica compacta, gravando apenas a sua diagonal
Corrigido
- Matrizes de fórmulas numéricas não são mais classificadas como números escalares, e pastas de trabalho clássicas recém-criadas aplicam os limites de grade BIFF97 durante o cálculo de fórmulas antes do primeiro salvamento
Versão 2.361.11
Adicionado
- O cálculo de fórmulas agora suporta
COT,ACOT,COTH,ACOTH,CSC,CSCH,SECeSECHcom regras de valor principal, domínio, singularidade, entrada finita e argumentos grandes em operandos escalares e de matrizes propagadas
Corrigido
- Funções de fórmulas mapeadas agora preservam falhas escalares diretas como valores de erro de planilha, usam ramificações recíprocas e de cauda exponencial resistentes a cancelamento para entradas válidas grandes, gravam nomes
_xlfn.exatos sem_xlws.e rejeitam de forma limpa fórmulas BIFF clássicas sem suporte
Versão 2.361.10
Adicionado
- O cálculo de fórmulas agora suporta
CEILING.MATHeFLOOR.MATHcom argumentos de significância e modo omitidos, significância independente de sinal, limites precisos de múltiplos decimais e as direções especificadas do modo de números negativos
Alterado
- Funções de matriz no nível de fórmula agora podem compartilhar um mapeador linear de elementos com propagação de linha única e coluna única, instantâneos de intervalo de uso único e erros de conversão ou cálculo por elemento; XLSX usa o prefixo
_xlfn.para ambas as novas funções, enquanto salvamentos BIFF clássicos rejeitam de forma limpa fórmulas sem suporte
Versão 2.361.9
Adicionado
- O cálculo de fórmulas agora suporta
SORTBYcom ordenação estável de linhas ou colunas por múltiplas chaves, direções independentes crescentes ou decrescentes, padrões de direção omitidos, chaves de intervalo ou matrizes geradas e instantâneos únicos de origem e chaves seguidos de ordenação O(n log n)
Corrigido
- Salvamentos BIFF clássicos agora falham de forma limpa quando uma fórmula não pode ser representada, em vez de relatar sucesso após a rejeição de um identificador interno de função futura, enquanto XLSX grava
SORTBYcom_xlfn.e nunca adiciona_xlws.
Versão 2.361.8
Alterado
- O modo de ocultação de zeros da planilha agora usa uma única decisão de valor bruto nos caminhos do visualizador de pasta de trabalho, visualização, impressão, bitmap, EMF, SVG, PDF, HTML clássico e HTML XLSX; o zero numérico real é ocultado antes da formatação de números e da medição de texto, enquanto o modo de exibição de fórmulas mantém a precedência
Corrigido
- As exibições de planilhas XLSX agora analisam, gravam e copiam o estado de ocultação de zeros por meio de uma única configuração, tratam corretamente a base de datas 1904, preservam visuais de formatação condicional e geometria de hiperlinks para células de zero ocultas e deixam inalterados os valores armazenados, o texto formatado público e a saída CSV e ODS
Versão 2.361.7
Alterado
- O modo de exibição de fórmulas da planilha agora usa uma única decisão de texto consciente de células protegidas nos caminhos do visualizador de pasta de trabalho, visualização, impressão, bitmap, EMF, SVG, PDF, HTML clássico e HTML XLSX; o texto de fórmulas usa alinhamento de texto sob o alinhamento Geral, preserva o alinhamento explícito e recebe uma largura efetiva de layout dobrada não persistente, sem transbordar para as células vizinhas
Corrigido
- As exibições de planilhas XLSX agora aceitam
showFormulas="1"eshowFormulas="true", preservam a configuração durante cópias de planilhas na mesma pasta de trabalho e entre pastas de trabalho e emitem o estadosheetViewnecessário sem alterar caches de fórmulas, saída CSV, persistência ODS ou o contrato público de valores formatados
Versão 2.361.6
Alterado
- Fórmulas de pastas de trabalho externas XLSX agora compartilham um único lexer de prefixo de pasta ciente da gramática na conversão
OnlyExternal, nos diagnósticos de fórmulas, na vinculação de cálculo, na cópia entre pastas de trabalho e na serialização de fórmulas geradas; slots de vínculos numéricos são canônicos, enquanto referências estruturadas, literais de string, índices malformados e prefixos ambíguos de nomes de arquivos falham de modo fechado TXLSXExternalLinkagora expõe seuRelationshipIdde origem, oSourceSlotcom base um e oLinkKindtipado, para que entradas de referências externas de pasta de trabalho, DDE, OLE e não resolvidas possam ser auditadas sem inferir a identidade pela ordem da coleção ou pelo texto do destino
Corrigido
- Alterar um destino de vínculo externo XLSX ou uma lista de planilhas agora invalida as vinculações compiladas de fórmulas externas por revisão, em vez de reexaminar cada célula, e partes inalteradas de vínculos externos DDE ou OLE sem arquivos de relacionamento permanecem preservadas byte a byte durante o salvamento
Versão 2.361.5
Corrigido
- Os slots de fórmulas de pastas de trabalho externas XLSX agora seguem a ordem de documento das referências externas de
workbook.xmlem vez da ordem do arquivo de relacionamentos; relacionamentos ausentes, não resolvidos e de tipo errado retêm slots vazios para que referências[N]posteriores não se desloquem
Versão 2.361.4
Alterado
- O congelamento de fórmulas do XLS clássico com
OnlyExternalagora classifica as referências BIFF preservadas e converte apenas fórmulas confirmadas de pastas de trabalho externas, enquanto referências internas, de suplementos, DDE/OLE e malformadas permanecem fórmulas
Corrigido
- Resultados de fórmulas que começam com um sinal de igual ou apóstrofo agora permanecem como strings literais durante a conversão de valores, e grupos de fórmulas de matriz têm instantâneos capturados antes que qualquer fórmula raiz ou de despejo seja liberada
Versão 2.361.3
Alterado
- Vínculos de suporte e índices de planilhas externas do XLS clássico agora usam classificação tipada limitada para registros próprios, da mesma planilha, de suplementos, de pastas de trabalho externas, DDE/OLE, não utilizados e desconhecidos
Corrigido
- Cargas úteis malformadas de vínculos de suporte são preservadas byte a byte em vez de serem reconstruídas como um tipo de vínculo diferente, e tabelas truncadas de planilhas externas não leem mais além dos seus dados de registro
Versão 2.361.2
Corrigido
- Fórmulas do XLS clássico agora resolvem o índice XTI com base zero em tokens de nomes definidos externos para a entrada interna correta de planilha externa, incluindo a primeira entrada
Versão 2.361.1
Corrigido
- O gravador direto de XLSX agora emite o sinalizador de supressão
showDropDowndo SpreadsheetML base somente quandoShowDropDownestá desativado, preservando a semântica pública da API orientada à exibição
Versão 2.361.0
Adicionado
- As séries de gráficos ganharam
CategoriesMultiLevel: defina-a para emitir as categorias como umamultiLvlStrRef(rótulos de eixo hierárquicos) em vez de uma referência de string simples, com recuperação em ciclos de salvar e abrir a partir de gráficos salvos
Versão 2.360.0
Corrigido
- Comentários de nomes do XLS clássico agora usam o identificador de registro
NAMECMTcorreto ($0894); o identificador usado anteriormente ($0019) pertence aWINDOWPROTECTconforme as especificações BIFF
Adicionado
WindowProtectedem pastas de trabalho clássicas preserva em ciclos de salvar e abrir o sinalizador de proteção de janela da pasta de trabalho por meio do registroWINDOWPROTECT($0019), com corpos brutos capturados tendo precedência, a menos que a propriedade seja gravada explicitamente
Versão 2.359.0
Adicionado
- Tabelas de dados de gráficos expõem opções independentes
showHorzBorder/showVertBorder/showOutlineem vez de desenhar sempre todas as bordas - Gráficos de linha ganharam linhas de projeção (
HasDropLines) e gráficos de barras empilhadas ganharam linhas de série (HasSeriesLines), ambos preservados em ciclos de salvar e abrir; as séries podem ser removidas da legenda individualmente por meio deLegendDeletedpermanecendo plotadas
Versão 2.358.0
Adicionado
- Faixas de relatório ganharam semântica de faixa fixa e de conjunto de dados vazio:
EmptyBandPolicymantém, limpa ou exclui as linhas do modelo quando o conjunto de dados está vazio (sem deixar mais placeholders não resolvidos para trás),FixedBandgrava as cópias sobre as linhas abaixo sem inserir nada para faixas de formulário estilo sobreposição, eDeleteLastRowrecolhe a cópia final para que o conteúdo posterior fique alinhado (comportamento de intervalo X)
Versão 2.357.0
Adicionado
- A exportação PDF pode incorporar fontes OpenType autônomas com contornos CFF por meio de um stream OpenType
FontFile3e um descendenteCIDFontType0; os modos automático e completo retêm o programa completo, enquanto um subconjunto obrigatório indisponível falha antes que a saída seja confirmada OnGetFontDirectoriesfornece diretórios separados por ponto e vírgula para uma família e estilo de fonte solicitados; as árvores aceitas são pesquisadas recursivamente uma única vez e indexadas pelos metadados internos da fonte para resolução de fallback em cache
Alterado
- Fontes incorporadas com dados GPOS do OpenType ou de kerning legado agora usam avanços de glifos posicionados para texto simples e scripts complexos, mantendo a medição, a quebra de linhas, o alinhamento e o posicionamento de glifos no PDF consistentes
Versão 2.356.0
Adicionado
- A incorporação de fontes PDF tornou-se uma política configurável de quatro modos:
FontEmbeddingseleciona o comportamento histórico automático, subconjuntos obrigatórios, incorporação do programa completo ou fontes somente de mapeamento, cujos programas são removidos enquanto o mapeamento CID e as tabelas ToUnicode sobrevivem; PDF/A rejeita saída somente de mapeamento - O evento
OnFontEmbeddispara uma vez por fonte Unicode antes que métricas e mapeamentos de glifos sejam resolvidos, recebe o nome e o caminho do arquivo dela e pode aceitar um modo por fonte ou bytes de fonte de substituição por meio do contrato explícitoHandled
Versão 2.355.0
Adicionado
- O recálculo do XLS clássico agora usa um grafo de dependências construído preguiçosamente, propaga mudanças de entrada apenas para dependentes transitivos, recalcula fórmulas voláteis em cada passagem e avalia fórmulas na ordem de dependência em vez de reexaminar todo o heap esparso de células
- Referências circulares no XLS clássico agora seguem
EnableIteration,MaxIterationseMaxIterationChange; componentes fortemente conectados isolam ciclos independentes, os iteram de forma determinística e depois calculam as fórmulas subsequentes - Arquivos associados PDF/A-3 ganharam uma sobrecarga detalhada de
AddAttachmentcom nomes de exibição Unicode, descrições, horários de modificação, nomes MIME escapados, metadados de tamanho em bytes e relacionamentos Source, Data, Alternative, Supplement ou Unspecified TXLSPDFWritercria documentos PDF autônomos sem uma pasta de trabalho, com tamanhos de página explícitos, saída de múltiplas páginas, retângulos, linhas, elipses, texto estilizado medido, transformações de coordenadas, recorte retangular e controle do estado gráfico
Alterado
- Desativar
UseFullPrecisionno XLS clássico agora arredonda os resultados em cache de fórmulas e tabelas de dados What-If para a precisão numérica exibida efetiva antes que fórmulas dependentes os consumam, incluindo formatos de porcentagem e arredondamento de ponto médio para longe do zero
Corrigido
- O recálculo de fórmulas clássico agora usa as coordenadas nativas de células com base zero, mantém falhas de cálculo fora do cache de sucessos e preserva a propagação de erros por meio de funções de matriz dependentes
Versão 2.354.0
Adicionado
- Eixos de gráficos ganharam a enumeração de modo de cruzamento (
Crosses: autoZero / max / min, emitida comocrossesquando nenhumCrossesAtexplícito está definido) e estilos de marcas de escala principais / secundárias por eixo (in,out,cross), todos preservados em ciclos de salvar e abrir AutoTitleDeletedem gráficos substitui o sinalizador embutido no código de título automático e suprime o título derivado das séries quando definido
Versão 2.353.0
Adicionado
- Séries de gráficos ganharam
Smooth/SmoothSetpara renderização de linhas curvas eMarkerFillColor/MarkerBorderColorpara cores explícitas de marcadores; ambas persistem em ciclos de salvar e abrir, e o renderizador compartilhado desenha os segmentos suavizados como curvas quadráticas e consome as cores dos marcadores
Versão 2.352.0
Adicionado
- A formatação do espaço do gráfico é preservada em ciclos de salvar e abrir:
RoundedCorners, cores explícitas de plano de fundo e borda do gráfico e a cor de plano de fundo da área de plotagem persistem em ciclos de salvar e abrir, e o renderizador de gráficos compartilhado consome as cores de plano de fundo e borda em vez de sempre desenhar branco sobre cinza - As opções de proteção do gráfico são preservadas em ciclos de salvar e abrir sob um único interruptor mestre:
ProtectionEnabledmaisProtectedChartObjects,ProtectedDataEditing,ProtectedFormatting,ProtectedSelectioneProtectedUserInterfaceemitem e analisam o elemento OOXMLprotection
Versão 2.351.0
Alterado
- Gráficos de barras e colunas no renderizador de paginação compartilhado agora seguem as opções de layout do grupo de plotagem: GapWidth dimensiona o agrupamento, Overlap alarga e aproxima as barras vizinhas, e agrupamentos empilhados / percentualmente empilhados acumulam uma barra de agrupamento completo por categoria em vez de desenhar as séries lado a lado
Versão 2.350.0
Adicionado
- A cópia de intervalos entre pastas de trabalho agora remapeia cada estilo de célula por valor para os pools de fontes, preenchimento, bordas, formato de número, alinhamento e proteção da pasta de trabalho de destino, de modo que
CopyRangeToeCloneRangeToentre duas pastas de trabalho abertas mantenham a formatação independente da ordem dos pools - Pastas de trabalho XLS clássicas preservam em ciclos de salvar e abrir as propriedades internas de documento numéricas e de data:
CreatedDate,LastSavedDate,RevisionNumbereEditTimeMinutespersistem pelo stream OLE SummaryInformation, com valores zero ignorados e uma limpeza completa os removendo
Versão 2.349.0
Adicionado
- Pastas de trabalho XLS clássicas expõem o estado de proteção de revisão da pasta de trabalho compartilhada por trás de propriedades estruturadas:
SharedRevisionProtectedeSharedRevisionPasswordHashsão preservados em ciclos de salvar e abrir, enquanto corpos brutos de registros capturados de arquivos analisados ainda têm precedência, a menos que as propriedades sejam gravadas explicitamente - Reconhecimento de criptografia em relatórios:
TXLSCompiledReportTemplate.CreateEncryptedabre um modelo protegido por senha diretamente, eRunToEncryptedFileexecuta o relatório e grava um resultado criptografado ECMA-376 em uma única chamada
Versão 2.348.0
Adicionado
- Opções de colar da área de transferência para ambos os motores:
PasteFromClipboardaceita modos somente valores (mantém resultados em cache, ignora fórmulas, formatos e mesclagens) e de inserir linhas / inserir colunas, que deslocam o conteúdo existente antes de o bloco ser posicionado - Leitores antecipados relatam conteúdo ignorado: o leitor direto, o cursor de linhas e o leitor antecipado expõem
OnSkippedRecord, disparado quando uma referência de célula malformada é ignorada ou uma varredura de planilha BIFF é abortada por registros truncados ou incompatíveis
Versão 2.347.0
Adicionado
- Combinadores de modelagem de tabelas de relatório:
Filtertransmite as linhas correspondentes em fluxo contínuo de forma preguiçosa,Sortexecuta uma ordenação estável por múltiplas chaves eDistinctmantém a primeira linha por tupla de chaves - Adaptadores de fontes de dados:
FromDataSetcaptura umTDataSetaberto como instantâneo em uma tabela de relatório (os nomes de campos se tornam colunas, a posição do dataset é restaurada), eFromObjectsmapeia propriedades published de listas e matrizes de objetos arbitrários para colunas - Faixas de relatório bidirecionais:
RunBidirectionalpermite que cada linha mestre controle as suas próprias colunas a partir de uma tabela filha relacionada, produzindo layouts de colunas irregulares em que linhas mais curtas deixam os clones extras em branco PreprocessAndRunexecuta um modelo duas vezes: a primeira passagem preenche valores e executa diretivas estruturais para que o modelo se adapte aos dados, a segunda passagem recompila a pasta de trabalho remodelada e preenche os placeholders restantes
Versão 2.346.0
Adicionado
- Placeholders de relatório aceitam um valor padrão:
{{name;fallback}}grava o texto de fallback quando a chave está ausente ou vazia - Expressões de relatório ganharam
dbvalue(table, row, field[, default])edbcount(table)para ler qualquer tabela registrada do contexto de dados por linha e coluna, além detonumber(text)para conversão de string em número eref(rowOffset, colOffset), referências relativas que acompanham cópias de faixas; modelos, executores e faixas expõem uma propriedadeDataContext - Uma célula
{{=formula(...)}}pura agora grava uma fórmula ativa na célula em vez de texto simples, e outras expressões puras mantêm o seu tipo avaliado (números permanecem numéricos) - Novas diretivas estruturais de relatório:
{{#imgsize zoom=150}}redimensiona a imagem ancorada na célula da diretiva,{{#comment text}}anexa um comentário de célula,{{#html <b>bold</b>}}injeta um fragmento no rich text, e{{#sheetvisible Sheet false}}/{{#deletesheet Sheet}}controlam a visibilidade e a remoção de planilhas
Versão 2.345.0
Adicionado
- Pastas de trabalho XLSX ganharam uma política de recálculo no salvamento:
RecalcBeforeSaveseleciona comportamento manual (padrão), recalcular se desatualizado ou sempre recalcular quando um arquivo é salvo RecalcNeededinforma se alguma célula de fórmula ou edição capturada está atualmente desatualizada, eRecalcCellrecalcula a pasta de trabalho e retorna o valor recém-calculado de uma única célula por planilha, linha e coluna
Versão 2.344.0
Adicionado
- Modelos de relatório suportam diretivas estruturais no texto de células:
{{#delete A2}}limpa o intervalo nomeado,{{#format fmt=0.00 bold fill=FFFF00}}aplica formatos de número, negrito, itálico, fonte e cores de preenchimento à coluna acima da célula da diretiva, e{{#aggregate sum A2:A99}}grava fórmulas no estilo=SUM(A2:A99)— tudo executado após o preenchimento dos placeholders de valores, com as células de diretivas consumidas em seguida e verbos de diretivas desconhecidos ainda relatados como diagnósticos do modelo
Versão 2.343.0
Adicionado
- O gravador ZIP produz arquivos ZIP64: entradas nos limites de tamanho de 32 bits ou além reservam um campo extra ZIP64 no seu cabeçalho local com campos clássicos de sentinela, registros do diretório central emitem tamanhos e deslocamentos de 64 bits com um incremento da versão necessária, e o registro de fim do diretório central é precedido pelo registro ZIP64 EOCD e pelo localizador sempre que qualquer campo clássico satura
- Os tetos de tamanho de entrada e de arquivo no lado da gravação sobem para 16 GB e 64 GB respectivamente; as proteções de descompressão no lado da leitura permanecem inalteradas
Versão 2.342.0
Adicionado
- Figuras incorporadas transportam metadados de acessibilidade:
AltTexteAltTextTitleem cada imagem são serializados como os atributosdescretitledo desenho e recarregados no modelo tipado para pastas de trabalho que não reproduzem o XML bruto da âncora
Alterado
- Partes de segmentação e de linha do tempo já eram preservadas sem perdas pela camada opaca do pacote (verificado de ponta a ponta nesta versão); o contrato de preservação agora está garantido por um teste de regressão que cobre abrir e salvar novamente pacotes com segmentações
Versão 2.341.0
Adicionado
- Executores de relatório podem aplicar autofit à saída concluída:
AutofitModeseleciona passagens de linha, coluna ou ambas em cada planilha depois que todos os destinos são aplicados e antes da serialização, eAutofitAdjustmentadiciona uma folga opcional acima dos tamanhos medidos - Linhas com quebra de texto são dimensionadas pela contagem de linhas medida em relação à largura da coluna, de modo que o texto de células de múltiplas linhas produzido por modelos cresce a linha como o próprio autofit do Excel faria
Versão 2.340.0
Adicionado
- Exportações PDF podem definir o modo inicial do visualizador — marcadores, miniaturas, tela cheia, conteúdo opcional ou anexos — por meio da entrada
/PageModedo catálogo - Exportações PDF podem definir uma ação de abertura que salta para uma página escolhida em um fator de zoom explícito ou abre o painel de marcadores quando o documento é carregado
- Os metadados XMP agora transportam identificadores
DocumentIDeInstanceID, um eventoxmpMM:History, datas de modificação e de metadados e a declaraçãodc:formatesperada por validadores de arquivamento
Versão 2.339.0
Adicionado
- Um pipeline de impressão físico: o novo
TXLSPrintDocumentimprime planilhas, pastas de trabalho ou todas as planilhas visíveis por meio do modelo de paginação compartilhado, com janelas de páginas, organização de cópias, um título de documento e eventos antes de nova página / após gerar página - A visualização do visualizador de pasta de trabalho ganha modos de zoom — ajustar à página, ajustar à largura ou um fator explícito de 25% a 400% — com zoom Ctrl+roda, virada de páginas pela roda e deslocamento horizontal quando a página com zoom excede a janela
Versão 2.338.0
Adicionado
- A renderização de gráficos desenha o eixo de valores: marcas de escala e rótulos numéricos alinhados à direita ao longo da borda esquerda, linhas de grade principais quando ativadas, escalonamento em unidades de exibição, orientação invertida e limitação logarítmica
- Séries atribuídas ao eixo de valores secundário são mapeadas na sua própria escala, de modo que gráficos de combinação mantêm magnitudes primária e secundária independentes
- Gráficos de bolhas renderizam bolhas com escala de área derivadas da coluna de tamanho de bolha em vez de pontos de marcador fixos
- Gráficos em memória resolvem os seus intervalos de valores, categorias e bolhas em relação à planilha proprietária quando os caches estão vazios, de modo que gráficos recém-criados são renderizados de forma idêntica aos carregados
- O modelo de gráficos ganha tamanho editável do furo do gráfico de rosca, ângulo da primeira fatia, estilo de radar e tipo of-pie, posição de divisão, modo de divisão, tamanho da plotagem secundária e largura do espaçamento, tudo persistido em ciclos de salvar e carregar
Corrigido
- Gráficos de categoria cujos pontos têm valores, mas nenhuma categoria numérica, não abortam mais a renderização com um placeholder, o que antes suprimia marcas de escala, linhas de grade e saída de séries em todos os gráficos de coluna, barra e linha
Versão 2.337.0
Adicionado
- A saída paginada pode renderizar comentários de células como uma listagem ao final por meio do novo modo
PrintCommentsno exportador SVG e no modelo de paginação: o endereço da célula, o autor e o texto aparecem abaixo da última linha de dados da planilha - Objetos de desenho nomeados são exportados como imagens PNG no DPI e na escala configurados por meio de
ExportObjectAsPNG, com uma contraparte somente de mediçãoGetObjectSizeque retorna as dimensões em pontos do objeto sem renderizar - Âncoras de formas de texto fora do intervalo utilizado agora estendem a superfície impressa, como gráficos e figuras já faziam
Alterado
- O renderizador de paginação armazena em cache as fontes de células resolvidas por passagem e memoiza medições de texto repetidas, removendo leituras redundantes do pool de fontes e chamadas de medição GDI dos loops de redução para caber e da quebra de palavras
Versão 2.336.0
Adicionado
- A rotação de texto de células agora é renderizada na saída de imagem de página, SVG, impressão e visualização: ângulos de 1 a 90 graus no sentido anti-horário e horário giram em torno do centro da célula e a forma empilhada 255 emite uma letra por linha
- Células com subscrito e sobrescrito são renderizadas com linha de base deslocada e tamanho de glifo reduzido, em vez de perder o alinhamento vertical
- As seções de cabeçalho e rodapé respeitam os seus códigos de formato de tamanho em pontos
&nne de cor&Kem todas as saídas orientadas por paginação - As larguras de coluna na saída paginada derivam da largura máxima de dígito medida da fonte Normal da pasta de trabalho, de modo que pastas de trabalho baseadas em fontes diferentes de Calibri 11 são paginadas com limites de coluna tão precisos quanto os do Excel
- Planilhas com uma cor de grade clássica personalizada renderizam as suas linhas de grade nessa entrada da paleta, em vez do padrão cinza fixo
Versão 2.335.0
Adicionado
- Cerca de setenta funções de planilha clássicas agora são avaliadas, além de serem analisadas: o grupo de matemática e trigonometria
ATAN2 ASIN ACOS SINH COSH TANH ASINH ACOSH ATANH EVEN ODD, o grupo de data e horaTIME HOUR MINUTE SECOND DATEVALUE TIMEVALUE DAYS360, o grupo financeiroMIRR IRR IPMT PPMT DB,TRANSPOSE TYPE N ADDRESS ROMAN HYPERLINK MAXA MINAe as grafias anteriores a 2010 da família de distribuição e estatística, comoNORMSDIST TDIST CHIDIST FDIST POISSON QUARTILE PERCENTILE PERCENTRANK COVAR CHITEST GAMMALN, que encaminham para as implementações pontuadas que compartilham as suas listas de argumentos
Corrigido
- Formas legadas da CDF normal com um argumento, como
NORMSDIST, calculavam uma aproximação da função erro incorretamente escalada MIRRcapitalizava fluxos de caixa positivos com um expoente de período com erro de uma unidade, deslocando os resultados em relação aos valores do Excel
Versão 2.334.0
Adicionado
- Placeholders de faixas de relatório compostos por um único campo de valor agora gravam o tipo de dados bruto na célula de destino: números permanecem numéricos, datas permanecem células de data e recebem o formato de data padrão quando a célula é Geral, e booleanos mantêm o seu tipo de célula, de modo que SUM, ordenação e referências de gráficos a jusante funcionem nos relatórios gerados
- Estilos de tabela personalizados ganharam o conjunto completo de seções, incluindo seções de subtotal de tabela dinâmica, subcabeçalho, linha em branco e campo de página, nome de fonte, tamanho, itálico, tamanho de faixa e bordas de quatro lados por seção por meio de
SetSectionEx, além dos sinalizadorespivot/table, das propriedades de pasta de trabalhoDefaultTableStyleName/DefaultPivotStyleNamee da preservação completa no carregamento de estilos, seções e atributos dxf - Abrir uma pasta de trabalho XLSX criptografada sem uma senha agora dispara
TXLSXWorkbook.OnPasswordcom o mesmo contrato de nova tentativa do motor clássico, permitindo prompts de senha na GUI sem saber de antemão que o arquivo está criptografado - Salvar pastas de trabalho BIFF5 clássicas com uma senha agora aplica ofuscação XOR, e pastas de trabalho BIFF8 podem selecionar RC4 padrão por meio de
EncryptionType, completando a matriz de criptografia clássica ao lado do padrão RC4 CryptoAPI existente - A renderização de texto de planilhas na saída de imagem de página, SVG, impressão e visualização agora respeita o alinhamento vertical e a quebra de palavras do WrapText com quebra de linha gulosa, em vez de cortar células com quebra em uma única linha centralizada
Corrigido
- Células de erro agora exibem o seu literal de erro do Excel, como #DIV/0! ou #REF!, em todos os caminhos de renderização, em vez de um texto vazio indefinido
- Seções de estilos de tabela personalizados são gravadas na forma de esquema
tableStyleElementpara que o Excel reconheça o estilo, e a cor da fonte de uma seção não descarta mais a sua configuração de negrito - Instantâneos de faixas de relatório mantêm cada valor de coluna vinculada quando uma faixa cresce além da capacidade inicial
Versão 2.333.0
Adicionado
TXLSPDFSignature.CertificationPolicypode criar uma assinatura de certificação DocMDP que não permite alterações, permite o preenchimento e a assinatura de formulários ou permite o preenchimento, a assinatura e as anotações de formulários; catálogos certificados fazem referência à assinatura por meio de/Perms, a saída certificada comum usa PDF 1.5, e a certificação PDF/A-1 incompatível é rejeitada antes que o stream de destino seja alterado
Versão 2.332.0
Alterado
- O PDF marcado automático agora emite uma estrutura de tabela completa com linhas, células de cabeçalho e de dados semânticas, identificadores densos de conteúdo marcado por página, mapeamentos exatos da árvore pai, extensões de linha e coluna de células mescladas e isolamento de artefatos para decoração de página, gráficos, imagens, cabeçalhos e rodapés
Corrigido
- Reutilizar um exportador PDF agora limpa os slots de objetos binários entre documentos, impedindo que um perfil ICC, uma imagem ou outro stream de uma exportação anterior substitua um objeto recém-alocado quando a numeração de objetos muda
Versão 2.331.0
Adicionado
- Uma fachada unificada de desenho XLSX expõe a ordem mista de imagens, gráficos, caixas de texto, âncoras preservadas e grupos, com operações de avançar, retroceder, trazer para frente, enviar para trás, grupo com reconhecimento de transformação e desagrupar após salvar e reabrir que preservam os relacionamentos de desenho
- Estilos nomeados suportam partes de formato vinculadas automáticas ou explícitas preservando substituições locais, e todos os 60 estilos de tabela integrados claros, médios e escuros são resolvidos pelos caminhos de formatação compartilhados de HTML, PDF, imagem, visualização e visualizador
TXLSPDFBookmarksuporta marcadores Unicode hierárquicos, relacionamentos de irmãos e filhos, cores, títulos em negrito ou itálico e descendentes expandidos ou recolhidosTXLSPageImageExporter.ExportAllAsTiffgrava as páginas selecionadas em um stream ou arquivo como um único TIFF multipágina compactado com LZW, com progresso, cancelamento e substituição atômica de arquivo- Aberturas XLS clássicas podem parar após os metadados globais ou buscar diretamente planilhas selecionadas por deslocamentos
BOUNDSHEETvalidados, incluindo reposicionamento de stream criptografado TXLSFormatSnapshotcaptura um formato de célula clássico completo independentemente da pasta de trabalho de origem eIXLSRange.ApplyFormato aplica a intervalos de células, linhas ou colunas- Gravações em massa XLSX tipadas compatíveis em ordem de linha usam armazenamento RLE compactado, com estatísticas públicas de células compactadas e bytes, além de materialização única transparente para identificadores de objeto estáveis
Alterado
- Células XLSX em branco somente com estilo compartilham cargas úteis com contagem de referências com edições locais de cópia ao gravar, compactação automática em formatação em massa, atualizações de estilo nomeado, cópia, classificação, patch de formato, salvamento e caminhos de carregamento, e bytes de carga útil evitados mensuráveis
- Matrizes dinâmicas fluem diretamente para agregados escalares, buscas exatas repetidas reutilizam caches de intervalo incrementais tipados e tokens de fórmula imutáveis sem estado são compartilhados entre compilações
- Arcos elípticos usam subdivisão adaptativa de Bézier cúbica orientada por planicidade compartilhada pela saída PDF, SVG e bitmap, aumentando a precisão apenas onde a escala ou a excentricidade exige
- A saída de pacote XLSX agora estabiliza strings compartilhadas, hiperlinks, relacionamentos e ordenação de partes, de modo que a construção reversa produza pacotes determinísticos idênticos byte a byte
- O leitor antecipado unificado de XLS, XLSX, CSV e TSV mantém a memória limitada; continuações de string compartilhada BIFF8 transbordam além de um limite configurável mantendo as proteções de projeção, planilha selecionada, criptografia e entrada malformada
Corrigido
- A vinculação de pacotes Win64 do C++Builder não emite mais vtables duplicadas de lista de objetos genéricos Delphi a partir das unidades de comparação de pasta de trabalho e verificação de importação
Versão 2.330.0
Adicionado
TXLSXWorksheet.Subtotalinsere linhas de subtotal agrupadas, uma linha de total geral configurável, fórmulas, formatação visível herdada e níveis de estrutura compatíveis com Excel para intervalos de dados classificadosGetCellVisibleFormatresolve a formatação de planilha, linha, coluna, sobreposição de intervalo e célula explícita sem materializar uma célula vaziaCheckDataValidationtesta um valor candidato contra as regras que cobrem uma célula e pode confirmá-lo atomicamente somente quando válido
Alterado
- Os memos de varredura de busca usam chaves binárias exatas compactas e uma única busca de carga útil por acerto de cache, reduzindo a alocação de recálculo e o trabalho de tabela de hash sem alterar as comparações de busca
- A exportação CSV de largura fixa preenche cada campo em uma única operação, mantendo o tempo de preenchimento linear na largura de saída configurada
Corrigido
- As varreduras para trás de
ReplaceTextInagora invocam os callbacks de substituição na ordem de varredura reversa solicitada - Células estilizadas sem valor ou fórmula não bloqueiam mais o estouro de texto em células vizinhas na renderização SVG, de imagem e de visualização
- A saída numérica XLS clássica normaliza o zero negativo além dos valores não finitos e subnormais antes de gravar registros numéricos BIFF
Versão 2.329.0
Adicionado
A1ToR1C1converte fórmulas no estilo A1 para notação R1C1 (deslocamentos relativos, formas absolutas com$, intervalos e idas e voltas por meio deR1C1ToA1), completando ambas as direções da conversão de estilo de referência
Alterado
- O memo de busca do recálculo ignora vetores de varredura com menos de cinco células em
VLOOKUP,XLOOKUP/XMATCHeMATCH, onde uma varredura bruta é mais barata do que a ida e volta do dicionário
Versão 2.328.0
Adicionado
- O renderizador de página compartilhado por trás da saída SVG, imagem e visualização agora pinta estilos de célula XLSX: preenchimentos sólidos (com alfa), fontes e cores por célula, alinhamento horizontal com o padrão numérico à direita do Excel, união de bordas estilo Excel onde a borda compartilhada mais pesada vence, ajuste para caber que redimensiona a fonte à coluna e overflow de texto longo em células vizinhas vazias consecutivas
Versão 2.327.0
Adicionado
- O carregador CSV/TSV ganha diretivas de importação por coluna (
cctText,cctNumber,cctDate,cctBoolean,cctSkip) refletindo o assistente de importação de texto do Excel, de modo que colunas individuais possam ser forçadas a texto para manter zeros à esquerda, convertidas a um tipo ou removidas da importação - Importação de texto de largura fixa: atribuir larguras de campo muda o carregador de análise por separador para fatiamento por posição de caractere, e o salvador pode emitir colunas de largura fixa preenchidas com espaços e truncamento
Versão 2.326.0
Adicionado
- A pesquisa em planilhas XLSX ganha métodos em janela
FindTextIneReplaceTextInque confinam a varredura a um intervalo retangular de células, mais um sinalizador de ordem de varredura por coluna que reflete o modo Pesquisar: Por colunas da caixa de diálogo Localizar e substituir do Excel; a varredura para trás agora aceita uma âncora zero para começar do canto inferior direito - O salvamento agora se protege contra fórmulas mais longas que o limite de 8192 caracteres do Excel, falhando rapidamente com a célula problemática identificada em vez de escrever uma pasta de trabalho que o Excel abriria em modo de reparo
Corrigido
- Valores numéricos de célula não finitos (NaN e infinito positivo ou negativo) não podem mais vazar tokens não analisáveis nas partes XLSX salvas; agora são serializados como células de erro
#NUM!, e os doubles subnormais são zerados tanto no gravador XLSX quanto no BIFF8, em linha com o que o Excel pode armazenar e exibir
Versão 2.325.0
Adicionado
- As APIs de formato de pasta de trabalho agora incluem Mapas XML editáveis e vinculações de esquema, múltiplas janelas de pasta de trabalho ordenadas, seleções de várias áreas e por painel, e inspeção sem perdas de tokens de fórmula de propriedade do chamador, reconstrução, substituição de referências e gravação atômica para XLS e XLSX
- O processamento de pastas de trabalho agora inclui classificação estável horizontal ou vertical com comparadores personalizados e movimentação explícita de fórmulas, conversão de estilos e fórmulas de BIFF2 a BIFF4, uma fachada projetada de leitor antecipado para XLS, XLSX, CSV e TSV, exibições personalizadas tipadas e submodelos editáveis de conexão OLAP, de tabela da web, de texto fixo e de parâmetros
- O cálculo e a inspeção agora incluem diagnósticos estruturados de função ausente, referência externa e dependência circular, registros de UDF globais e locais da pasta de trabalho, ordenação visual bidirecional Unicode, estratégias de AutoFit para células mescladas, preservação tipada de folhas de macro do Excel 4 e varredura de comandos, e as funções
ISOMITTED,ARRAYTOTEXT,VALUETOTEXT,PDURATIONeRRI - A geração de relatórios compilada agora cobre espaços reservados de pasta de trabalho inteira, faixas nomeadas de linhas, colunas e tabulação cruzada, faixas expansíveis de tabelas do Excel, uma única abstração de tabela e cursor, índices de relacionamento exatos de chave composta, contextos de dados lentos, combinadores de tabela em fluxo contínuo, provedores de consulta nomeados controlados, faixas de planilha por registro, planilhas de continuação por estouro e inclusões recursivas imutáveis
- A autoria de relatórios agora inclui condições compiladas, consulta, expressões regulares, fórmulas e formatos dinâmicos, campos de imagem, religação de séries de gráficos, executores reutilizáveis com saída de arquivo em fluxo ou atômica, clonagem de intervalos ciente de dependências, planejamento de paginação com rodapé fixo e balanceada, diagnósticos endereçados, execução estrita, verificação de modelos e migração segura de espaços reservados legados suportados
- A saída em PDF agora inclui árvores de estrutura marcadas automaticamente, campos assinados pelo host visíveis ou invisíveis, perfis de conformidade explícitos PDF/A-1, PDF/A-2 e PDF/A-3 nos níveis a e b, progresso e cancelamento atômicos, fallback de fonte em cache ciente de estilos, modelagem contextual de texto complexo, gradientes nativos de múltiplas paradas, alfa por parada, padrões de preenchimento de células, sombras e anotações de comentário posicionadas
- A renderização compartilhada agora inclui SVG nativo de intervalo, página, pasta de trabalho e objeto nomeado, páginas PNG e JPEG incrementais, geometria de layout neutra em relação ao backend, gráficos e formas vetoriais embutidos em HTML, sessões HTML parciais com estado e CSS compartilhado, efeitos de imagem renderizados, geometria vetorial de formas predefinidas e WordArt, detalhes avançados de gráficos científicos e financeiros e layout determinístico de colisão de rótulos de dados e linhas de chamada
Alterado
- Todos os 55 itens de capacidade auditados, F01 a F18, R01 a R19 e V01 a V18, agora têm implementações suportadas concluídas com propriedade explícita, segurança de formato, cancelamento e limites de saída
- Modelos de relatório grandes compilam alvos de objetos e expressões uma única vez, materializam apenas campos de eixo vinculados, consomem cursores de dados uma única vez, calculam hashes das chaves de relacionamento e junção, congelam prefixos de coleções de origem para clonagem disjunta repetida e evitam revarrer objetos gerados da pasta de trabalho
- Os caminhos de renderização compartilham paginação, geometria, posicionamento de objetos, estado de efeitos e caches de recursos do documento, enquanto as saídas em PDF, SVG, HTML, bitmap, metarquivo, visualização e impressão retêm apenas seus codificadores específicos de formato
Corrigido
- Eventos de gravação de células XLSX agora serializam seus valores de substituição efetivos sem reter execuções de rich text desatualizadas, tokens de nome externo BIFF preservam o índice completo do nome de 4 bytes e fontes de conexão de nível superior fazem idas e voltas de forma independente das fontes de importação de texto mantendo o fallback da fonte herdada
- O significado de estilos e fórmulas BIFF legados, o remapeamento de janelas da pasta de trabalho e seleções, referências de fórmula absolutas mistas, a propriedade de tokens de fórmula e a gravação de tokens inválidos agora mantêm comportamento determinístico sem perdas durante carregar, editar e salvar
- A expansão de relatórios agora rejeita conflitos determinísticos de tabela, filtro, nome, sobreposição, objeto parcial, grade e baseados em consulta antes das gravações estruturais, preserva a cardinalidade de tabelas com zero linhas quando representável, mantém chaves de junção inteiras exatas além de 2^53 e relata contagens aplicadas determinísticas após cancelamento ou falha
- A exportação em PDF e vetorial agora preserva mapeamentos Unicode de fontes de fallback, clusters de grafemas e modelagem, restrições de perfil de arquivamento, alfa de gradientes, efeitos de imagem, decorações de gráficos, posicionamento denso de rótulos e atomicidade de saída, sem crescimento de recursos por conteúdo repetido
Versão 2.324.0
Adicionado
- A inspeção sem perdas de tokens de fórmula e a gravação protegida para XLS e XLSX por meio de
TXLSFormulaTokenStream,ParseFormulaTokens,GetFormulaTokens,FormulaTokensToTexteSetFormulaTokensexpõem tipos e classes de tokens RPN, tokens BIFF brutos e cargas extras, sinalizadores de referência independentes, clonagem, substituição de referências, proveniência de contexto e reutilização BIFF exata e compatível, rejeitando fluxos malformados, incompatíveis, de propriedade de matriz ou não suportados antes da mutação de células - Faixas expansíveis de tabelas do Excel em relatórios por meio de
TXLSCompiledTableReportBandusam um único instantâneo limitado de cursor para expandir uma única linha de modelo de dados preservando cabeçalhos, totais, intervalos de tabela e AutoFiltro, estado de filtro e classificação, metadados de colunas, fórmulas calculadas e de totais, estilos, referências estruturadas e objetos dependentes da planilha; resultados representáveis com zero linhas removem a linha de dados do modelo, enquanto layouts baseados em consulta, conflitantes, inválidos e com estouro falham antes das gravações - Cadeias de fallback de fonte em PDF cientes de estilos por meio de
SetFontFallbackChain,AddFontFallbackeClearFontFallbackChainsresolvem camadas de família de origem e estilo por cobertura de glifos, armazenam em cache faces e seleções carregadas, preservam escalares suplementares e clusters de grafemas entre execuções, atribuem CIDs distintos a sequências Unicode de glifos compartilhados, incorporam faces TTC autônomas e rejeitam atomicamente a saída PDF/A quando nenhum glifo incorporado está disponível
Versão 2.323.0
Adicionado
- Modelos de relatório reutilizáveis de pasta de trabalho por meio de
TXLSCompiledReportTemplate: os espaços reservados são compilados uma única vez e podem ser aplicados repetidamente sem revarrer a pasta de trabalho, usando uma consulta de valores ordenada e fragmentos de texto pré-divididos em células, texto rico, comentários, comentários em thread, hiperlinks, caixas de texto, títulos de gráficos e nomes de séries, cabeçalhos e rodapés, nomes de planilhas, nomes definidos e propriedades de documento - A vinculação de dados de relatórios por meio de
IXLSReportTable,IXLSReportCursor, carregamento lento deIXLSReportTableProvider, tabelas de memória de acesso aleatório eTXLSReportRelationIndex, que constrói um hash filho de chave composta uma única vez e retém números de linha em vez de copiar cargas de linha para consulta mestre-detalhe repetida - O cálculo de fórmulas agora avalia
PDURATIONpara o número de períodos necessários para atingir um valor de investimento alvo eRRIpara a taxa de crescimento periódica equivalente, incluindo limites de erro numérico compatíveis com o Excel e o prefixo de armazenamento OOXML_xlfn.necessário - O cálculo de fórmulas agora avalia
ISOMITTED,ARRAYTOTEXTeVALUETOTEXT, incluindo um valor dedicado de argumento omitido que permanece distinto de uma célula em branco, idas e voltas de tokens BIFF de argumento ausente, matrizes unidimensionais e bidimensionais, escape estrito de cadeias, separadores localizados, regras de conversão de erros e prefixos OOXML de funções futuras - A verificação prévia estruturada de fórmulas por meio de
TXLSXWorkbook.AnalyzeFormulaIssuesrelata funções ausentes, referências externas de pastas de trabalho e componentes exatos de dependências circulares com coordenadas de células e listas limitadas de membros, enquanto literais de cadeia e referências estruturadas locais são excluídos de correspondências falsas - A clonagem de intervalos ciente de dependências por meio de
TXLSXWorksheet.CloneRangeTocopia células selecionadas, intervalos mesclados, formatações condicionais, validações de dados, hiperlinks, comentários, imagens e gráficos em uma única operação, realoca intervalos e âncoras aplicados e traduz cargas de fórmulas com semântica mista de referências relativas e absolutas; as faixas de relatório usam o mesmo caminho para objetos dependentes - O progresso e o cancelamento da exportação em PDF por meio de
TXLSPDFExport.OnProgress,OnProgressExeCancel: as notificações de início, página e fim adicionam sobrecarga de retorno de chamada desprezível, o cancelamento é verificado entre passagens de linhas e objetos de página, fluxos cancelados não recebem PDF parcial e o exportador permanece reutilizável - Os diagnósticos de relatórios compilados por meio de
TXLSCompiledReportTemplate.Analyze, execução estrita eWriteDiagnosticsidentificam valores ausentes, espaços reservados vazios e espaços reservados não fechados com o tipo de destino mais as coordenadas da planilha e da célula antes da mutação, ou gravam as mesmas descobertas em uma planilha de diagnóstico - A execução reutilizável de relatórios por meio de
TXLSCompiledReportRunnerfornece progresso de início, alvo e fim com estados concluído, cancelado e com falha, suporta cancelamento antes da primeira gravação ou entre alvos compilados, relata a contagem exata aplicada e permanece reutilizável após cancelamento ou exceções sem revarrer a pasta de trabalho - As estratégias de AutoFit para células mescladas em XLS clássico e XLSX permitem que a primeira ou última linha ou coluna absorva o crescimento necessário, ou o distribua uniformemente pela extensão mesclada, preservando o comportamento de sobrecarga legado, estados ocultos, limites explícitos e chamadas repetidas determinísticas
- As anotações de comentário opcionais em PDF por meio de
TXLSPDFExport.ExportCommentsAsAnnotationsposicionam o texto Unicode do autor e do comentário no retângulo da célula de origem preservando a página existente de comentários no final; os índices de comentários por planilha são construídos em aproximadamente O(C log C) de tempo e suportam consulta de células em O(log C) - Os registros hierárquicos de funções definidas pelo usuário permitem que pastas de trabalho XLS e XLSX compartilhem manipuladores em todo o processo mantendo substituições locais da pasta de trabalho, substituição, remoção, limpeza e o fallback existente de eventos da pasta de trabalho; a consulta média é O(1), correspondências locais mascaram nomes globais e os manipuladores são executados fora dos bloqueios do registro para recálculo paralelo e autorremoção seguros
- Os combinadores lentos de tabelas de relatório por meio de
TXLSReportTableFactoryfornecem primeiras linhas, projeção de colunas, contagem de linhas, definições de agregação mínima e múltipla, união mapeada por esquema, partições de divisão contíguas e junções hash internas ou à esquerda que preservam duplicatas, sem materializar cargas de linha intermediárias completas - A exportação incremental de páginas PNG e JPEG por meio de
TXLSPageImageExportersuporta intervalos, planilhas e pastas de trabalho XLS e XLSX com seleção de página, DPI, escala, qualidade JPEG, progresso, cancelamento e sessões reutilizáveis; um modelo de paginação é construído por sessão e a memória de bitmap é liberada após cada página - Múltiplas janelas de pastas de trabalho XLSX por meio de
TXLSXWorkbook.WorkbookViewspreservam guias ativas independentes, primeiras planilhas visíveis, visibilidade, estado minimizado, geometria, exibição de guias, rolagem, atributos desconhecidos, extensões e vinculações de exibição de planilhas corretamente remapeadas, enquanto as propriedades existentes de janela única continuam a se referir à primeira exibição - Faixas de relatório nomeadas de linhas, colunas e tabulação cruzada por meio de
TXLSCompiledReportBandexpandem estruturalmente um modelo de nome definido a partir de instantâneos de dados limitados de passagem única, preservam fórmulas e objetos dependentes da planilha, organizam metadados explícitos de linhas e colunas sem criar padrões de tamanho zero e reutilizam limites fixos de coleções de origem para que a clonagem repetida na mesma planilha não revarre cargas geradas - A exportação em PDF agora grava gradientes axiais ou radiais de duas paradas e de múltiplas paradas como sombreamentos PDF nativos, reutiliza recursos idênticos de função, sombreamento e transparência, recorta cada preenchimento à sua célula e aplica alfa sólido ou de gradiente uniforme sem a antiga aproximação de retângulos em faixas
Corrigido
- As substituições personalizadas de largura e altura de papel baseadas em pontos agora participam do cálculo da faixa de paginação e também do objeto de página final, para que quebras de página e dimensões renderizadas usem a mesma área disponível
Versão 2.322.0
Adicionado
- O cálculo de fórmulas agora avalia as funções de Bessel de primeiro tipo
BESSELJ(oscilante) eBESSELI(modificada), calculadas por meio da série de potências com recorrência de termos para estabilidade numérica em toda a faixa prática de argumentos
Versão 2.321.0
Corrigido
- A exportação RTF de XLSX agora constrói uma tabela de fontes real em vez de codificar Calibri: a pré-varredura coleta cada nome de fonte distinto das células, o
\fonttbllista cada um com seu próprio índice\fNe o texto de cada célula’s referencia sua fonte real — pastas de trabalho formatadas em Times New Roman, Courier New ou qualquer outra fonte não são mais refluídas visualmente para Calibri quando abertas no Word ou no WordPad
Versão 2.320.0
Corrigido
- A exportação em PDF agora renderiza a rotação de texto no caminho do mecanismo XLS clássico: células com orientação de 90 graus ou 270 graus desenham seu texto verticalmente por meio de uma matriz de texto PDF que gira em torno do centro da célula, correspondendo ao comportamento existente do caminho XLSX; anteriormente, cabeçalhos verticais e rótulos rotacionados eram renderizados horizontalmente em PDFs gerados a partir de pastas de trabalho
.xls
Versão 2.319.0
Adicionado
- O cálculo de fórmulas agora avalia os combinadores de matriz dependentes de LAMBDA do Excel 365
MAP(transformação elemento a elemento),REDUCE(dobra em um único valor),SCAN(dobra transbordando cada etapa intermediária),MAKEARRAY(construção a partir de índices de linhas e colunas),BYROW(agregação por linha transbordando uma coluna) eBYCOL(agregação por coluna transbordando uma linha), completando a família de programação funcional LAMBDA junto com o suporte existente aLAMBDAeLET
Versão 2.318.0
Adicionado
- O cálculo de fórmulas agora avalia as funções de finanças de títulos e tesouro:
COUPDAYBS,COUPDAYS,COUPDAYSNC,COUPNCD,COUPPCD,COUPNUM(primitivas de contagem de dias de cupom),PRICE/YIELD(precificação padrão de títulos com solucionador de rendimento por bisseção),PRICEDISC/YIELDDISC(títulos descontados),PRICEMAT/YIELDMAT(baseados no vencimento),DURATION/MDURATION(Macaulay e modificada),TBILLEQ/TBILLPRICE/TBILLYIELD(títulos do tesouro),DISC/INTRATE/RECEIVED(desconto e juros),ACCRINTM(juros acumulados no vencimento),DOLLARDE/DOLLARFR(conversão de dólar fracionário),EFFECT/NOMINAL(taxas efetiva e nominal),CUMIPMT/CUMPRINC(juros e principal acumulados),FVSCHEDULE(valor futuro com taxa variável) eAMORDEGRC/AMORLINC(depreciação francesa); todas compartilham um mecanismo aninhado autocontido de datas de cupom com as cinco bases padrão de contagem de dias
Versão 2.317.0
Adicionado
- O carregamento de pastas de trabalho criptografadas agora aceita arquivos de Criptografia Ágil que declaram o algoritmo de hash SHA-256 (produzidos por alguns gravadores de terceiros): a derivação da chave da senha, o loop de rotação, o verificador de senha e os IVs e o HMAC de chave/valor de integridade de dados seguem todos o hash declarado, enquanto arquivos que declaram hashes incompatíveis entre os dados da chave e o criptografador de chave ainda são rejeitados; o salvamento continua gravando a variante padrão SHA-512 do Excel’s
Versão 2.316.0
Adicionado
SortRangepreserva fórmulas em ambos os mecanismos de pasta de trabalho: células de fórmula acompanham suas linhas e suas referências relativas são re-ancoradas com a semântica de classificação do Excel (as partes absolutas $ permanecem, referências deslocadas para fora da grade são fixadas no lugar), para que tabelas classificadas continuem calculando em vez de colapsarem em valores- Imagens de fundo de planilhas:
SetBackgroundImagepreenche uma imagem atrás das células de uma planilha XLSX (apenas para exibição, como o Excel), fazendo ida e volta pelo elementopictureda planilha, seu relacionamento de mídia e os tipos de conteúdo do pacote
Corrigido
- Recalcular uma fórmula aritmética que referencia uma célula vazia nunca tocada não aborta mais com um erro de conversão — operandos vazios contribuem com 0 como no Excel
Versão 2.315.0
Adicionado
CopyToClipboardpublica o formato nativo Biff8 de área de transferência junto com texto e HTML em ambos os mecanismos de pasta de trabalho, para que intervalos colados no Excel ou em outras pastas de trabalho HotXLS carreguem valores, fórmulas, formatos de número, fontes, preenchimentos, bordas, alinhamento e células mescladas em vez de texto simplesPasteFromClipboardprefere a carga Biff8 quando presente: texto colado do Excel mantém seus valores originais sem nova análise de datas e números dependente de localidade, fórmulas re-ancoram suas referências relativas ao destino da colagem e áreas mescladas são reconstruídas no destino; ambos os mecanismos também colam os blocos um do outro com formatação completa
Alterado
- Fórmulas coladas no Excel chegam como seus valores calculados (uma limitação da análise de área de transferência Biff8 de terceiros do Excel); todo o resto — texto, números com formatos, preenchimentos, bordas e mesclagens — é colado sem perdas no Excel, e as fórmulas sobrevivem integralmente nas direções Excel-para-HotXLS e HotXLS-para-HotXLS
Versão 2.314.0
Adicionado
- Objetos de câmera em planilhas XLSX:
AddCameraposiciona uma imagem de instantâneo ao vivo vinculada a um intervalo de células — a imagem vinculada da ferramenta de câmera do Excel — com a vinculação do intervalo gravada na extensão de desenho documentada e uma imagem de espaço reservado dimensionada à âncora; objetos de câmera criados pelo Excel reabrem com sua vinculação de intervalo preservada
Versão 2.313.0
Adicionado
- Correção local de planilhas para pacotes XLSX:
BeginPatchno gravador em fluxo contínuo abre uma pasta de trabalho existente e reescreve exatamente uma planilha — todas as outras partes (estilos, desenhos, gráficos, tabelas dinâmicas, partes personalizadas) são copiadas com seus bytes compactados verbatim, sem descompactar ou recriar nada, para que um modelo grande tenha sua planilha de dados atualizada em uma fração de uma reconstrução completa - O modo de correção também pode acrescentar uma nova planilha: a planilha é registrada na lista de partes da pasta de trabalho, nos relacionamentos e nos tipos de conteúdo com numeração que nunca colide com partes existentes, seguindo a própria convenção de relacionamento estrita ou transicional do pacote
- Pacotes corrigidos descartam automaticamente a cadeia de cálculo obsoleta (o Excel a reconstrói no carregamento), e recursos que exigiriam novas partes do pacote (tabelas, gráficos, imagens, comentários, nomes definidos) relatam um erro claro em vez de gravar um pacote inválido
Versão 2.312.0
Adicionado
- Saída estrita Open XML: definir
StrictOOXMLem uma pasta de trabalho XLSX salva o pacote em conformidade estrita com ISO/IEC 29500 — toda declaração de namespace e tipo de relacionamento muda dos vocabulários transicionais para os estritospurl.oclc.orgem planilhas, cadeias compartilhadas, estilos, tema, desenhos, gráficos, comentários, propriedades de documento e partes preservadas, enquanto tipos de conteúdo, nomes de partes e os vocabulários VML permanecem como compartilhados por ambas as classes de conformidade - A leitura de pastas de trabalho em conformidade estrita agora está completa: tipos de relacionamento gravados na forma estrita resolvem para os mesmos alvos que seus equivalentes transicionais, complementando a aceitação estrita de namespaces de elementos para que arquivos salvos no modo "Strict Open XML Spreadsheet" do Excel abram como qualquer outra pasta de trabalho
- Salvar com a saída estrita habilitada relata um erro claro para recursos que existem apenas como extensões da Microsoft (projetos VBA, controles de formulário, comentários em thread, metadados de matriz dinâmica) em vez de gravar um pacote que não validaria
Corrigido
- Propriedades de documento personalizadas declaravam um namespace value-types com erro de grafia, o que podia fazer a parte de propriedades falhar na validação em ferramentas externas
Versão 2.311.0
Adicionado
- Ler uma pasta de trabalho XLS preserva registros de planilha não reconhecidos: qualquer registro que o analisador tipado não modela é capturado verbatim e reproduzido ao salvar, para que arquivos que carregam registros específicos de fornecedores ou de especificações mais novas façam ida e volta pelo HotXLS sem perdê-los
Versão 2.310.0
Adicionado
- Formas de geometria predefinida em planilhas XLSX:
AddPresetShapegrava qualquer um dos 187 tokens predefinidosST_ShapeTypedo OOXML (rightArrow,flowChartDecision,star5, …) no<a:prstGeom>do desenho verbatim, e a propriedadePrstTokenpermite que formas existentes alternem a geometria — tokens fazem ida e volta entre salvar e reabrir
Versão 2.309.0
Adicionado
- Processamento de modelos em planilhas:
ApplyTemplatesubstitui espaços reservados{{key}}em todas as células — valores mantêm seus tipos nativos, espaços reservados de fórmula são substituídos antes da análise — eFillTemplateBandclona um bloco de modelo uma vez por registro com tradução de linha de fórmula por clone, clonagem de intervalos mesclados e um campo#skippara condicionais em nível de linha, transformando qualquer planilha artesanal em um gerador de relatórios orientado a dados
Versão 2.308.0
Adicionado
- A exportação em PDF pode anexar arquivos:
AddAttachmentleva documentos brutos para o PDF exportado como entradas/EmbeddedFiles(especificação de arquivo, fluxo incorporado com subtipo MIME opcional e a árvore de nomes do catálogo), para que relatórios sejam entregues junto com seus dados de suporte em um único arquivo autocontido
Alterado
- Ler uma pasta de trabalho XLS com uma palavra de versão BIFF não reconhecida não rejeita mais todo o fluxo: o leitor recorre ao layout BIFF8 para que arquivos de gravadores que emitem números de versão incomuns ainda carreguem quando seus registros são analisados
Versão 2.307.0
Adicionado
- Gerenciamento central de arquivos temporários: cada arquivo temporário que a biblioteca cria é registrado e limpo, para que uma exportação abortada ou uma exceção entre criar e excluir não deixe mais arquivos temporários órfãos para trás
VerifyEncryptedSavereabre um contêiner criptografado recém-gravado por todo o pipeline de descriptografia e falha o salvamento quando a senha não consegue desbloqueá-lo — contêineres corrompidos surgem imediatamente em vez de na próxima abertura do usuário- A exportação de conjuntos de dados aciona um evento
OnExportLimitquando a divisão de linhas entra em ação, e os limites de grade da pasta de trabalho por versão de formato são expostos como constantes (65536×256 para BIFF8, 1048576×16384 para os formatos 2007+) para negociação de capacidades
Versão 2.306.0
Adicionado
- Planilhas XLSX ganham criação de controles de formulário:
AddFormButton,AddFormCheckBox,AddFormRadioButton,AddFormComboBoxeAddFormListBoxgravam controles de botão / caixa de seleção / botão de opção / lista suspensa / listagem com legendas, células vinculadas, estado marcado e vinculação de macro — o caminho de salvamento emite as formas VML, as partesctrlPropspor controle, seus relacionamentos e as entradas de tipos de conteúdo, e arquivos que carregam controles fazem ida e volta de suas partes verbatim ao reabrir
Versão 2.305.0
Adicionado
- A exportação em PDF ganha um modo opcional
UsePDFAque produz documentos identificados PDF/A-2b: o perfil sRGB IEC61966-2.1 é incorporado como a intenção de saída GTS_PDFA1, os metadados XMP carregam a identificação de parte/conformidadepdfaide o cabeçalho anuncia PDF 1.7 — combine-o com uma fonte TrueType incorporada (UnicodeFontFileou a fonte instalada selecionada automaticamente) para saída arquivável
Versão 2.304.0
Adicionado
- Avaliação ao vivo entre pastas de trabalho:
RegisterExternalWorkbookassocia um objeto de pasta de trabalho a um nome de livro para que fórmulas como[Book.xlsx]Sheet!A1compilem (o prefixo[Book]Sheet!Refagora é analisado como uma referência externa real) e leiam o estado atual do objeto registrado a cada recálculo; cancelar o registro remove o link ao vivo e recorre ao cache de links externos
Versão 2.303.0
Adicionado
- Comparação de pastas de trabalho por meio de
TXLSXWorkbookCompare: emparelha planilhas por nome e relata planilhas adicionadas/removidas, células adicionadas/removidas, valores alterados, fórmulas alteradas e intervalos mesclados adicionados/removidos — como uma lista estruturada de diferenças para ferramentas e como uma linha legível por diferença por meio deReport
Versão 2.302.0
Adicionado
- O gravador direto em fluxo contínuo ganha um fornecimento de linhas em modo pull:
OnNeedRowé acionado uma vez por linha prospectiva e o fornecedor grava essa linha diretamente pelo gravador, declarando fim dos dados para parar — pipelines de dados podem conduzir uma exportação sem pré-armazenar listas de linhas em buffer
Versão 2.301.0
Adicionado
- A exportação ODS grava fórmulas de células: referências na mesma planilha são traduzidas para a grafia padrão
of:=do OpenFormula (referências entre colchetes, separadores de argumento por ponto e vírgula e literais de cadeia intactos), enquanto referências qualificadas por planilha e referências estruturadas usam o passthroughmsoxl:que o próprio Excel utiliza para idas e voltas entre suítes — pacotes salvos reabrem com o texto de fórmula original do Excel
Versão 2.300.0
Adicionado
- Planilhas da direita para a esquerda agora são renderizadas espelhadas em todos os lugares: a exportação em PDF inverte a geometria das colunas ao longo da largura imprimível (coluna A à direita, conteúdo das células intacto) e ambos os exportadores HTML emitem
dir="rtl"na tabela para que o navegador inverta a ordem das colunas — o sinalizador da planilha já faz ida e volta por XLSX e BIFF
Versão 2.299.0
Adicionado
- A exportação de conjuntos de dados (
TDataToXLS) ganha uma faixa de título e uma faixa de rodapé:Titlerenderiza uma linha mesclada com estilo em negrito acima do cabeçalho (comTitleFontpróprio eTitleColoropcional), eFooteracrescenta uma linha abaixo da última linha de dados ou de resumo ForEachFormattedCellem uma planilha percorre cada célula preenchida em ordem de linhas/colunas e entrega seu texto de exibição — com o formato de número aplicado — por meio de um retorno de chamada, pronto para indexação e extração de texto
Versão 2.298.0
Adicionado
- O exemplo ApiTour agora abre diretamente em uma demonstração ao vivo: um painel de vendas em memória com blocos de KPI, fórmulas
SUMIF/COUNTIFentre planilhas, barras de dados, uma escala de cores, um conjunto de ícones e dois gráficos é renderizado no visualizador de pasta de trabalho incorporado assim que o exemplo inicia, cada célula da grade permanece editável com recálculo instantâneo e formatos condicionais atualizados, e ações de um clique exportam a demonstração para PDF, HTML e CSV ou a entregam ao Excel com tempos de construção e exportação ao vivo - O exemplo ApiTour do C++Builder espelha a nova demonstração Delphi, o visualizador incorporado, a barra de fórmulas, as ações de exportação e o registro de atividades
Alterado
- Os exemplos ApiTour substituem as caixas de diálogo modais de resultado por um registro de atividades dentro da janela, enquanto o passo a passo clássico de criar, modificar e exportar mantém seu comportamento
Versão 2.297.0
Adicionado
- A exportação em PDF ganha um modo opcional
UseXRefStreamque produz arquivos PDF 1.5 com fluxos de objetos compactados e um fluxo binário de referência cruzada: objetos de dicionário pequenos viajam dentro de um único contêiner compactado com Flate e a tabela xref clássica e o trailer são substituídos por um fluxo compacto, reduzindo os documentos exportados enquanto o conteúdo da página permanece idêntico byte a byte
Versão 2.296.0
Adicionado
- O gravador direto em fluxo contínuo ganha um modo opcional
AutoSplitRows: uma linha além do limite da planilha (1048576) finaliza a planilha atual e continua em uma planilha recém-criada<name>_2,<name>_3…, de modo que exportações ilimitadas nunca emitem um índice de linha ilegal FillTableCalculatedColumnem uma planilha empurra a fórmula da coluna calculada de uma coluna de tabela para cada linha de dados, traduzida por linha e por célula como a própria edição do Excel faz, e então recalcula naturalmente
Versão 2.295.0
Alterado
- A exportação HTML de XLSX centraliza a estilização das células: combinações de estilo idênticas são emitidas uma única vez como classes
td.cNem uma folha de estilos em vez de um atributo inlinestylerepetido em cada célula, reduzindo a saída HTML para tabelas com estilo uniforme; as sobreposições visuais de formatação condicional permanecem inline para manter seu caráter por célula
Versão 2.294.0
Corrigido
- Referências estruturadas na forma de linha atual (
Table[@Col]) agora são avaliadas em relação à própria linha da célula da fórmula durante o recálculo, tanto no caminho de avaliação serial quanto no paralelo; anteriormente, toda fórmula desse tipo lia a linha 1 da coluna — normalmente o texto do cabeçalho — e o recálculo falhava imediatamente com um erro de conversão de tipo quando essa linha continha texto
Versão 2.293.0
Alterado
- O memo opcional
RecalcAggregateCacheagora também cobre agregações incondicionais de intervalo único —SUM,AVERAGE,MIN,MAX,COUNTeCOUNTAsobre um único intervalo simples de uma planilha — de modo que totais repetidos sobre o mesmo bloco reutilizam o resultado da primeira passada sob o mesmo limite de estabilidade de referência da família condicional
Versão 2.292.0
Adicionado
- Gerador de pasta de trabalho em código (
TXLSCodeGen): percorre uma pasta de trabalho e emite as instruções de origem que a reconstroem — criação de planilhas, valores de células, fórmulas, formatos de número, larguras de colunas e intervalos mesclados — em dialetos Delphi ou C++Builder, de modo que um arquivo criado manualmente se torna um exemplo de API pronto - Validador de importação por regras de coluna (
TXLSImportCheck): regras por coluna de obrigatoriedade, comprimento de texto, padrão regex e exclusividade, além de um retorno de chamada do chamador, executadas sobre as linhas de dados de uma planilha; violações podem ser anotadas de volta com fonte vermelha e um comentário de motivo, eKeepOnlyViolationscompacta a planilha para o cabeçalho mais as linhas com falha para uma pasta de trabalho "corrija e devolva"
Versão 2.291.0
Adicionado
- A importação CSV aceita um registro de opções: as sobrecargas de
OpenCSVaceitam a omissão de linhas iniciais (SkipRows, para faixas de título acima da grade) e a remoção de espaços em branco (AutoTrim) junto com os interruptores de separador e detecção de tipo FillMergedCellValuesem uma planilha copia o valor da âncora de cada intervalo mesclado para cada célula membro coberta, de modo que planilhas em estilo de relatório com rótulos mesclados sejam lidas como uma única grade planaAddListValidationganha uma sobrecarga de matriz de cadeias que une os itens em uma única lista suspensa em uma única chamada- A exportação de conjuntos de dados (
TDataToXLS) ganha listras zebra (AlternatingColor, pintadas nas linhas de detalhe ímpares) e uma linha de totais (SummaryRow) que acrescenta fórmulas reaisSUMpara os campos numéricos exportados ou uma lista de campos nomeada pelo chamador, com uma célula de legenda em negrito
Corrigido
- A exportação de conjuntos de dados agora aplica o plano de fundo
DetailColorconfigurado às células de detalhe; anteriormente, a propriedade era aceita, mas nunca pintada
Versão 2.290.0
Alterado
- O memo opcional
RecalcLookupCacheagora também cobre as varreduras exata e aproximada deVLOOKUP,HLOOKUPe os tipos de correspondência 0 e 1 deMATCH, de modo que pastas de trabalho que repetem essas buscas clássicas sobre o mesmo intervalo reutilizam o resultado da primeira varredura durante uma passada de recálculo sob o mesmo limite de segurança de estabilidade de referência deXLOOKUP/XMATCH
Versão 2.289.0
Adicionado
- O gravador direto em fluxo contínuo ganha um modo opcional
TrackColumnWidths: a planilha é encenada em memória enquanto as linhas fluem, de modo que o arquivo salvo carrega a dica de intervalo usado<dimension>e larguras por coluna dimensionadas para o texto de exibição mais longo visto (caracteres mais preenchimento, limitado a 255), aproximando o ajuste automático para exportações cujos dados só são conhecidos conforme fluem; larguras de coluna definidas explicitamente sempre vencem
Versão 2.288.0
Adicionado
- A abertura de pacotes XLSX tolera prefixos de namespace não canônicos: planilhas, gráficos, desenhos e partes de propriedades de documento que vinculam seus elementos a um namespace com prefixo diferente (ou estrito ISO 29500) são normalizados para o vocabulário padrão durante a análise, de modo que arquivos de geradores de terceiros e salvadores em modo estrito carregam corretamente
- Planilhas cujas células omitem o atributo de posição
rcolocam cada célula após sua predecessora na ordem de varredura, e linhas sem o atributorcontinuam a sequência de linhas — a convenção usada por vários gravadores em fluxo contínuo
Versão 2.287.0
Adicionado
Openlê pastas de trabalho do Excel 2.0/3.0/4.0 (BIFF2-4): fluxos BIFF brutos sem um invólucro OLE carregam com seus números, texto, booleanos, erros e resultados em cache de fórmulas; resultados de cadeia de fórmulas chegam pelo registro String BIFF2-4, e o registro de página de código do fluxo conduz a decodificação de texto
Alterado
- Documentos BIFF2-4 são lidos para valores — formatos de número e estilos dessas gerações não são modelados, então datas surgem como números seriais brutos e fórmulas como seus últimos valores calculados
Versão 2.286.0
Adicionado
- Formatos de número com seções de comparação (
[>=100],[<0], …) selecionam a seção por valor em todos os lugares onde o texto de exibição é renderizado, correspondendo ao comportamento de formatação condicional do Excel - Seções de texto de formato de número (
"ID:"@) aplicam o modelo a valores de cadeia em vez de ignorar o formato SetCellFromHtmlpreenche uma célula a partir de um fragmento HTML leve:<b>/<strong>,<i>/<em>,<u>,<br>e<font color=...>tornam-se execuções ricas; outras tags são descartadas enquanto seu texto é mantido- A marcação
TaggedTextaceita quebras de linha<br>, aliases<strong>/<em>, a forma de atributo<font color=...>e as entidades"/ - Blocos de manutenção juntos de colunas (
KeepColumnsTogether) interrompem quebras de página verticais dentro de um grupo de colunas, espelhando o recurso de nível de linha na paginação, na visualização e na saída em PDF - Controles de formulário clássicos Spinner e ScrollBar podem ser criados em arquivos XLS com configurações Min/Max/Inc/Page e uma célula vinculada, emitidos pelo subregistro OBJ FtSbs
WriteAutoValuereconhece datasm/d/yyyyed.m.yyyycom horas opcionais (incluindo AM/PM) além do formato ISO, rejeitando datas de calendário impossíveisConvertFormulasToValuesganha um modoOnlyExternalque congela apenas fórmulas que referenciam outras pastas de trabalho, e a fachada XLS clássica ganha o método de planilha inteira- O ajuste automático de linhas mede células mescladas em relação à largura combinada de suas colunas e distribui a altura necessária pelas linhas mescladas
Versão 2.285.0
Adicionado
- A exportação em PDF desenha gráficos de planilha como gráficos vetoriais nativos: colunas e barras agrupadas, empilhadas e com porcentagem empilhada, gráficos de linha com marcadores, gráficos de área, gráficos de pizza e rosca com rótulos de porcentagem, gráficos de dispersão e gráficos de radar — cada um com moldura intitulada, eixos com escala automática, rótulos de marcação, linhas de grade, legenda, rótulos de dados opcionais por ponto, preenchimentos sólidos por série e a paleta de destaque padrão do Excel; tipos de gráfico 3D são renderizados como sua projeção 2D
- Gráficos ancorados além da última célula agora estendem a superfície impressa, de modo que um gráfico colocado abaixo das linhas de dados ainda aparece na saída em PDF e na visualização em vez de ser cortado
Versão 2.284.0
Adicionado
- Cabeçalhos e rodapés em PDF renderizam os códigos de estilo do Excel:
&Bnegrito,&Iitálico,&U/&Esublinhado simples/duplo,&Stachado,&X/&Ysuper/subscrito,&nntamanho da fonte,&Kcor e palavras-chave de peso&"Font,Style" - A exportação em PDF respeita o modo de impressão em preto e branco da planilha, reduzindo preenchimentos, fontes, bordas, barras de dados e ícones a cinza de luminância
- Cabeçalhos de linha e coluna impressos (números de linha e letras de coluna) são renderizados ao lado da grade quando a planilha os solicita
- Centralização de impressão:
CenterHorizontally/CenterVerticallydeslocam a grade impressa entre as margens enquanto as faixas de cabeçalho e rodapé permanecem no lugar - Comentários de célula são impressos como um indicador de canto vermelho (modo como exibido) ou como uma página de listagem de comentários após a planilha por meio da nova propriedade
PrintCommentsAtEndda planilha, que faz ida e volta com o valor de configuração de páginacellComments="atEnd"do Excel - Hiperlinks internos (alvos
Sheet!Cell) tornam-se links GoTo clicáveis dentro do documento que saltam para a página da planilha de destino - O exportador expõe uma preferência de visualizador
PageLayoute grava um pacote de metadados XMP junto ao dicionário de informações do documento - Fontes de coleção TrueType (
.ttc) podem servir como a fonte Unicode incorporada; os cortes em negrito e itálico da face incorporada são sintetizados quando existe apenas uma face regular
Alterado
- Larguras de coluna são convertidas pela fórmula de largura máxima de dígito do Excel (métricas Calibri 11) em vez de uma estimativa fixa por caractere, de modo que as larguras em PDF e na visualização correspondem às larguras em pixels armazenadas pelo Excel
- Linhas quebradas são remensuradas a partir do primeiro caractere de cada linha, corrigindo linhas quebradas que ignoravam a largura de palavras movidas para baixo por uma quebra anterior
Versão 2.283.0
Adicionado
- A exportação em PDF quebra células
WrapTextcom quebra real de palavras, alinhamento horizontal linha por linha, alinhamento vertical de bloco e espaçamento justificado ou distribuído - A exportação em PDF renderiza texto de célula rotacionado por meio de matrizes de texto PDF, incluindo texto vertical empilhado, e respeita
ShrinkToFitreduzindo o tamanho da fonte até o valor caber - Texto PDF que transborda uma célula agora se estende por células vizinhas vazias e é recortado na primeira célula ocupada, correspondendo ao comportamento de impressão do Excel; o alinhamento geral alinha números à direita como o Excel
- A exportação em PDF desenha execuções de texto rico com estilo de fonte, tamanho, cor, sublinhado, tachado, sobrescrito e subscrito por execução; linhas quebradas mantêm a estilização por execução
- A exportação em PDF desenha bordas de célula diagonais e bordas duplas reais
- Texto que abrange células mescladas agora desenha, alinha, quebra e ancora hiperlinks em todo o retângulo mesclado, e membros mesclados cobertos não pintam mais seu próprio plano de fundo
Alterado
- As larguras de texto em PDF vêm de tabelas de avanço calibradas por caractere em vez de uma largura média fixa de caractere, de modo que alinhamento, quebra e redução correspondem à página impressa
- O recuo de célula desloca o texto como o Excel, e células com conjunto de ícones recuam seu valor ao lado do ícone
Versão 2.282.0
Adicionado
- A exportação em PDF preserva a transparência PNG: imagens com canal alfa agora emitem um plano de máscara suave em vez de perder a transparência, incluindo imagens de paleta com um bloco tRNS
Alterado
- Os fluxos de conteúdo de páginas PDF agora são compactados com Flate, reduzindo substancialmente os documentos exportados sem exigências de visualizador além de PDF 1.4
- A exportação em PDF agrupa operações de texto consecutivas em blocos de texto compartilhados e ignora a seleção redundante de fonte, tamanho e cor, reduzindo tanto o tamanho da saída quanto o tempo de geração
- Células adjacentes com o mesmo preenchimento sólido são renderizadas como um retângulo mesclado, e segmentos de borda colineares com o mesmo estilo são traçados como uma única passada em vez de bordas por célula
- Imagens PNG são incorporadas em PDF sem decodificação e recodificação, mantendo o fluxo compactado original e os pixels exatos
- Imagens com conteúdo idêntico em bytes são incorporadas uma única vez e compartilhadas, independentemente de quantos objetos de imagem as referenciem
Corrigido
- Anotações de hiperlink agora também são criadas para células de link cujo texto é renderizado pelo caminho de fonte Unicode incorporada
- Os bytes de conteúdo PDF não dependem mais da página de código ativa do sistema, de modo que o texto ocidental é renderizado de forma idêntica em qualquer localidade do Windows
Versão 2.281.0
Corrigido
- Os leitores de área de transferência não truncam mais o identificador de dados para 32 bits, o que fazia
XLSGetClipboardBiff8e o caminho de colagem de Planilha XML retornarem vazios em aplicações de 64 bits - Operações de área de transferência tentam abrir a área de transferência por até meio segundo quando outra aplicação a mantém, em vez de falhar na primeira contenção
Alterado
- Buscas de regras de formatação condicional (caminhos
FindAt/IndexOfCell) analisam o intervalo de células de cada regra uma única vez em vez de em cada célula consultada, correspondendo ao cache de validação de dados - A exportação em PDF constrói um índice de hiperlinks por planilha, substituindo a varredura linear por célula por uma busca binária
Versão 2.280.0
Adicionado
- Funções definidas pelo usuário podem ser registradas por nome:
RegisterUserFunctiondespacha fórmulas que chamam esse nome diretamente para seu manipulador (sem cadeia global de if em umOnUserFunction), com o evento da pasta de trabalho ainda servindo nomes não registrados ScanUnknownFunctionsaudita uma pasta de trabalho em busca de funções de fórmula que o mecanismo de cálculo não consegue avaliar, relatando cada célula e nome — ideal antes de habilitar o recálculo em arquivos estrangeirosRecoveryMode: uma parte de planilha estruturalmente danificada é ignorada com um diagnóstico de aviso em vez de abortar toda a abertura- Formato nativo de área de transferência BIFF8:
XLSSetClipboardBiff8/XLSGetClipboardBiff8publicam e leem o fluxoBiff8que o próprio Excel usa, de modo que a troca pela área de transferência mantém valores, fórmulas e formatação
Alterado
- A auditoria de validação de dados analisa o intervalo de células de cada regra uma única vez em vez de em cada célula, acelerando
CheckDataValidationsem planilhas grandes
Versão 2.279.0
Adicionado
- A exportação em PDF incorpora imagens da planilha: bitmaps PNG/GIF/BMP são convertidos em XObjects RGB compactados com Flate e arquivos JPEG passam intactos por DCTDecode (sem recompactação); imagens idênticas em várias páginas compartilham um único objeto, e imagens adicionadas sem tamanho explícito agora usam suas dimensões em pixels a 96 DPI por padrão
- Blocos de manutenção juntos:
KeepRowsTogetherimpede que a paginação de impressão/PDF quebre dentro de um bloco de linhas que cabe em uma página, eXlsxAutoPageBreakstransforma os limites naturais de página (conscientes de manutenção) em quebras de linha explícitas para que o Excel pagine como a exportação - Compactação XLSX configurável:
ZipCompressionLevelseleciona o nível deflate para salvamentos (-1 padrão até 9) - Salvamentos reproduzíveis:
DeterministicOutputfixa os carimbos de data/hora das entradas zip para que salvar a mesma pasta de trabalho duas vezes produza arquivos idênticos byte a byte
Corrigido
- Arquivos compostos corrompidos com cadeias FAT cíclicas não travam mais o carregador .xls clássico — as travessias de cadeias de diretório e fluxo carregam proteções contra ciclos
Versão 2.278.0
Adicionado
- A exportação em PDF emite anotações de link clicáveis para hiperlinks da planilha: células que carregam uma URL recebem um retângulo /Link invisível com uma ação URI sobre a área da célula
- A exportação em PDF grava um contorno de documento (marcadores): cada planilha exportada torna-se um marcador apontando para sua primeira página renderizada
Versão 2.277.0
Adicionado
- A validação de dados ganha uma API de auditoria:
CheckDataValidationsvarre as células preenchidas em relação às regras da planilha (associação de lista, limites de inteiro/decimal/data/hora, comprimento de texto, fórmulas personalizadas por meio da calculadora) e relata cada célula violadora com o índice da regra e um motivo - Propriedades personalizadas de documento tipadas fazem ida e volta por meio de
docProps/custom.xml: entradas de texto, número, data e booleano emWorkbook.CustomProperties - Partes de dados XML personalizados fazem ida e volta por meio de
Workbook.CustomXmlPartscom relacionamentos e tipos de conteúdo no nível da pasta de trabalho - Imagens aceitam um acompanhante SVG:
AddImagePairarmazena os bytes SVG ao lado do fallback raster, grava a extensãosvgBlipe a parte de mídia extra que o Excel 2016+ consome - Gráficos podem originar o texto de rótulos de dados de um intervalo de células (“Value From Cells”) por meio de
DataLabelsRange, emitido como a extensão do gráfico e recuperado ao abrir - Estilos de tabela personalizados:
Workbook.CustomTableStylesdefine estilos nomeados com seções coloridas/em negrito (linha de cabeçalho, linha de totais, listras, colunas de borda), gravados emtableStylescom seus próprios estilos diferenciais para que as tabelas possam referenciá-los por nome
Versão 2.276.0
Adicionado
- Preenchimentos de gradiente de célula: varreduras lineares por grau e gradientes de trajeto com cores por parada fazem ida e volta por meio de
gradientFill, são renderizados como gradientes CSS na exportação HTML, preenchimentos interpolados por faixa na exportação em PDF e no visualizador de pasta de trabalho, e são oferecidos por meio da conveniênciaTXLSXFills.AddLinearGradient - Formatos de número de tempo decorrido (
[h]:mm:ss,[mm]:ss,[s]) agora renderizam totais acumulados em vez de girar como um relógio, em todos os caminhos de exibição (FormattedText, HTML, PDF, valores de formatação condicional) - Formatos de número de fração (
# ?/?,# ??/??, denominadores fixos como0/8) renderizam com a melhor aproximação racional do Excel, incluindo ocultação de zero inteiro e espaçamento de alinhamento - Colchetes de cor no estilo
[Red]agora aparecem por meio deTXLSXCell.GetFormattedTextColore repintam o texto da célula na exportação em PDF TXLSXWorkbook.ValidateNumberFormatverifica uma cadeia de formato personalizado do mesmo modo que a caixa de diálogo Formatar Células do Excel — contagem de seções, equilíbrio de aspas e conteúdo de colchetes (cores, condições, unidades decorridas, diretivas de localidade)- O estado de painéis congelados pode ser lido de volta por meio de
GetFrozenPanes, e a posição de rolagem do painel inferior direito faz ida e volta por meio deSetPaneScroll/GetPaneScroll(gravado comotopLeftCell) - O alternador de exibição de cabeçalhos de linha/coluna
DisplayRowColHeadersfaz ida e volta por meio deshowRowColHeaders - Gráficos expõem
DispBlanksAs(lacuna / estender / zero) ePlotVisibleOnlyem vez de codificá-los fixos, e recuperam ambos do ChartML preservado ao abrir - Comentários carregam geometria de caixa editável (
WidthPt/HeightPt, pontos VML) além de uma heurísticaAutoSizeFromTextorientada por texto
Versão 2.275.0
Adicionado
- Localizar e substituir entende os curingas do Excel:
*(qualquer sequência de caracteres),?(exatamente um caractere) e~como escape para um*,?ou~literal — a mesma semântica que o próprio Excel aplica em Localizar e Substituir, nos critérios da famíliaCOUNTIFe nos autofiltros - O
FindTextde planilha XLSX ganha uma sobrecarga de opções: corresponder maiúsculas/minúsculas, corresponder o conteúdo inteiro da célula, pesquisar o texto da fórmula além dos valores, modo curinga e varredura para trás, com uma âncora inicial para que chamadas repetidas percorram as correspondências ReplaceTextganha o mesmo conjunto de opções além de um retorno de chamada opcional por correspondência que pode aceitar, reescrever, pular ou abortar cada célula de substituição, célula por célula- O
FindText/ReplaceTextclássico de planilha XLS ganham sobrecargas de curinga e de célula inteira, de modo que ambas as fachadas compartilham a semântica de pesquisa do Excel GetRangeStatisticsvarre um retângulo e relata mínimo, máximo, soma, média, contagem de valores numéricos e contagem de células preenchidas em uma única passadaWriteAutoValuegrava texto do modo como a entrada de célula do próprio Excel o interpreta:TRUE/FALSEtornam-se booleanos, literais de erro como#N/Atornam-se valores de erro, datas ISO inequívocas tornam-se datas, números em formato invariante simples tornam-se números, e tudo o mais — incluindo zeros à esquerda e separadores de milhares — permanece texto (ambas as fachadas)GetHtmlFromCellrenderiza uma célula como um fragmento HTML estilizado com marcação escapada, complementando a exportação HTML de planilha inteiraSortRangeaceita um sinalizador de não diferenciar maiúsculas de minúsculas para que chaves de texto se ordenem alfabeticamente independentemente da caixa (fachada XLSX)
Versão 2.274.0
Adicionado
- Tabelas do Excel agora fazem ida e volta de tabelas sem cabeçalho e de comentários por tabela por meio das novas propriedades de tabela
HasHeaderRoweComment, gravadas comoheaderRowCount="0"e o atributocomment - Gráficos podem selecionar um estilo de galeria do Excel por meio da nova propriedade
ChartStyle(1–48 ou a faixa estendida 101–148), com ida e volta pelo elemento de estilo da parte do gráfico - Gráficos de combinação podem controlar o empilhamento da área de plotagem por meio de uma nova propriedade
ZOrderem cada grupo de plotagem, de modo que uma série de colunas possa renderizar atrás ou na frente de uma série de linhas - Planilhas e células individuais podem congelar fórmulas em seus valores calculados por meio de
ConvertFormulasToValueseConvertFormulaToValue, mantendo o resultado em cache enquanto descartam a fórmula, o link de fórmula compartilhada e os metadados de matriz - Nomes definidos agora carregam um comentário opcional por meio da nova propriedade
Commentde nome, com ida e volta pelo registro clássico de comentário de nome e pelo atributocommentde nome definido XLSX - A exportação em PDF aceita dimensões de papel personalizadas em pontos por meio das novas propriedades
PaperWidthePaperHeight, substituindo a enumeração de tamanho de papel para cada planilha renderizada - A exportação em PDF pode suprimir a faixa de cabeçalho ou de rodapé por meio do novo conjunto
HidePrintObjects - Os códigos de campo de cabeçalho e rodapé em PDF
&F(nome do arquivo) e&Z(caminho) agora são expandidos usando o caminho da pasta de trabalho de origem capturado pelas exportações baseadas em arquivo - Barras de dados suportam uma cor de borda de valor negativo independente por meio das novas configurações
NegativeBorderColoreNegativeBarBorderColorSameAsPositive, emitidas na extensão de barra de dados do Excel 2010+ - Estilos de célula internos cujos identificadores não têm um slot de registro legado (Hyperlink, Title, Headings, Accents, Good/Bad/Neutral, …) agora resolvem seus nomes de exibição canônicos ao salvar, de modo que a galeria de Estilos do Excel sobrevive a uma ida e volta
- Pastas de trabalho criptografadas com Agile agora carregam um bloco
dataIntegrityreal: o gravador emite um HMAC em conformidade com a especificação sobre o pacote criptografado completo, e a abertura o verifica, detectando senha errada ou pacote adulterado; arquivos de gravadores sem o bloco ainda abrem inalterados - Pastas de trabalho clássicas suportam a reserva de gravação “senha para modificar” do Excel por meio de
SetModifyPassword(sinalizador recomendar somente leitura, hash de senha legado e nome de usuário reservador emitidos como o par de registros WRITEPROT + FILESHARING);IsWriteReservedrelata o estado e uma senha vazia o limpa - Um memo opcional
RecalcLookupCacheacelera o recálculo pesado de buscas: varreduras repetidas deXLOOKUP/XMATCHsobre o mesmo intervalo reutilizam o resultado da primeira varredura. O memo entra em ação apenas quando o grafo de dependências é comprovadamente estável quanto a referências (semOFFSET/INDIRECTou referências irresolvíveis, sem cadeias circulares, sem tabelas de dados de What-If) e permanece silenciosamente desligado caso contrário, de modo que os resultados são sempre idênticos - Um memo companheiro
RecalcAggregateCacheacelera o recálculo de agregações condicionais: varreduras repetidas deSUMIF/COUNTIF/AVERAGEIFsobre o mesmo intervalo e critérios reutilizam o primeiro resultado, sob o mesmo limite de estabilidade de referência e com resultados idênticos - Expressões
LAMBDAavaliam com fechamentos completos: um nome definido cujo RefersTo é umLAMBDApode ser chamado pelo nome com argumentos (=MyFunc(5)), fechamentos fazem ligação lexical dentro deLET(=LET(f, LAMBDA(x, x*2), f(21))), parâmetros obscurecem referências de coluna com a mesma grafia, e o texto da fórmula faz ida e volta verbatim; umLAMBDApuro armazenado como resultado de célula mantém o comportamento de ignorar sem valor LETagora tem semântica completa: cada ligação é visível para ligações posteriores e para a expressão do corpo, incluindo composição aninhada deLET— substituindo a implementação parcial anterior- O texto de fórmula agora aceita a vírgula como separador de argumentos junto com o ponto e vírgula clássico, correspondendo à sintaxe canônica do Excel para fórmulas coladas e importadas
- Referências estruturadas em fórmulas agora avaliam:
Table[Column],Table[[Column]], intervalos de colunas e as formas de item[#Data]/[#All]/[#Headers]/[#Totals]resolvem em relação às tabelas do Excel da pasta de trabalho no momento da análise, de modo que=SUM(Table1[Amount])calcula enquanto o texto original da fórmula ainda faz ida e volta verbatim; referências irresolvíveis mantêm o comportamento anterior de ignorar sem valor e as formas de linha atual ([@Column]) permanecem sem suporte
Alterado
- Quando uma pasta de trabalho desativa a precisão total, resultados recalculados agora são armazenados arredondados ao número de casas decimais mostrado pelo formato de número de cada célula, correspondendo ao comportamento de “precisão como exibida” do Excel para valores calculados pelo HotXLS
- Regras de formatação condicional gravadas em XLSX agora recebem prioridades exclusivas por planilha, eliminando arquivos de prioridade duplicada que faziam o Excel solicitar reparo
- Formatos condicionais sinalizados como com escopo de Tabela Dinâmica por meio da nova propriedade
IsPivotsão roteados para o bucket de extensão em vez do bloco principal de formatação condicional da planilha, onde o Excel os descartaria ou colocaria no lugar errado
Versão 2.273.0
Alterado
TXLSXWorkbook.PreserveRawPartsagora copia imagens de planilha inalteradas, imagens de cabeçalho e rodapé e partes de gráfico com suas cargas compactadas originais, enquanto edições de dados de imagem e edições de modelo de gráfico seguem o caminho de serialização- Um SaveAs de arquivo bem-sucedido agora aceita o pacote confirmado como a próxima linha de base de cópia bruta, permitindo que salvamentos subsequentes reutilizem dados opacos recém-serializados, VBA, conexões, links externos, imagens, gráficos, temas e cargas de tabela dinâmica sem reabrir o pacote de origem anterior
Corrigido
- Relacionamentos desconhecidos de planilha e desenho de pacotes com locais de parte não padronizados agora são rebasados em relação aos seus proprietários canônicos gerados, incluindo pacotes somente de desenho cujas únicas âncoras são formas não suportadas preservadas
- Uma cópia de membro compactado com falha agora reverte seu cabeçalho local parcial, bytes de carga, entradas de pastas pai e a contagem do diretório central antes do fallback seguro de serialização, impedindo que dados inalcançáveis se acumulem no arquivo de saída
Versão 2.272.0
Alterado
- O SaveAs de XLSX agora abre um arquivo de origem validado para toda a operação de salvamento e copia cada parte opaca inalterada acessível por relacionamento com sua carga compactada original, evitando varreduras repetidas do diretório central além de descompactação e recompactação, enquanto cargas modificadas ainda seguem o caminho de serialização
Corrigido
- Relacionamentos desconhecidos de pasta de trabalho de pacotes cuja pasta de trabalho usa um nome de parte não padronizado agora são rebasados em relação à localização da pasta de trabalho gerada, impedindo que suas partes de destino preservadas se tornem inalcançáveis após o SaveAs
- Leituras diretas projetadas agora retêm definições de mestre de fórmula compartilhada fora do conjunto selecionado de linhas ou colunas, de modo que células seguidoras selecionadas ainda recebam suas fórmulas traduzidas corretamente sem reconstruir valores não selecionados ou texto rico
- Editar um gráfico não remove mais um formato de número de eixo não modelado meramente porque a autoria de formato de número de rótulo de dados usa um elemento com o mesmo nome local
Versão 2.271.0
Corrigido
- O exportador HTML clássico agora grava UTF-8 e o declara com um
<meta charset>além de um doctype HTML5; anteriormente o fluxo era gravado na página de código ANSI do sistema, corrompendo qualquer valor de célula não ASCII, e a declaração de charset ausente deixava a página à mercê do navegador
Versão 2.270.0
Adicionado
- Rótulos de dados de gráfico agora podem carregar um formato de número explícito e um posicionamento por meio das novas propriedades de série
LabelNumFmteLabelPos(com seus sinalizadores*Set), emitidos como<c:numFmt>e<c:dLblPos>tanto no gravador padrão quanto no de gráficos de combinação — habilitando texto de rótulo de porcentagem ou moeda e posições de rótulo como fora da extremidade ou centro; qualquer uma das configurações isoladamente também ativa o bloco de rótulos, e séries não configuradas permanecem idênticas byte a byte
Versão 2.269.0
Adicionado
- Séries de gráficos de linha e dispersão agora podem carregar um símbolo de marcador e um tamanho explícitos por meio das novas propriedades
MarkerSymbol,MarkerSizeeMarkerSet, emitidas como o bloco<c:marker>da série tanto no gravador padrão quanto no de gráficos de combinação; séries não configuradas mantêm marcadores automáticos - Eixos de valor com unidades de exibição agora podem mostrar o rótulo de unidade (“Thousands”, “Millions”, …) por meio da nova propriedade de eixo
ShowDispUnitsLabel
Versão 2.268.0
Adicionado
- Linhas de tendência de gráfico XLSX agora suportam um intercepto fixo além de períodos de previsão para frente e para trás por meio das novas propriedades
Intercept/InterceptSet,ForwardeBackward, emitidos como<c:intercept>/<c:forward>/<c:backward>; anteriormente apenas o construtor clássico de gráficos BIFF oferecia esses controles, e linhas de tendência não configuradas permanecem idênticas byte a byte
Versão 2.267.0
Adicionado
- O cálculo de fórmulas agora avalia as funções de números complexos
IMCOS,IMSIN,IMTAN,IMSEC,IMCSC,IMCOT,IMLOG2eIMLOG10, completando a família de engenhariaIM*com cobertura trigonométrica, recíproca e de logaritmos de base 2/base 10 sobre operandos de cadeia complexos
Versão 2.266.0
Alterado
- O leitor direto em fluxo contínuo agora aplica a projeção de colunas antes de acumular valores de células: quando um conjunto de colunas projetado é configurado, células fora dele ignoram a construção de valor, fórmula e cadeia de texto rico que anteriormente era executada para cada célula e descartada no fim da célula, acelerando leituras de planilhas largas que projetam apenas algumas colunas
Versão 2.265.0
Adicionado
- Grupos de plotagem de gráficos de barras e colunas agora expõem um modo de agrupamento configurável (
clustered,stacked,percentStacked), uma largura de lacuna de cluster e uma sobreposição de séries por meio das novas propriedadesBarGrouping,GapWidtheOverlap; anteriormente todo gráfico de barras/colunas era codificado comoclusteredsem controle de lacuna ou sobreposição, e grupos não configurados permanecem idênticos byte a byte enquanto a lista de mesclagem de edição-após-abrir trata os novos elementos como de propriedade
Versão 2.264.0
Corrigido
- Bordas de célula em PDF agora refletem o estilo e a espessura de borda da planilha em vez de toda borda ser desenhada como uma linha sólida idêntica de 0.75 pt: células XLSX renderizam espessuras fina, média, grossa, cabelo e dupla e padrões tracejado, pontilhado, traço-ponto, traço-ponto-ponto e traço-ponto inclinado, e células BIFF renderizam estilos fina, média e tracejado/pontilhado
Versão 2.263.0
Adicionado
- A exportação em PDF agora pode incorporar metadados de documento por meio das novas propriedades
DocumentTitle,DocumentAuthor,DocumentSubjecteDocumentKeywords; quando qualquer uma é definida, o PDF carrega um dicionário/Infocom esses campos além de uma identidadeCreator/Producere umCreationDate, enquanto exportações padrão sem metadados permanecem idênticas byte a byte
Versão 2.262.0
Corrigido
- A exportação CSV não cita demais os campos mais: um espaço interno não força mais aspas, de modo que valores como
John Smithsão gravados sem aspas, correspondendo à RFC 4180 e ao Excel; campos com o delimitador, uma aspa dupla, uma quebra de linha ou espaços iniciais ou finais ainda são citados como antes
Versão 2.261.0
Adicionado
- Cada série de gráfico agora pode carregar uma cor de preenchimento sólido por meio da nova propriedade
SolidFillHex, emitida como as propriedades de forma<c:spPr>da série; atribuir uma cor hex carimba a série com uma cor de marca ou paleta em vez da cor de tema automática do Excel, enquanto séries não configuradas permanecem idênticas byte a byte e a lista de mesclagem de edição-após-abrir trataspPrcomo de propriedade para que ela substitua em vez de duplicar
Versão 2.260.0
Alterado
- O back-end esparso de armazenamento de células agora cresce cada buffer de bloco de 256 linhas geometricamente (dobrando) em vez de realocar a cada célula anexada, removendo o custo quadrático de cópia ao carregar planilhas densas
Versão 2.259.0
Corrigido
- Registros de proteção de objeto de planilha BIFF8 (
OBJECTPROTECT) e proteção de cenário (SCENARIOPROTECT) agora são lidos de volta para o estado de proteção da planilha, de modo que os sinalizadores de bloqueio sobrevivem a uma ida e volta em vez de serem gravados e perdidos ao recarregar - Registros de globais de pasta de trabalho BIFF8
MMS,RefreshAlleUseSelFSagora são preservados por meio de ida e volta em vez de serem silenciosamente descartados
Versão 2.258.0
Adicionado
- O texto de exibição formatado agora reconhece as diretivas de cor
[Cyan]e[Magenta]e as diretivas de paleta indexada[Color1]a[Color8], de modo que a saída formatada no estilo HTML aplica essas cores em vez de descartá-las
Versão 2.257.0
Adicionado
- O cálculo de fórmulas agora avalia as funções de engenharia e matemática
FACTDOUBLE,SQRTPI,DELTA,GESTEP,SERIESSUMeCONVERT, comCONVERTcobrindo unidades de massa, distância, tempo, pressão, força, energia, potência, magnetismo, temperatura e volume e rejeitando categorias de unidades incompatíveis
Versão 2.256.0
Corrigido
- O texto de exibição formatado agora renderiza minutos corretamente em máscaras de hora como
hh:mm,mm:sse[h]:mm:ss; anteriormente omm(mês) do Delphi era usado, de modo que campos de minutos mostravam o número do mês - Diretivas de localidade e moeda como
[$-409]e[$$-1009]agora são removidas da saída formatada em vez de vazarem como um prefixo literal$-409, enquanto um símbolo de moeda presente na diretiva é preservado
Versão 2.255.0
Adicionado
- A leitura de pacotes ZIP agora entende arquivos ZIP64, analisando o campo extra de informações estendidas e o registro e localizador de fim de diretório central ZIP64, de modo que pastas de trabalho cujas partes ou deslocamentos excedem os limites clássicos de 4 GB / 65535 entradas abrem corretamente em vez de falhar na verificação de sanidade do fim de diretório central
Versão 2.254.0
Segurança
- A verificação de senha de pastas de trabalho criptografadas agora compara o hash verificador em tempo constante tanto para a Criptografia Agile quanto para a Criptografia Padrão, fechando um canal lateral de tempo que poderia revelar quantos bytes iniciais do hash de senha correspondem
- A criptografia Agile não recorre mais a um gerador pseudorrandômico semeado por tempo para sais, verificadores e chaves intermediárias quando o CSPRNG do sistema está indisponível; agora ela falha de forma fechada em vez de emitir material de chave previsível
Versão 2.253.0
Adicionado
- O cálculo de fórmulas agora avalia as funções de remodelagem de matriz do Excel 365
VSTACK,HSTACK,TOROW,TOCOL,WRAPROWS,WRAPCOLS,TAKE,DROP,CHOOSECOLS,CHOOSEROWS,EXPAND,RANDARRAYeTEXTSPLIT, transbordando seus resultados pelo mecanismo existente de matrizes dinâmicas - O cálculo de fórmulas agora avalia as funções de texto modernas
TEXTBEFOREeTEXTAFTERcom manipulação de número de ocorrência, insensibilidade a maiúsculas/minúsculas, correspondência de fim e não encontrado - O cálculo de fórmulas agora avalia
RANDBETWEEN,ISEVEN,ISODDe o aliasFORECAST.LINEARdeFORECAST
Versão 2.252.0
Adicionado
- Nomes definidos carregam um comentário opcional, fazendo ida e volta como o registro BIFF8 NAMECMT e o atributo
commentdedefinedNamedo OOXML - Os alvos de hiperlinks de arquivos locais são normalizados (conversão de barra invertida para barra, prefixos
file://efile:///, codificação percentual de caracteres reservados) para que o Excel os armazene verbatim - Os tipos de preenchimento de formas, imagens e caixas de texto (sólido, imagem, gradiente, nenhum, automático) agora são tipados sobre a propriedade bruta de tipo de preenchimento e fazem ida e volta fielmente
- As barras de dados de formatação condicional suportam cores de borda de valor negativo independentes do Excel 2010+
- Os campos de cache de tabela dinâmica fazem ida e volta da vinculação de agrupamento de datas e numérico em vários níveis
- Os retornos de chamada de funções definidas pelo usuário recebem um descritor de tipo de argumento para que os manipuladores possam distinguir valores literais, referências de célula ou faixa e constantes de matriz
- A compilação de fórmulas aceita nomes de funções localizados (alemão, francês, espanhol), reescritos para o inglês canônico antes da análise léxica
- Os auxiliares de senha e criptografia expõem constantes nomeadas de código de retorno
Alterado
- Os salvamentos de pacote e XLSX agora passam por buffers deflate maiores com um nível de memória de compressão mais alto e ignoram uma passada redundante de soma de verificação sobre bytes já compactados, reduzindo o uso de CPU e o tempo real de salvamento
- O crescimento interno de construtores de cadeias, listas e tabelas de hash agora usa alocação geométrica (duplicação) junto com um ponto de redimensionamento de hash anterior, reduzindo a rotatividade de alocação e o custo de pesquisa quando uma pasta de trabalho carrega muitos estilos, nomes, faixas definidas ou cadeias compartilhadas
- As pesquisas na tabela de cadeias compartilhadas agora comparam os bytes armazenados diretamente antes de materializar uma cadeia completa, reduzindo as alocações de pesquisa em tabelas grandes de cadeias compartilhadas
Versão 2.251.0
Corrigido
- A abertura e o salvamento de XLSX agora retêm declarações de namespace estrangeiras da raiz da pasta de trabalho, atributos de compatibilidade de marcação, cargas
<extLst>completas no nível da pasta de trabalho e seus relacionamentos desconhecidos ao regenerar o estado tipado da pasta de trabalho; as referênciasr:idpreservadas acompanham a reatribuição do ID de relacionamento em vez de ficarem obsoletas quando entram em conflito com relacionamentos gerados de planilha ou pasta de trabalho
Versão 2.250.0
Alterado
- As entradas de linhas esparsas de XLSX agora armazenam apenas sua coluna e o identificador estável de célula, eliminando tags de carga não utilizadas além de classificação redundante e uma segunda pesquisa de índice de linha sempre que um valor de célula, fórmula ou objeto de texto rico muda
Versão 2.249.0
Adicionado
- As sobrecargas de
TXLSRTFImport.LoadFromRTFeTXLSWorksheet.OpenRTFpodem importar tabelas ou listas de parágrafos em uma linha e coluna de destino explícitas baseadas em um, enquanto as sobrecargas originais continuam a começar em A1
Alterado
- Os gravadores tipados de linhas de XLSX agora anexam lotes estritamente progressivos diretamente a vetores esparsos de linhas pré-dimensionados, e a pesquisa esparsa de células resolve acertos de primeira e última coluna sem busca binária, enquanto gravações de sobreposição mantêm seu caminho de substituição existente e identificadores estáveis de células
Corrigido
- A cópia bruta de partes de XLSX com suporte em arquivo e o carregamento seletivo de planilhas agora usam uma identidade privada do arquivo de origem com validação de tamanho e carimbo de data/hora, para que uma abertura posterior de fluxo ou uma atribuição pública de
FileNamenão possa redirecionar partes preservadas para outra pasta de trabalho RefreshPivotCacheagora alterna caches atualizados para serialização tipada para que registros reconstruídos não possam ser sobrescritos por bytes brutos obsoletos do pacote durante o salvamento- A cópia bruta de ZIP compactado agora exige que o fluxo de origem contenha exatamente a contagem declarada de bytes compactados, rejeitando entradas truncadas e longas demais antes do registro no diretório central
- Reutilizar um único importador RTF agora redefine o estado do analisador de página de código e formato de caracteres entre documentos para que negrito, itálico, sublinhado, tachado e tamanho de fonte não possam vazar para a próxima importação
- As aberturas de XLSX
MetadataOnlyagora evitam cargas opacas alcançáveis de cadeias compartilhadas, pessoas, relacionamentos de planilha, comentários, desenhos, gráficos, tabelas, tabelas de consulta, tabelas dinâmicas e planilhas, mantendo propriedades da pasta de trabalho, nomes, estados de planilha, estilos, tema, conexões e links externos
Versão 2.248.0
Alterado
- O SaveAs de XLSX agora copia brutas partes inalteradas de
connections.xmldo pacote de origem quando o modelo de conexão analisado não mudou, preservando a fidelidade do XML de origem e evitando descompactação e recompactação desnecessárias, enquanto ainda reescreve conexões editadas a partir do modelo tipado
Versão 2.247.0
Alterado
- O SaveAs de XLSX agora copia brutas partes de XML e relacionamentos de links externos inalteradas do pacote de origem quando o modelo analisado não mudou, preservando XML de extensão desconhecida e evitando descompactação e recompactação desnecessárias, enquanto ainda reescreve links editados a partir do modelo tipado
Versão 2.246.0
Adicionado
- As sobrecargas de
TXLSHTMLImport.LoadFromHTMLpodem importar em uma linha e coluna de destino baseadas em um, selecionar uma tabela de nível superior baseada em zero ou todas as tabelas e analisar números com um separador decimal explícito sem alterar as configurações globais de formato
Alterado
- O carregamento de estilos de XLSX agora resolve cada estilo de célula por meio de uma matriz cellXf imutável compartilhada em vez de construção repetida de chaves de cadeia e pesquisas lineares em mapas, reduzindo o tempo de abertura de pastas de trabalho com estilo e as alocações temporárias
Corrigido
- Os bytes modificados do projeto VBA agora ignoram a cópia bruta de partes preservadas para que salvar uma pasta de trabalho editada habilitada para macros não possa restaurar a carga original de
vbaProject.bin - A cópia bruta de membros ZIP agora rejeita métodos de compressão diferentes de STORE e DEFLATE em vez de emitir um cabeçalho de compressão incompatível, permitindo que os chamadores usem caminhos seguros de descompactação e reescrita de fallback
- A importação HTML agora ignora tags de linha e célula fora das tabelas de nível superior e preserva o comportamento estabelecido de todas as tabelas das sobrecargas originais
Versão 2.245.0
Adicionado
- Células editáveis do
TXLSWorkbookViewercom entrada ciente de células protegidas, entrada e recálculo de fórmulas, seleção retangular de faixas, escolha de referências de fórmula e histórico circular limitado de desfazer e refazer TXLSPivotDesignerfornece um modelo reutilizável não visual de lista de campos com zonas de linha, coluna, filtro e valor, movimento determinístico de campos, seleção de agregação, validação de layout e aplicação de resultados- Pastas de trabalho XLS clássicas agora fornecem diagnósticos de
CalculateAndVerifycom registros compartilhados de incompatibilidade contendo identidade da planilha, coordenadas de células baseadas em um, valores em cache e recém-calculados e texto da fórmula - Planilhas XLS e XLSX clássicas agora fornecem gravadores tipados de números, cadeias e variantes de linhas e colunas com coordenadas baseadas em um, recorte nos limites da grade, gravações diretas no modelo de células e uma contagem de gravações retornada
Alterado
- A pintura do visualizador de XLSX agora preserva planilhas esparsas evitando a materialização de células em branco durante a repintura e a resolução de estilos
TXLSXWorksheet.ReplaceTextagora visita as células armazenadas diretamente em tempo linear, sem copiar e classificar a coleção completa de células
Corrigido
- A leitura e a gravação de RC4 e RC4 CryptoAPI de XLS clássico agora preservam todo corpo de registro em texto simples exigido por
[MS-XLS], mantêmBoundSheet8.lbPlyPosnão criptografado, consomem posições correspondentes do fluxo de chave e ativam a descriptografia antes de ler o primeiro registro criptografado apósFILEPASS - A serialização de SpreadsheetML agora aplica o codec simétrico
_xHHHH_apenas a campos Xstring, enquanto fórmulas e sintaxe de referências usam escape XML comum para que literais em formato de token retenham seu significado exato de fórmula
Versão 2.244.0
Adicionado
- Importação de área de transferência em vários formatos:
XLSPasteFromClipboardRichprefere o formato de área de transferência XML Spreadsheet (que carrega fórmulas, estilos e mesclagens) em vez de texto Unicode simples, comXLSClipboardHasXmlSpreadsheet,XLSGetClipboardXmlSpreadsheeteXLSParseXmlSpreadsheetpara detecção de formato, extração e análise de SpreadsheetML 2003
Versão 2.243.0
Adicionado
- Nomes definidos externos:
TXLSXExternalLinkagora analisa, armazena e faz ida e volta das entradas de<definedNames>(nome + refersTo) de links de pastas de trabalho externas, com acesso aAddDefinedName,FindDefinedNameeDefinedNames[]indexado - Estado de falha de atualização por planilha: cada
TXLSXExternalSheetDatacarrega um sinalizadorRefreshErrorque registra se a última tentativa de atualização falhou, analisado do atributorefreshErrore emitido para ele
Versão 2.242.0
Adicionado
TXLSXWorkbook.PreserveRawPartscopia a representação compactada de partes inalteradas (tema, projeto VBA, tabelas dinâmicas e caches de tabelas dinâmicas) diretamente do arquivo de origem durante o SaveAs, evitando descompactação e recompactação de entradas opacas preservadas
Versão 2.241.0
Adicionado
- A propriedade
TXLSXWorkbook.SelectedSheetspermite o carregamento seletivo de planilhas: Open analisa o XML de células apenas para as planilhas nomeadas na lista, enquanto as outras planilhas mantêm seus nomes e estados de visibilidade com zero células. ChameLoadSheet(Index)para materializar uma planilha ignorada sob demanda a partir do arquivo original
Versão 2.240.0
Adicionado
- O modo de abertura
TXLSXWorkbook.MetadataOnlyanalisa propriedades da pasta de trabalho, nomes definidos, nomes e estados de visibilidade de planilhas, estilos, tema, conexões e links externos, mas ignora todo o XML de células de planilhas e as partes satélites para descoberta rápida de propriedades e nomes em pastas de trabalho grandes
Versão 2.239.0
Adicionado
- Armazenamento compacto de células em blocos de 256 linhas com identificadores públicos estáveis, serialização amigável ao cache em ordem de linhas e compactação de estilos em todos os pools da pasta de trabalho antes de cada salvamento
- Sobreposições de estilo por intervalo permitem que a formatação de linhas, colunas e retângulos permaneça compacta sem materializar objetos de células vazias, resolvem lentamente no acesso à célula, sobrevivem a edições estruturais e fazem ida e volta como entradas compactas de coluna, linha e células somente de estilo
Alterado
- O salvamento normal de pasta de trabalho agora transmite cada linha de planilha diretamente para o fluxo deflate do pacote, de modo que o pico de memória acompanha a maior linha individual em vez do XML completo da planilha
- Cadeias compartilhadas e partes XML auxiliares agora transmitem uma entrada por vez por meio de um único serializador UTF-8 reutilizável, limitando o pico de memória pela maior entrada em vez da parte inteira
Versão 2.238.0
Adicionado
TXLSPaginationModelconstrói páginas lógicas reutilizáveis para faixas, planilhas e pastas de trabalho XLS e XLSX com geometria do papel, margens, cabeçalhos, rodapés, faixas de linhas e colunas, títulos repetidos, ordem de páginas, política de linhas de grade e posicionamentos de desenhosTXLSWorkbookVieweragora fornece visualização de impressão de modelo compartilhado, navegação de páginas por teclado e roda de rolagem, acesso aoPaginationModelem cache,RefreshPaginationexplícito e saída EMF de página selecionadaTXLSPDFExport.CreatePaginationModelexpõe o modelo de páginas exato de propriedade usado pela contagem e renderização de PDF para todos os seis tipos de entrada XLS e XLSX
Alterado
- A exportação em PDF e a contagem de páginas agora consomem um único mecanismo de paginação em vez de manter loops de páginas XLS e XLSX separados
- O dimensionamento de ajustar à largura e à altura agora é resolvido contra as faixas reais de páginas, incluindo quebras manuais e títulos repetidos, dentro da faixa de escala de 10% a 400% do Excel
Versão 2.237.0
Adicionado
TXLSFormulaDebuggercria uma sessão interativa de propriedade contendo a árvore de expressão analisada, extensões de origem, operadores, nós e valores de operandos, resultados intermediários, ordem determinística de avaliação e estado navegável da etapa atual- Sessões de depuração de fórmulas expõem dependências de células e faixas com coordenadas de planilha resolvidas, relatam ramos selecionados e ignorados para
IF,IFERROR,IFNA,CHOOSE,IFSeSWITCHe preservam erros internos recuperados com seu nó de origem
Alterado
Calculatede pasta de trabalho e planilha agora retorna falhas de fórmulas do Excel como valores de erro padrão deVariantem vez de convertê-los emNullTXLSFormulaTraceragora registra pilhas exatas de operandos antes e depois para as etapas de empilhamento e redução
Versão 2.236.0
Adicionado
TXLSXWorksheet.StructuralEditRegistryagora permite que metadados de planilha de propriedade da aplicação participem de inserções ou exclusões de linhas e colunas por meio deIXLSXStructuralEditParticipant
Alterado
- As edições estruturais de XLSX agora concluem seu trabalho sensível a referências em uma única transação protegida cobrindo fórmulas, nomes, validações, formatos condicionais, comentários, hiperlinks, desenhos, tabelas, consultas, cenários, tabelas de dados, configurações de impressão, minigráficos, caches e exibições de tabelas dinâmicas e extensões de planilha
Corrigido
- Linhas e colunas inseridas ou excluídas agora atualizam faixas protegidas, âncoras de comentários em thread, VML de comentários clássicos reaberto, referências de minigráficos locais e entre planilhas, fontes e âncoras tipadas de tabelas dinâmicas, fórmulas calculadas de tabelas dinâmicas e referências reconhecíveis dentro do XML de extensão de planilha preservado
Versão 2.235.0
Adicionado
TXLSDirectWriteragora adiciona comentários clássicos, imagens ancoradas de planilha, gráficos de colunas, barras, linhas, áreas, pizza, rosca e dispersão com suporte a fórmulas e ChartML completo fornecido pelo chamador, sem construir um modelo de objetos completo de pasta de trabalho- As imagens podem ser fornecidas como bytes, fluxos pesquisáveis com transferência opcional de propriedade ou caminhos de arquivo e podem usar conteúdo PNG, JPEG, GIF, BMP, EMF ou WMF
Alterado
- As partes ricas do gravador direto usam descritores de canal lateral da planilha atual, atribuem identificadores de relacionamento de planilha antes que a planilha feche e transmitem mídia e partes XML relacionadas após o XML da planilha para manter a memória de linhas independente do tamanho da planilha
Versão 2.234.0
Adicionado
TXLSDirectReaderagora expõe eventos opcionais de dimensão, formato de planilha, coluna, linha, painel e intervalo mesclado com registros tipados de layout- Os eventos de coluna e linha relatam larguras ou alturas, estado oculto e recolhido, níveis de contorno e índices de estilos de origem sem construir objetos de células de planilha
Alterado
- Os retornos de chamada de layout atribuídos usam uma passada de metadados de memória limitada antes da entrega de células, garantindo que intervalos mesclados e outros fatos de layout cheguem antes das células que dependem deles, enquanto varreduras comuns somente de células mantêm o caminho original de passagem única
- As leituras diretas paralelas mantêm os retornos de chamada de layout no thread de chamada e terminam os metadados das planilhas selecionadas antes de drenar as filas ordenadas de células dos trabalhadores
Versão 2.233.0
Adicionado
TXLSXChartTextStyleagora fornece nomes de fontes tipados de títulos de gráfico, legenda, títulos de eixo e rótulos de eixo, tamanhos em pontos, cores RGB, ênfase e rotação de textoTXLSXChartLayoutagora fornece posicionamento normalizado manual de área de plotagem, título de gráfico, título de eixo e legenda com modos explícitos de borda ou fator e alvos de plotagem internos ou externos- Os gráficos agora expõem controles tipados de visibilidade, posição, sobreposição, estilo de texto e layout da legenda junto com as configurações de sobreposição do título do gráfico
Alterado
- Layouts manuais sempre serializam grupos completos de x, y, largura e altura usando modos padrão compatíveis com o Office para que o Excel não descarte coordenadas parciais ou conflitantes
Corrigido
- Editar fontes ou layouts tipados de gráficos preserva listas de extensões não relacionadas e conteúdo de namespace personalizado, enquanto limpar uma propriedade conhecida de cor ou ênfase não restaura mais o valor importado durante a mesclagem estrutural
Versão 2.232.0
Adicionado
TXLSXImageagora expõe bordas de corte baseadas em porcentagem, transparência, brilho, contraste, rotação em graus e modos de preenchimento de esticar ou lado a lado (tile)TXLSXImage.HasPreservedXmlinforma se o DrawingML importado está disponível, enquantoClearPreservedXmlopta uma imagem pela regeneração limpa do modelo tipado
Alterado
- Os valores de efeitos de imagem usam armazenamento compacto de ponto fixo e gravam unidades nativas de DrawingML sem alocar objetos auxiliares por efeito
Corrigido
- Editar uma propriedade suportada em uma imagem importada agora preserva extensões não relacionadas, escolhas de compatibilidade de marcação, atributos personalizados, efeitos de forma e conteúdo qualificado por namespace
Versão 2.231.0
Adicionado
- Gráficos XLSX importados agora preservam seu ChartML original enquanto
TXLSXWorkbook.PreserveUnsupportedPartsestá habilitado, retendo namespaces desconhecidos, alternativas de compatibilidade de marcação, listas de extensões, estilos personalizados e formatação não modelada TXLSXChart.HasPreservedXmlinforma se o ChartML original está disponível, eClearPreservedXmlpermite que as aplicações optem um gráfico pela regeneração limpa do modelo tipado
Alterado
- Salvar um gráfico importado intocado reproduz seu ChartML original, enquanto edições em propriedades suportadas sobrepõem estruturalmente apenas os nós modelados do gráfico e mantêm o conteúdo não relacionado no lugar
Corrigido
- Editar um título de gráfico, série, eixo ou outra propriedade suportada não descarta mais extensões não relacionadas criadas pelo Excel, conteúdo alternativo, estilos ou formatação da parte do gráfico
Versão 2.230.0
Adicionado
TXLSXChart.AddPlotGroupagora constrói gráficos de combinação ordenados cujas famílias de gráficos e séries mantêm atribuições independentes de eixos primários ou secundários- Os gráficos agora expõem eixos primários e secundários de categoria e valor além de um eixo de série, com configurações tipadas de eixo de categoria, valor, data e série, incluindo posições, identificadores, cruzamentos, unidades de data, intervalos de rótulos e visibilidade
- Gráficos de colunas, barras, linhas, pizza e área agora têm tipos 3D dedicados com rotação, altura, profundidade, perspectiva, eixos em ângulo reto e profundidade de lacuna configuráveis
- As séries agora expõem caches tipados de cadeias e números para nomes, categorias, valores e tamanhos de bolhas, incluindo índices esparsos de pontos e códigos de formato numérico
Alterado
- As APIs de compatibilidade
ChartType,AddSerieseSeriesplanas continuam a se referir ao grupo de plotagem primário enquanto o modelo de gráfico retém cada grupo de plotagem ordenado
Corrigido
- Abrir e salvar novamente gráficos de combinação não os colapsa mais em uma única família de gráficos nem perde eixos secundários, de data ou de série
- Referências de fórmulas de gráficos e valores de séries em cache agora sobrevivem a cópias de pastas de trabalho e ciclos de abrir/salvar sem serem achatados ou descartados
- As âncoras de gráficos agora são correspondidas às suas partes de gráfico por identificador de relacionamento, para que aplicações que reordenam entradas de relacionamento não troquem mais o conteúdo dos gráficos entre posições de planilhas
Versão 2.229.0
Adicionado
TXLSXWorksheet.HeaderFooterImagesagora cria, localiza, substitui e remove slots de imagem tipados para cada posição esquerda, centro e direita do cabeçalho ou rodapé nas páginas ímpares, pares e primeira página- Imagens de cabeçalho e rodapé expõem seus dados brutos, formato, título, dimensões em pontos e margens em pontos, com carregamento direto de arquivos PNG, JPEG, GIF, BMP, EMF e WMF
Alterado
- Imagens de páginas pares e da primeira página ativam automaticamente as variantes de página correspondentes e mantêm os códigos de campo de imagem necessários quando o texto do cabeçalho ou rodapé é editado
Corrigido
- Comentários da planilha e imagens de cabeçalho ou rodapé agora retêm relacionamentos VML independentes quando compartilham uma mesma planilha
- Slots de imagens de cabeçalho e rodapé criados pelo Excel agora preservam seus bytes de imagem, formatos, títulos, dimensões, margens e relacionamentos através de ciclos de abrir e salvar
Versão 2.228.0
Adicionado
- Planilhas XLS clássicas e coleções de formas agora criam e descobrem controles tipados
TXLSButtoneTXLSRadioButtonao lado de caixas de seleção, caixas de combinação e caixas de listagem - Controles de formulário agora expõem nomes de macro, células vinculadas, intervalos de entrada, estados de marcação, aparência plana ou 3D e links de grupo de opções por meio de propriedades tipadas
- Nomes definidos expõem
IsMacropara que as vinculações de macro retenham os metadados de nome de pasta de trabalho necessários
Corrigido
- Editar e salvar novamente controles de formulário clássicos não descarta mais estados de marcação, vinculações de macro, fórmulas de células vinculadas, intervalos de origem ou metadados de grupo de opções suportados
- Limpar um intervalo de origem de caixa de combinação ou caixa de listagem agora remove a fórmula de entrada serializada em vez de restaurar o intervalo anterior na próxima abertura
Versão 2.227.0
Adicionado
LINESTeLOGESTagora retornam matrizes de coeficientes multivariáveis completas e matrizes estatísticas opcionais de cinco linhasTRENDeGROWTHagora retornam matrizes de previsão formatadas para entradas de variável única e multivariáveis
Alterado
- A aritmética de matrizes, comparações, concatenação, negação unária e operações de porcentagem agora transmitem escalares e linhas ou colunas únicas mantendo resultados por célula
- As dependências de cálculo agora expandem nomes aninhados de pasta de trabalho e planilha, nomes definidos por fórmula e referências de múltiplas áreas com proteção de ciclo consciente do escopo
Corrigido
- Um erro em um elemento da matriz não causa mais o colapso do resultado completo e não recorre incorretamente à avaliação escalar
- Nomes definidos por fórmula cujas dependências podem ser resolvidas estaticamente não forçam mais um recálculo completo volátil desnecessário
Versão 2.226.0
Adicionado
- Caches dinâmicos XLSX existentes e exibições de tabelas dinâmicas agora são carregados no modelo tipado por meio de relações de pacote, incluindo registros de cache, campos, itens compartilhados, agrupamento, filtros, formatos, definições calculadas e extensões
TXLSPivotTable.Makeagora avalia campos de cache calculados, itens calculados e membros de dados calculados com vinculação de nomes consciente das dependências- Modos estendidos de
ShowDataAsadicionam porcentagens pai, porcentagens acumuladas e classificação crescente ou decrescente com marcação de extensão XLSX válida
Alterado
- A geração de resultados dinâmicos agora aplica a visibilidade de itens, seleções de página e filtros de legenda, data, agregação e valor antes de construir os domínios agrupados
- Grupos numéricos, de data e discretos, classificação por rótulo ou valor de dados, subtotais configurados e linhas ou colunas de total geral materializadas opcionais agora participam da geração de resultados
Corrigido
- Filtros dinâmicos agora usam marcação de filtro de nível raiz válida para o esquema e tipos de filtro simbólicos em vez de valores numéricos ambíguos
- O carregamento orientado por relações não assume mais nomes convencionais ou sequenciais de partes de cache dinâmico, registro de cache ou tabela dinâmica
Versão 2.225.0
Adicionado
TXLSXWorkbook.ConnectionseTXLSXWorksheet.QueryTablesagora fornecem criação e edição tipadas para metadados de banco de dados externo, web, texto e resultado de consulta- Os parâmetros de conexão preservam seu tipo exato Boolean, inteiro, de ponto flutuante, de cadeia ou de referência de célula, incluindo valores explícitos de zero, false e de cadeia vazia
Alterado
- Abrir e salvar XLSX agora resolve e grava as partes de conexão e de tabelas de consulta por meio de seus relacionamentos proprietários, sincroniza tabelas de resultados e nomes definidos e preserva atributos desconhecidos, nós filhos e listas de extensão
- Edições de linha e coluna mantêm os intervalos de resultados de consulta alinhados, enquanto cópias de planilhas dentro da mesma pasta de trabalho e entre pastas de trabalho preservam a propriedade da consulta e remapeiam identificadores de conexão e nomes em conflito
Corrigido
- As tabelas de consulta podem coexistir com tabelas padrão, comentários encadeados e tabelas dinâmicas sem colisões de identificadores de relacionamento da planilha ou da pasta de trabalho
Versão 2.224.0
Adicionado
- Planilhas XLS clássicas e planilhas XLSX modernas agora expõem
AddDataTableeDataTablespara tabelas de dados What-If de uma variável por linha, uma variável por coluna e de duas variáveis
Alterado
- O recálculo da pasta de trabalho avalia cada resultado de tabela de dados com um contexto de entrada isolado, incluindo dependências indiretas de fórmulas, e preserva definições mais resultados em cache por meio de abrir, salvar, copiar planilha e edições estruturais de linhas ou colunas
Corrigido
- Células de entrada What-If excluídas agora produzem resultados
#REF!, e o recálculo clássico da pasta de trabalho visita cada planilha em vez de omitir a primeira planilha - Inserir linhas no topo de uma planilha clássica não corre mais o risco de uma violação de acesso no Win64
Versão 2.223.0
Alterado
- O cancelamento do leitor direto paralelo agora se propaga através de leituras ativas de membros ZIP e de cada etapa de descompressão, em vez de aguardar o próximo pull de XML
Corrigido
- Abortar uma varredura paralela de planilha não aguarda mais a conclusão de uma grande leitura de XML compactado antes que os trabalhadores bloqueados sejam liberados
Versão 2.222.0
Adicionado
TXLSDirectReader.ParallelBufferMemoryLimitlimita a carga agregada da fila de raw-cell para varredura paralela de planilhas, enquantoParallelPeakBufferedBytesexpõe o pico medido para diagnósticos e testes de capacidade
Alterado
- Leituras diretas paralelas agora transmitem entradas ZIP de planilhas para leitores XML locais do trabalhador e filas produtor-consumidor limitadas, em vez de reter XML de planilha inflado completo e buffers de célula completos por planilha
- Planilhas ativas recebem orçamentos de fila independentes e são processadas em janelas do tamanho do trabalhador, preservando a ordem de callback sem permitir que planilhas posteriores causem inanição à planilha que está sendo emitida
Corrigido
- Abortos de célula, falhas de callback e erros de trabalhador agora despertam produtores e consumidores bloqueados, param pulls de XML cooperativamente, unem todos os trabalhadores e deixam o leitor direto reutilizável
Versão 2.221.0
Alterado
- A abertura de XLSX com várias planilhas agora transmite cada entrada ZIP de planilha diretamente para seu inflador e leitor XML locais do trabalhador, em vez de reter XML de planilha inflado antes da análise
- Leitores simultâneos de planilhas serializam apenas leituras posicionadas curtas da fonte do pacote, de modo que a descompressão e a análise de XML permaneçam paralelas enquanto a memória de entrada transitória da planilha é limitada pela contagem de trabalhadores ativos
Versão 2.220.0
Adicionado
- A geração de resultados da Tabela Dinâmica agora executa todos os nove modos clássicos de
ShowDataAs, incluindo diferença, porcentagem de um item base, diferença percentual, total acumulado, porcentagem da linha, porcentagem da coluna, porcentagem do total e cálculos de índice xlPivotBaseItemPreviousexlPivotBaseItemNextfornecem seletores tipados para itens base adjacentes em cálculos de comparação
Alterado
- As porcentagens e os valores de índice do pivô usam totais de linha, coluna e geral agregados diretamente dos registros de origem, preservando a semântica correta de Média, Produto, Contagem, variância e desvio-padrão sem reexaminar a origem
- Os totais acumulados seguem a ordem dos itens de pivô, são redefinidos independentemente para cada grupo de pares e mantêm o armazenamento esparsa de resultados para pivôs de alta cardinalidade
Corrigido
- Os registros BIFF8
SXDIagora usam o layout fixo padrão de 14 bytes e preservamShowDataAs, campo base, item base, formato de número e nome de exibição por meio de leituras tipadas, enquanto os registros legados do HotXLS permanecem legíveis - Os campos de dados XLSX agora gravam índices de campo de pivô, mapeiam seletores anterior e próximo para os valores OOXML exigidos e emitem atributos base somente para os modos que os utilizam
- As células de comparação ausentes permanecem em branco, enquanto os denominadores zero presentes retornam
#DIV/0!em vez de serem confundidos com dados ausentes
Versão 2.219.0
Corrigido
VDBagora aplica a depreciação por saldo decrescente em períodos fracionários, muda para a depreciação em linha reta quando benéfico e honrano_switch- Fatores zero, limites de valor residual, períodos iniciais fracionários e intervalos de período inválidos agora seguem resultados compatíveis com o Excel em vez de arredondar períodos e retornar uma aproximação simplificada de saldo decrescente
Versão 2.218.0
Adicionado
TXLSXWorksheet.Scenariosagora fornece a criação tipada do Gerenciador de Cenários What-If com cenários nomeados, índices ativo e exibido, intervalos de células variáveis, metadados de usuário e comentário, estados bloqueado e oculto, e valores de células de entrada pertencentes- As definições de cenário agora seguem cópias de planilhas e edições estruturais de linha ou coluna, enquanto os limites de compatibilidade do Excel são validados antes que metadados inválidos possam ser gravados
Corrigido
- Abrir e salvar cenários criados no Excel agora preserva os atributos raiz e as células de entrada aninhadas em vez de achatar a hierarquia em XML bruto com perdas
- Os elementos de planilha de cenário, AutoFiltro, consolidação de dados, células mescladas e fonéticos agora usam a ordem do esquema para que consumidores estritos de planilhas não exijam uma passagem de reparo
Versão 2.217.0
Adicionado
TXLSXWorksheet.IgnoredErrorsagora fornece autoria tipada para cada categoria padrão de erro ignorado com referências de múltiplas áreas, suporte à cópia de planilhas, atualizações de edição estrutural e viagens de ida e volta de abrir/salvarTXLSXWorkbookagora expõe o modo de referência, recálculo ao salvar, precisão total, cálculo simultâneo e configurações de simultaneidade manual junto às suas opções de cálculo existentes
Corrigido
- Cada configuração de cálculo de pasta de trabalho não padrão agora produz e faz a viagem de ida e volta de forma independente de um elemento
calcPrordenado pelo esquema, incluindo limites de iteração configurados antes da ativação da iteração - Os modos de cálculo, os modos de referência, os limites de iteração, os identificadores de cálculo e as contagens de simultaneidade manual agora rejeitam ou normalizam valores inválidos em vez de gravar um estado ambíguo da pasta de trabalho
Versão 2.216.0
Alterado
XMATCHeXLOOKUPagora executam buscas binárias logarítmicas crescentes ou decrescentes quando solicitadas, incluindo limites de duplicata e correspondência aproximada compatíveis com o ExcelXIRRagora honra seu palpite com um solucionador protegido que consegue encontrar raízes altas e sensíveis ao palpite, enquantoXNPVusa soma compensada e entradas validadas de data e taxa- A busca de nomes definidos XLSX de alta cardinalidade agora usa um índice de hash preguiçoso com consciência de escopo, retendo a ordem serializada, a precedência de nome local e o comportamento de primeira correspondência
- As partes de pacote XLSX preservadas agora alocam seu tamanho não compactado declarado uma única vez, retendo verificação completa de comprimento e CRC
Corrigido
- Modos de busca inválidos, buscas binárias com curinga, intervalos de busca bidimensionais e vetores de retorno
XLOOKUPincompatíveis agora relatam erros de fórmula em vez de produzir resultados ambíguos XIRReXNPVagora rejeitam sinais de fluxo de caixa, taxas, palpites e datas inválidos, truncam seriais de data fracionários e relatam não convergência em vez de retornar um ponto médio não verificado
Versão 2.215.0
Adicionado
FREQUENCYagora retorna uma matriz vertical com um resultado por intervalo mais o intervalo de estouro
Alterado
SORTagora usa uma ordenação estável e escalável para linhas ou colunas, preservando a ordem original das chaves iguaisUNIQUEagora usa correspondência estável indexada por hash para linhas ou colunas, incluindo resultadosexactly_oncee texto sem distinção entre maiúsculas e minúsculasPERCENTRANK.INC,PERCENTRANK.EXCeMODE.MULTagora escalam de forma eficiente em entradas de alta cardinalidade em vez de depender de varreduras quadráticas
Corrigido
- A opção
by_coldeSORTeUNIQUEagora opera sobre colunas em vez de recair no comportamento por linha
Versão 2.214.0
Adicionado
- A abertura de XLSX agora aceita partes XML streaming em UTF-16 little-endian e big-endian com marca de ordem de bytes ou a declaração específica de endianidade exigida, incluindo caracteres fora do Basic Multilingual Plane
Alterado
- As atualizações de cache de Tabela Dinâmica de alta cardinalidade agora usam índices de hash determinísticos para valores compartilhados e alocam a matriz de registros uma única vez, preservando a ordem dos itens primeiro vistos enquanto evita buscas lineares repetidas e crescimento linha a linha
- As leituras diretas projetadas agora descartam células fora das linhas e colunas selecionadas antes de copiar valores brutos, fórmulas e rich text para os buffers de cada planilha
Corrigido
- XML malformado com marcas de ordem de bytes duplicadas, declarações de codificação incompatíveis ou contraditórias, assinaturas UTF-32, comprimentos de bytes UTF-16 ímpares ou pares substitutos inválidos agora é rejeitado
- Os workers paralelos de leitura direta agora inicializam todo o estado do trabalho antes de iniciar, param de aceitar novos trabalhos de planilha após uma falha, relançam deterministamente o erro do trabalho de menor índice e limpam todos os workers criados se a construção do pool falhar
Versão 2.213.0
Adicionado
T.TESTagora avalia amostras independentes com variância igual agrupada ou variância desigual de Welch, além de amostras emparelhadas, incluindo probabilidades unicaudais e bicaudais
Alterado
- A abertura de XLSX agora segue os alvos de relacionamento de pasta de trabalho, planilha e desenho para planilhas, strings compartilhadas, estilos, temas, macros, links externos, comentários, comentários encadeados, VML, desenhos, imagens, gráficos, tabelas e Tabelas Dinâmicas, incluindo pacotes válidos que usam caminhos de parte renomeados ou não contíguos
Corrigido
- Pacotes malformados com identificadores de relacionamento duplicados não permitem mais que um relacionamento posterior sem suporte substitua o primeiro alvo utilizável durante a recuperação de compatibilidade
Versão 2.212.0
Alterado
- O rastreamento de dependência de fórmulas agora escala melhor em planilhas grandes indexando as dependências de célula e intervalo antes das recompilações e da invalidação de células sujas
- Fórmulas estatísticas e de regressão grandes agora avaliam cada valor numérico nos intervalos fornecidos em vez de parar no buffer de tamanho fixo anterior
Corrigido
- As células XLSX fora da grade da planilha são rejeitadas de forma consistente, de modo que coordenadas inválidas não podem mais criar alias de células válidas
- A edição de fórmulas não redefine mais o modo de cálculo da pasta de trabalho, limites de iteração, sinalizadores de cálculo completo nem outras configurações de cálculo
- As leituras de lista de blobs agora validam explicitamente os intervalos solicitados e permitem fatias vazias válidas no final do fluxo
Segurança
- A criptografia de XLS clássico agora abrange os fluxos de cache dinâmico junto com os dados da planilha
- Caudas de extensão SST malformadas e registros de diretório central de ZIP são rejeitados antes que alocação excessiva, leituras truncadas ou registros de diretório falsos incorporados em comentários possam afetar o carregamento
Versão 2.211.0
Adicionado
TXLSPivotTable.Makeagora materializa cada campo de dados configurado com sua própria agregação e expande os valores em linhas ou colunas de acordo comDataFieldAxisIsRow
Alterado
- A geração de resultados dinâmicos reutiliza domínios de chave de linha e coluna indexados por hash em todos os campos de dados, seleciona armazenamento de acumulador denso ou esparso a partir da forma do resultado, preserva a ordem dos itens de cache além de nove chaves e emite rótulos combinados legíveis para eixos de múltiplos campos
Corrigido
Countagora inclui valores de cache de texto não vazio, Booleano, erro, data e numérico, enquantoCountNumsinclui apenas valores numéricos e de data;Productretorna zero para interseções sem valores numéricos, células em branco não são mais contadas como entradas e tabelas dinâmicas somente de valores podem materializar seus totais gerais sem campos de linha ou coluna
Versão 2.210.0
Adicionado
TXLSWorkbookVieweragora renderiza preenchimentos condicionais XLSX, cor e ênfase da fonte, formatos de número, barras de dados direcionais positivas e negativas, gradientes, bordas, eixos, valores ocultos e todas as famílias de conjuntos de ícones integradasTXLSWorkbookViewer.RefreshConditionalFormatsreconstrói o estado agregado e de limite preparado depois que os chamadores modificam uma pasta de trabalho XLSX anexada no local
Alterado
- O visualizador armazena em cache um avaliador de formato condicional preparado por planilha ativa, o reutiliza entre as operações de rolagem, seleção e repintura e o libera quando a pasta de trabalho ou planilha muda
Corrigido
- Os eixos das barras de dados no limite mais à direita agora são recortados dentro da célula proprietária em vez de serem desenhados na célula adjacente
Versão 2.209.0
Adicionado
- As planilhas XLSX agora expõem um avaliador de formato condicional preparado que resolve prioridade da regra,
StopIfTrue, fórmulas relativas, estilos diferenciais, classificação Superior/Inferior, testes de média acima/abaixo, valores duplicados e exclusivos, períodos de data relativos, escalas de duas e três cores, barras de dados e conjuntos de ícones para qualquer célula
Alterado
- As exportações para HTML e PDF agora renderizam preenchimentos condicionais correspondentes, ênfase e cor da fonte, formatos de número, escalas de cor, barras de dados direcionais positivas e negativas, eixos explícitos, glifos de família de ícones, valores ocultos e cores de tema com resolução de tonalidade
- Domínios grandes de formato condicional agora reutilizam fórmulas relativas compiladas sem alocação de árvore de sintaxe por célula, transmitem estatísticas de média, desvio, mínimo e máximo, retêm valores ordenados apenas para regras de classificação ou percentil, ordenam em lote chaves duplicadas Unicode e usam índices candidatos por faixa de linha para evitar varrer regras não relacionadas
Corrigido
- As regras condicionais clássicas agora carregam os tipos de expressão corretamente e avaliam inversão entre limites, predicados de texto sem distinção entre maiúsculas e minúsculas, células em branco e predicados de erro de forma consistente
Versão 2.208.0
Alterado
- O mecanismo de armazenamento de células compactado agora grava payloads nativos marcados de string, Booleano, erro e em branco, itera as células em ordem principal de linha e aplica codificação run-length às células consecutivas de tipo igual para menor uso de memória e saída sequencial mais rápida
- As strings compartilhadas de pasta de trabalho clássica agora mantêm os bytes de caracteres em uma única alocação e criam os valores decodificados de string sob demanda, reduzindo a sobrecarga de alocação para grandes tabelas de strings exclusivas
Adicionado
- Tabelas dinâmicas agora podem calcular uma matriz de resultados completa a partir de registros de cache com agrupamento de chaves de linha e coluna e todas as 11 funções de agregação com suporte
- Os gráficos de pasta de trabalho clássica agora expõem informações tipadas de séries, eixos, legendas e grupo de gráficos para fluxos de trabalho de conversão e inspeção
Versão 2.207.0
Adicionado
TXLSPivotCache.RefreshFromSourceconstrói um cache dinâmico a partir de um intervalo de planilha de origem: ele lê a linha de cabeçalho para nomear os campos, destila os valores distintos de cada linha de dados’ no domínio de itens compartilhados por campo, bloqueia o tipo de campo a partir do primeiro valor não vazio e registra o índice de item compartilhado para cada (registro, campo) — de modo que uma tabela dinâmica possa ser criada programaticamente a partir de um intervalo de dados em vez de depender dorefreshOnLoaddo Excel. Um leitor de valores baseado em callback mantém a unidade dinâmica livre de uma dependência direta de planilha
Versão 2.206.0
Adicionado
- O novo
TlxCellMMU(unidadelxCellMMU) implementa um mecanismo de armazenamento de células compactado em ordem principal de linha com codificação run-length de execuções de células de tipo igual e vazias, e um código de tipo de byte marcado que também funciona como seletor de largura de dados — de modo que uma coluna de inteiros pequenos custe um byte por célula em vez de oito. O mecanismo codifica números na menor largura que preserva o valor (inteiros escalados int8 / int16 / int32 / 2 decimais / 4 decimais / IEEE double), armazena células de índice de string, Booleano, erro e em branco de forma compacta e expõe uma APIGetValue/SetNumber/SetStringalém de um iterador direto. Este é o back-end de próxima geração por trás de um sinalizador de recurso para a APITXLSXCellsexistente, visando uma redução de 10–25× no conjunto de trabalho em planilhas densas
Versão 2.205.0
Adicionado
TXLSCustomChart.GetChartInfoagora decodifica um resumo semântico do fluxo de registros de gráfico BIFF bruto — família de tipo de gráfico (barra, linha, pizza, área, dispersão, radar, rosca, superfície, bolha), a contagem de séries e a presença de legenda — de modo que o tipo de um gráfico BIFF possa ser consultado programaticamente e uma conversão de gráfico BIGH para XLSX possa escolher a família alvo correta. O armazenamento de passagem de bytes que garante fidelidade de ida e volta permanece inalterado
Versão 2.204.0
Alterado
- A tabela de strings compartilhadas clássica do
.xlsagora grava strings somente ASCII na codificação Latin-1 compactada ([MS-XLS] §2.5.294fHighByte=0, um byte por caractere) em vez de usar sempre UTF-16, reduzindo aproximadamente à metade o tamanho da SST — e portanto do arquivo.xls— para pastas de trabalho ricas em ASCII
Versão 2.203.0
Adicionado
- O novo
TlxCompoundFilelê e grava o formato de contêiner Compound File Binary (OLE2) diretamente em Pascal puro, sem dependência deole32.dll/ COMIStorage— abrindo caminho para o tratamento de.xlsna memória e multiplataforma. O leitor cobre o layout v3 que o HotXLS encontra no ambiente real (cabeçalho + DIFAT no cabeçalho + percorrimento da cadeia FAT + MiniFAT e o mini-fluxo para fluxos abaixo de 4096 bytes + a árvore de diretório); o gravador emite um contêiner v3 mínimo, mas válido, suficiente para a saída do HotXLS’s
Versão 2.202.0
Adicionado
- O estado de ordenação do autofiltro agora tem um modelo tipado (
TXLSXSortStatecom filhosTXLSXSortCondition) cobrindo ordenação por valor / cor da célula / cor da fonte / ícone, método de ordenação (nenhum / traço / pinYin), sensibilidade a maiúsculas, ordenação de coluna e listas personalizadas por condição — de modo que aplicativos possam criar estados de ordenação programaticamente em vez de editar XML bruto, enquanto a passagem opaca legadaSortStateXmlainda vence para arquivos que o HotXLS não autorou - Filtros dinâmicos agora são lidos e gravados como um
TXLSXDynamicFilterTypetipado (acima/abaixo da média e desvio-padrão, hoje/ontem/amanhã, esta/última/próxima semana, mês, trimestre e ano, acumulado do ano, Q1–Q4, M1–M12) com limites opcionaisval/maxVal— abrir uma pasta de trabalho que usa um filtro dinâmico não o descarta mais ao salvar
Versão 2.201.0
Adicionado
- Gráficos de superfície e superfície 3-D (
xlsxChartSurface/xlsxChartSurface3D) agora são tipos de gráfico de primeira classe — gravados, lidos e transportados em ida e volta como as outras famílias de gráfico - A API de autoria de autoformas abrange um subconjunto prático da lista de geometria predefinida do OOXML — triângulos, losangos, paralelogramos, hexágonos, octógonos, setas, divisas, textos explicativos, nós de fluxograma, estrelas, corações, sol, lua, colchetes e chaves — cada um mapeado para seu token
prstcorreto e id de forma[MS-ODRAW], de modo que as formas autoradas sejam renderizadas corretamente no Excel (a lista completa de 187 predefinições já era preservada em ida e volta por passagem de âncora bruta)
Versão 2.200.0
Corrigido
- Abrir uma pasta de trabalho cujo autofiltro usa um filtro de cor ou um filtro de ícone não descarta mais esse filtro ao salvar —
colorFiltereiconFilteragora são lidos em colunas tipadas (TXLSXAutoFilterColumn.SetColorFilter/SetIconFilter) e reemitidos textualmente, em vez de serem perdidos como filhos de coluna de filtro não reconhecidos
Versão 2.199.0
Adicionado
TCondFormatRule.Evaluateresponde se uma regra de formatação condicional dispara para uma determinada célula, cobrindo comparações de valor de célula, expressões de fórmula, regras de texto contém/começa com/termina com, em branco e de erro — a base para consultar quais células uma regra destaca atualmente e para renderizar resultados de FC fora do Excel
Alterado
FACTe os auxiliares internos de fatorial agora usam uma tabela precomputada de 0!..170! em vez de recalcular um produto O(n) a cada chamada, acelerandoFACT, coeficientes multinomiais e os caminhos de distribuição Poisson/Binomial/qui-quadrado
Versão 2.198.0
Alterado
- Salvar uma planilha agora agrupa células em linhas com uma única passagem de contagem e preenchimento em vez de aumentar o índice de cada linha’s com uma realocação por célula, removendo uma cópia O(células × células por linha) oculta em planilhas grandes
- O grafo de dependência de fórmulas agora indexa seus intervalos de referência por (planilha, linha), de modo que semear uma célula suja faz uma busca binária na faixa candidata em vez de varrer todas as fórmulas a cada célula alterada — quanto maior a pasta de trabalho e mais planilhas ela tiver, maior a aceleração no recálculo
- O percurso de células principal de linha, ordenado por coluna, agora é exposto como
TXLSXWorksheet.BuildRowMajorCellOrderpara que salvamento, área de transferência, autofiltro e outros consumidores ordenados por linha compartilhem um único percurso em vez de derivá-lo novamente
Versão 2.197.0
Corrigido
- Gráficos de radar, de ações e de pizza de pizza/barra de pizza não são mais perdidos quando uma pasta de trabalho
.xlsxque os contém é aberta e salva novamente — o leitor de gráficos agora reconhece os elementos de contêinerc:radarChart,c:stockChartec:ofPieChartque já gravava, restaurando a cobertura simétrica de leitura/gravação SUBTOTALcom códigos de função 101–111 agora exclui valores em linhas ocultas, eAGGREGATEagora honra seus códigos de opção de ignorar linhas ocultas (2, 3, 6, 7), correspondendo ao Excel em vez de tratar as variantes incluir-ocultas e ignorar-ocultas de forma idêntica- Chamar uma função integrada de aridade fixa com mais argumentos do que o declarado (por exemplo
=SIN(1,2)) agora gera#VALUE!centralmente em vez de ser aceito pelo despachante
Versão 2.196.0
Corrigido
- A inserção ou exclusão de linhas e colunas agora particiona formatos condicionais de valor de célula e de expressão além de validações de dados quando as áreas alvo editadas exigem âncoras de fórmula relativas diferentes, preservando as configurações de regra, atribuindo prioridades exclusivas de formato condicional e mantendo os domínios agregados de formato condicional intactos
Versão 2.195.2
Alterado
- A exportação para PDF agora faz subconjunto da fonte TrueType incorporada por meio da API
CreateFontPackagedofontsub.dlldo Windows, mantendo apenas os glifos que o documento realmente renderizou em vez de incorporar o.ttfinteiro — tipicamente reduzindo o PDF em 8–20× para planilhas ricas em Unicode; recorre à incorporação completa quando o subconjunto não está disponível
Versão 2.195.1
Corrigido
- A inserção ou exclusão de linhas e colunas no mecanismo clássico de
.xlsagora regrava todas as referências de fórmula afetadas (fórmulas de célula e nomes definidos) para corresponder à semântica do Excel — referências abaixo de uma inserção deslocam, referências totalmente dentro de uma exclusão tornam-se#REF!e áreas parcialmente sobrepostas encolhem — em vez de deixar coordenadas obsoletas
Versão 2.195.0
Alterado
- Excluir colunas de tabela agora converte cada token de referência estruturada afetado em
#REF!nas fórmulas de planilha, fórmulas de tabela, nomes definidos e séries de gráfico, preservando referências não relacionadas e literais de string
Corrigido
- Excluir uma tabela inteira não deixa mais referências estruturadas qualificadas apontando para uma tabela que não existe mais
- Validações de dados clonadas agora retêm seu modo de entrada IME
Versão 2.194.0
Alterado
- As edições de linha e coluna agora mantêm identificadores de coluna, nomes, fórmulas calculadas, fórmulas de totais, colunas de filtro, intervalos de filtro e condições de ordenação da tabela do Excel alinhados com a tabela editada
Corrigido
- As fórmulas de formato condicional e validação de dados agora rebaseiam referências relativas e mistas quando a exclusão remove sua primeira área alvo
- Os estados de ordenação de planilha e tabela agora gravam atributos válidos e descartam condições cujos intervalos foram excluídos
Versão 2.193.0
Alterado
- As edições de linha e coluna agora atualizam fórmulas de nomes definidos complexas e de escopo cruzado, intervalos de dados de gráfico de bolhas e limites de formato condicional visual baseados em fórmula
- Gráficos de bolhas e de dispersão agora restauram seus intervalos de séries de eixo X, eixo Y e tamanho da bolha ao reabrir
Corrigido
- Alvos de formato condicional e validação de dados de várias áreas agora deslocam cada área sobrevivente independentemente em vez de deixar a lista completa de alvos inalterada
- Âncoras de caixa de texto e WordArt agora são movidas ou redimensionadas com linhas e colunas inseridas e excluídas
Versão 2.192.0
Adicionado
- As leituras diretas em streaming e o percurso por cursor de linha podem optar por strings ricas estruturadas com formatação de execução completa, execuções fonéticas e propriedades fonéticas, mantendo o armazenamento limitado de strings compartilhadas
TXLSDirectWriter.WriteRichStringgrava texto formatado e fonético como strings compartilhadas embutidas ou deduplicadas
Alterado
- A deduplicação de strings compartilhadas ricas agora distingue a formatação de execução e os metadados fonéticos enquanto mantém o internamento de strings comuns em seu caminho rápido existente
Corrigido
- O texto fonético em strings embutidas não é mais incluído no valor exibido da célula
Versão 2.191.0
Adicionado
TXLSXRange.SetDynamicArrayFormulaagora cria fórmulas de matriz dinâmica nativas com a cadeia completa de metadados XLDAPR do Excel
Alterado
- As raízes de matriz dinâmica agora compartilham um registro de metadados de pasta de trabalho deduplicado e as cópias de planilha ou intervalo entre pastas de trabalho remapeiam esse registro para a pasta de trabalho de destino
- Os metadados de matriz dinâmica com suporte permanecem disponíveis quando a preservação de partes de pacote sem suporte está desativada, enquanto os metadados de valor não relacionados ainda são removidos
Corrigido
- As células de transbordamento de matriz dinâmica não são mais modeladas como seguidores CSE legados, e substituir ou limpar a raiz não deixa mais índices de metadados obsoletos
- Remover a raiz final de matriz dinâmica agora remove a parte de metadados não utilizada, o relacionamento da pasta de trabalho e a entrada de tipo de conteúdo
Versão 2.190.0
Alterado
- As leituras diretas em streaming e o percurso por cursor de linha agora expandem os seguidores de fórmula compartilhada em fórmulas completas relativas à célula, mantendo o comportamento de projeção e memória limitada
Corrigido
- Pastas de trabalho com matriz dinâmica agora preservam índices de metadados de célula e valor, atributos de recálculo de fórmula, relacionamentos de pacote de metadados e prefixos de função futura inalterados durante os ciclos de abertura e salvamento
- Desativar a preservação de partes sem suporte não deixa mais índices de metadados de planilha pendentes após a remoção da parte de metadados
Versão 2.189.0
Adicionado
- Abrir pastas de trabalho XLSX agora expande os seguidores de fórmula compartilhada em fórmulas completas por célula com referências relativas, absolutas, mistas, de intervalo e qualificadas por planilha corretas
Corrigido
- Os seguidores de fórmula compartilhada de auto-fechamento não capturam mais XML posterior de valor ou fórmula, e seus resultados em cache sobrevivem aos ciclos de abertura e salvamento
- As fórmulas de matriz CSE agora retêm sua âncora e relacionamentos de seguidor através de edições de estrutura de linha ou coluna, cópias de intervalo completo, duplicação de planilha e cópias de planilha entre pastas de trabalho
- Atribuir uma fórmula normal ou limpar uma célula agora remove a associação obsoleta a matriz CSE para que o cálculo não possa ser redirecionado a uma âncora de matriz antiga
- Copiar apenas parte de uma matriz CSE não cria mais referências de seguidor pendentes no destino
- As cópias de intervalo agora fazem um instantâneo das fontes sobrepostas e deslocam as referências de fórmula relativas, evitando que células de origem ou âncoras de matriz sejam sobrescritas antes de serem copiadas
- As edições de linha ou coluna que intersectam apenas parte de uma matriz CSE são rejeitadas em vez de redimensionar ou desanexar silenciosamente a matriz
Versão 2.188.0
Adicionado
TXLSDirectReader.SharedStringMemoryLimitlimita a memória de strings compartilhadas decodificada e migra automaticamente tabelas maiores para armazenamento temporário indexado de exclusão ao fechar com um cache de valor de tamanho fixoTXLSRowCursor.SharedStringMemoryLimitexpõe o mesmo controle de armazenamento limitado de strings compartilhadas para o percurso de linha somente para frente
Alterado
- A análise direta de strings compartilhadas agora preserva valores somente de espaço em branco, CDATA, entidades XML, caracteres não-BMP, itens vazios e a ordem de execução de rich text, excluindo o texto de guia fonético do valor exibido
Corrigido
- Abrir pastas de trabalho XLSX agora retém cada item de string compartilhada na ordem do documento, evitando que texto duplicado ou strings ricas com formatação diferente faça colapsar índices de células posteriores
- Salvar pastas de trabalho XLSX agora deduplica strings ricas por limites de execução e propriedades de formatação em vez de apenas por texto visível, preservando formatação distinta para células com o mesmo valor exibido
Versão 2.187.0
Adicionado
TXLSDirectReader.FirstRoweLastRowrestringem as leituras em streaming a um intervalo de linhas baseado em 1 e param a análise da planilha após o intervalo solicitadoTXLSDirectReader.IncludeColumneClearColumnProjectionfornecem projeção de coluna em tempo constante que ignora células não selecionadas antes da decodificação de valor e do despacho de callback
Versão 2.186.0
Adicionado
TXLSDirectWriter.UseSharedStringspode deduplicar texto repetido em uma parte de strings compartilhadas OOXML com contagens totais e exclusivas precisas, reduzindo o tamanho do pacote para dados ricos em repetiçãoTSimpleDomReaderfornece uma árvore XML compacta de passagem única para consultas de acesso aleatório de metadados da pasta de trabalho e partes do pacote, com pesquisa de QName e nome local que diferenciam maiúsculas de minúsculas
Alterado
- A leitura direta de XLSX agora usa despacho de elemento exato assistido por hash, colheita de atributos em passagem única e pesquisa de coluna de linha atual em tempo constante, preservando o comportamento de memória em streaming
- A geração de XML de strings compartilhadas agora usa um buffer de crescimento linear para evitar cópias repetidas de strings inteiras em grandes tabelas de strings distintas
Corrigido
- A exportação de fórmula CSV não adiciona mais um segundo sinal de igual quando o texto da fórmula já inclui um
- A exportação de PDF XLSX não trunca mais o texto da célula usando uma estimativa de contagem de caracteres antes do layout
- Os hashes de nome do leitor XML agora rastreiam instruções de processamento, atributos e movimentos de volta para seus elementos proprietários sem expor estado de elemento obsoleto
Versão 2.185.1
Corrigido
- A inserção ou exclusão de linhas e colunas agora ajusta as referências de fórmula locais e entre planilhas exatamente uma vez, preservando nomes de função e literais de texto
Versão 2.185.0
Adicionado
TXLSPDFExportagora fornece seleção de saídaFirstPageeLastPagebaseada em um, umaPageCountlógica completa e seis sobrecargas deCalculatePageCountpara intervalos clássicos e XLSX, planilhas e pastas de trabalho sem construir objetos de página PDFTXLSXWorkbook.SaveWorkbookAsHTMLpublica planilhas visíveis em um documento HTML navegável com âncoras estáveis por planilha, títulos e nomes de planilha com escape e uma opção para incluir planilhas ocultas ou muito ocultasTDataToXLS.BeforeRecordpode ignorar registros antes da saída da linha eBeforeValuepode transformar ou suprimir valores de campo com contexto de dataset, nível de detalhe, campo de origem e coluna de exportaçãoTXLSWorkbookViewerexpõe comentários e hiperlinks da célula selecionada, gera um evento de hiperlink controlado pelo aplicativo, pinta indicadores de comentário e fontes, preenchimentos e alinhamento XLSX, e normaliza seleção e renderização em intervalos mesclados
Alterado
- O exemplo ConversionWorkbench agora pode produzir saída em PDF e publica todas as planilhas XLSX visíveis para destinos HTML, enquanto o exemplo WorkbookViewer demonstra navegação de células mescladas, comentários e ativação de hiperlink
Versão 2.184.0
Adicionado
- Intervalos XLS clássico e XLSX podem copiar texto tabular Unicode e HTML estilizado para a área de transferência do Windows por meio de
CopyToClipboard, preservando fórmulas, células mescladas, links, formatação de exibição e tabulações incorporadas, quebras de linha e aspas com escape seguro TXLSXWorkbookagora preserva partes de pacote personalizadas alcançáveis a partir de relacionamentos desconhecidos na raiz do pacote, pasta de trabalho, planilha ou desenho, incluindo tratamento de colisão de ID de relacionamento, tipos de conteúdo, relacionamentos filhos, escolha de compactação e bytes exatos do payload;PreserveUnsupportedParts,UnsupportedPartCount,UnsupportedPartByteseClearUnsupportedPartsexpõem controle e diagnóstico- Os salvamentos de XLS clássico expõem callbacks de início, trabalho e fim com cancelamento por meio de
OnProgressEx, enquantoIXLSWorkbookProgressfornece diagnóstico estruturado com códigos estáveis, severidade, operação, contexto de planilha, valores de retorno nativos e detalhes de exceção TXLSXWorkbookagora expõe as mesmas superfícies estruturadasDiagnostics,LastDiagnosticeOnDiagnosticpara relatórios de salvamento, abertura, recálculo, cancelamento e exceção- Módulos VBA analisados agora suportam a edição de
SourceCodee a gravação do fluxo de módulo compactado atualizado de volta por meio de salvamentos XLS clássico, armazenamento VLA autônomo e OOXML habilitado para macros, preservando prefixos de fluxo e conteúdo de projeto intocado - Planilhas clássicas e coleções de formas agora expõem controles de formulário tipados
TXLSCheckBox,TXLSComboBoxeTXLSListBoxcom auxiliares de criação, rótulos, inspeção de tipo de controle, âncoras de célula, exclusão e descoberta em abertura/salvamento TXLSXRange.ApplyFormatPatchpode copiar seletivamente componentes de fonte, preenchimento, borda, formato de número, alinhamento e proteção com blocagem de padrão de origem, preservando os valores de destino e a formatação não selecionadaTDataToXLSpode exportar recursivamente datasets vinculados de mestre-detalhe por meio deReadDetailTableseIndentDetailTables, preservando links de dados ativos, anexando cada tabela de detalhe abaixo de seu registro mestre e herdando opções de campo, título e formatação em todos os níveisTXLSXWorksheet.AddWordArtcria texto DrawingML ancorado em célula com distorção predefinida além de cores de texto e contorno configuráveis, e o caminho de preservação de âncora de desenho bruto mantém a forma completa de WordArt em ciclos posteriores de abertura/salvamentoTXLSWorkbookVieweradiciona um visualizador de planilha VCL para objetos de pasta de trabalho clássicos e modernos com carregamento de arquivos XLS, XLSX, XLSM, modelo e ODS, texto de célula formatado, estilos clássicos, dimensionamento de linha e coluna, cabeçalhos, renderização de grade e seleção, barras de rolagem, seleção por mouse, navegação por teclado, posicionamento de célula, troca de planilha e eventos de seleção ou planilha- Novos exemplos Delphi
FeatureShowcaseeWorkbookViewerdemonstram impressão PDF estilizada, títulos de impressão, quebras manuais, controles de formulário clássicos, patches de formato seletivos, WordArt, diagnóstico, criação de visualizador em tempo de execução, carregamento de arquivos, navegação de células, troca de planilhas e eventos do visualizador, com guias em inglês correspondentes e tópicos de referência para desenvolvedores
Alterado
- A exportação para PDF de pasta de trabalho, planilha e intervalo em XLS clássico e XLSX moderno agora grava cada planilha visível em um documento, ignora planilhas ocultas e de gráfico, renderiza preenchimentos sólidos, cores de fonte, tamanhos de fonte, ênfase negrito e itálico, alinhamento horizontal e vertical, bordas explícitas de célula e linhas de grade opcionais da planilha, segue a área de impressão, o tamanho do papel, a orientação, as margens, o zoom, o ajustar à largura, as larguras de coluna, as alturas reais de linha, as quebras de página manuais de linha e coluna, as linhas e colunas de título repetidas e os cabeçalhos e rodapés de três partes com campos de página, total de páginas, nome da planilha, data e hora, pagina intervalos largos e altos em ambos os eixos, emite sintaxe numérica de PDF independente de localidade e incorpora uma fonte TrueType elegível mais um mapa ToUnicode para texto fora de WinAnsi
- Os callbacks estendidos de progresso do XLSX agora recebem estados confiáveis de início, trabalho e fim para salvamento, abertura e recálculo, enquanto o callback legado permanece somente-trabalho e cada operação reinicia o estado de cancelamento anterior
- A serialização de XLS clássico agora propaga falhas de planilha, gráfico, extensão de estilo, VBA, fluxo de controle, armazenamento e commit de saída em vez de relatar sucesso, e os salvamentos de arquivo preparam o arquivo composto completo antes de substituir atomicamente o destino
- Os salvamentos de arquivo XLSX e ODS agora criam um pacote temporário irmão completo e substituem atomicamente o destino apenas após a finalização bem-sucedida, deixando os arquivos existentes inalterados após cancelamento ou falha
Versão 2.183.0
Adicionado
TXLSDirectWriteragora suporta identificadores de estilo de célula reutilizáveis em nível de pacote e clonagem de estilo sem armazenar as linhas da planilha em buffer; o mesmo índice de estilo pode ser aplicado a qualquer número de células ou reutilizado entre planilhas- Estilos de célula diretos fornecem 30 capacidades de formatação abrangendo nome da fonte, tamanho, cor BGR, negrito, itálico, tachado, contorno, sombra, cinco modos de sublinhado, 19 padrões de preenchimento com cores de primeiro/segundo plano, cinco bordas de borda coloridas independentemente com 14 estilos de linha e direções diagonais, formatos de número integrados ou personalizados, alinhamento horizontal e vertical, quebra automática, ajustar para caber, recuo, rotação de texto, prefixos de aspas e proteção bloqueado/oculto
- Sobrecargas estilizadas estão disponíveis para strings, números, Booleanos, datas, fórmulas, erros e cada tipo de resultado de fórmula em cache, permitindo que exportadores de alto volume selecionem um estilo predefinido por índice inteiro durante gravações sequenciais
Alterado
- O gravador direto deduplica componentes iguais de fonte, preenchimento, borda e formato de número ao criar
styles.xml, preservando índices de estilo de célula estáveis já gravados nos fluxos de planilha - As tabelas de estilo do gravador direto geradas agora incluem os preenchimentos padrão
noneegray125antes dos preenchimentos personalizados para maior compatibilidade OOXML
Versão 2.182.0
Adicionado
TXLSDirectWriteragora grava formatação condicional mantendo seu perfil de memória independente da contagem de linhas, com oito operadores de valor de célula, regras de expressão, regras de texto contém/não contém/começa com/termina com, regras de valor e porcentagem superior ou inferior, regras de média acima ou abaixo, valores duplicados e exclusivos, células em branco e não em branco, células com erro e sem erro, barras de dados, escalas de duas e três cores e todas as 17 famílias de conjunto de ícones de linha de base- Regras de formato condicional direto suportam prioridades explícitas, avaliação de parar se verdadeiro, opções de desvio-padrão de média e igualdade, substituição de limite de ícone, exibição somente de ícone e reversa, visibilidade do valor da barra de dados, cores BGR e estilos diferenciais de preenchimento, cor da fonte, negrito e itálico
Alterado
- O gravador direto deduplica estilos diferenciais equivalentes entre planilhas e armazena apenas regras e estilos de formato condicional, de modo que o uso de memória escala com a contagem de regras em vez do número de linhas da planilha
- Os tipos de limite mínimo e máximo automáticos da barra de dados são normalizados para os tokens padrão
minemaxno elemento OOXML de base para ampla compatibilidade com planilhas
Versão 2.181.0
Adicionado
TXLSDirectWriteragora grava a proteção de planilha e pasta de trabalho sem armazenar os dados da planilha em buffer, incluindo 15 permissões granulares de planilha, verificadores legados de senha, metadados de hash modernos, intervalos protegidos editáveis com senhas opcionais ou descritores de segurança, bloqueios de estrutura e janela da pasta de trabalho, atribuição de verificador bruto e limpeza de proteção
Corrigido
- Âncoras de desenho sem suporte agora retêm cada elemento de fechamento quando reconstruídas para saída de ida e volta, de modo que desenhos somente de forma permaneçam bem formados após abertura e salvamento
- As permissões de proteção de planilha XLSX agora seguem a definição de sinalizador de bloqueio do OOXML, de modo que ações permitidas gravam
0, ações proibidas gravam1e atributos omitidos reabrem com seus padrões de esquema - As senhas legadas de planilha, intervalo protegido e pasta de trabalho XLSX agora usam o algoritmo de verificador de 16 bits compatível com Excel com conversão ANSI e o limite de 15 bytes
Versão 2.180.0
Adicionado
- O modelo de planilha XLSX agora transporta em ida e volta os elementos do Gerenciador de Cenários E-Se (
<scenarios>) e Consolidação de Dados (<dataConsolidate>). Novas propriedades de XML brutoScenariosXmleConsolidateXmlemTXLSXWorksheetcarregam o conteúdo interno textualmente — o gravador emite os elementos de envoltório, o leitor analisa os filhos de cenário/consolidação de dados de volta. Arquivos de modelagem financeira que definem cenários ou definições de consolidação não os perdem mais em ida e volta
Versão 2.179.0
Adicionado
- Uma nova função auxiliar
XlsxBuildNumFmtconstrói códigos de formato de número OOXML a partir de propriedades semânticas —Decimals,Thousands(separador),NegativeRed(negativos em vermelho),CurrencySymbolePercent. Os chamadores não precisam mais escrever manualmente strings de formato como"$#,##0.00;[Red]-$#,##0.00"— o construtor as produz a partir de parâmetros simples. Projetado para uso comCell.NumberFormatouWorkbook.NumberFormats.Add
Versão 2.178.0
Adicionado
- O modelo de planilha XLSX agora transporta em ida e volta o nome de código VBA (
<sheetPr codeName="..."/>), essencial para interoperabilidade VBA, onde o projeto VBA faz referência a planilhas pelo nome de código. Nova propriedadeCodeNameemTXLSXWorksheet - Os comentários agora suportam um alternador de visibilidade
AlwaysShowemTXLSXComment— quando Verdadeiro o balão do comentário está sempre visível (alternador "Mostrar/Ocultar Comentário" por comentário do Excel), não apenas ao passar o mouse - A validação de dados agora transporta em ida e volta o atributo de modo IME (
imeMode) emTXLSXDataValidation. A enumeração de 11 valores controla o comportamento do método de entrada CJK ao entrar em uma célula (noControl / off / on / hiragana / fullKatakana / etc.). Essencial para arquivos de localidade japonês/coreano/chinês - O modelo de planilha ganha uma propriedade
PaneStatepara o atributo de estado do painel em<pane>além do tratamento existente de modo congelado — suporta os estadosfrozenSplit(congelar e depois rolável) esplit
Versão 2.177.0
Adicionado
- Três funções de planilha anteriormente registradas, mas não implementadas, agora têm despacho completo:
DOLLAR(texto formatado como moeda),FIXED(texto com decimal fixo com supressão opcional de vírgula) eAREAS(contagem de áreas em uma referência). Anteriormente elas eram registradas emInitFuncHash, mas não tinham caso no motor de cálculo — avaliar=DOLLAR(...)retornava silenciosamente resultados incorretos - O modelo de planilha XLSX agora transporta em ida e volta escalas de zoom por tipo de exibição (
zoomScaleNormal/zoomScalePageLayoutView/zoomScaleSheetLayoutView), cor da linha de grade (sheetView color) e sinalizadores de exibição da visão de planilha (showFormulas/showZeros). Novas propriedades emTXLSXWorksheet:ZoomNormal,ZoomPageLayout,ZoomSheetLayout,GridColor,ShowFormulas,ShowZeros - A direção do resumo do contorno agora é transportada em ida e volta. Novas propriedades
SummaryBelow,SummaryRighteShowOutlineSymbolsemTXLSXWorksheetcontrolam se as linhas/colunas de resumo aparecem abaixo/à direita dos detalhes e se os símbolos de contorno estão visíveis. O gravador emite<outlinePr>dentro de<sheetPr>; o leitor o analisa de volta - O calcPr da pasta de trabalho agora carrega os atributos
forceFullCalcecalcCompletedao lado do trio existentecalcId/fullCalcOnLoad/calcMode/iterate
Versão 2.176.0
Adicionado
- O motor de fórmulas XLSX agora resolve referências estruturadas de tabela antes da compilação. Um novo método
ResolveStructuredRefsemTXLSXWorkbookexamina o texto da fórmula em busca de padrõesTableName[ColumnSpec]e os substitui por referências de intervalo A1 concretas usando a coleçãoTXLSXTableda pasta de trabalho. As especificações com suporte incluem intervalo de dados da coluna (Sales[Qty]), coluna da linha atual (Sales[@Total]), dados completos (Sales[#Data]/Sales[#All]), cabeçalhos (Sales[#Headers]) e linha de totais (Sales[#Totals]). A resolução é executada automaticamente dentro deGetCompiledFormula— fórmulas existentes não são afetadas, pois identificadores que não são de tabela são deixados textualmente. Anteriormente referências estruturadas causavam falha na compilação da fórmula
Versão 2.175.0
Adicionado
- O motor de fórmulas agora suporta a compilação de fórmulas no estilo de referência R1C1. Um novo método
GetCompiledFormulaR1C1emTXLSCalculator(eGetCompiledR1C1emTXLSFormula) aceita uma fórmula escrita em notação R1C1 (R2C3para absoluta,R[-1]C[2]para relativa,RCpara a célula atual) e a compila convertendo primeiro para a notação A1 usando a linha/coluna da célula da fórmula. Uma função autônomaR1C1ToA1executa a conversão — ela detecta marcadoresR/Cautônomos (não parte de um nome de função como ROUND), analisa os deslocamentos opcionais entre colchetes e produz a referência A1 equivalente. Literais de string e identificadores são ignorados. Anteriormente apenas fórmulas no estilo A1 podiam ser compiladas
Versão 2.174.0
Adicionado
- A saída de AutoFiltro de
TXLSDirectWriteragora suporta colunas de filtro de planilha e de tabela, filtros de valor, filtros em branco, filtros de grupo de datas, filtros de comparação personalizados, filtros dinâmicos, filtros superior/inferior, sinalizadores de botão de filtro, estados de ordenação, condições de ordenação, escape de XML e supressão duplicada de intervalo de filtro de planilha/tabela durante o streaming de arquivos XLSX
Versão 2.173.0
Adicionado
- A saída de tabela de
TXLSDirectWriteragora suporta comentários de tabela, contagens de linha de totais, rótulos de linha de totais por coluna, funções de linha de totais por coluna, fórmulas de coluna calculada, fórmulas de linha de totais e escape de XML para metadados de coluna de tabela durante o streaming de arquivos XLSX
Versão 2.172.0
Adicionado
TXLSDirectWriteragora grava partes de tabela do Excel durante o streaming de arquivos XLSX, incluindo relacionamentos de tabela de planilha, tipos de conteúdo de parte de tabela, intervalos de tabela, nomes de colunas, sinalizadores de linha de cabeçalho e de totais e sinalizadores de exibição de estilo de tabela integrados sem construir um modelo de objeto de pasta de trabalho completo
Versão 2.171.0
Adicionado
TXLSDirectWriteragora grava validações de dados de planilha durante o streaming de arquivos XLSX, incluindo lista, número inteiro, decimal, data, hora, comprimento de texto, fórmula personalizada,sqrefarbitrário, prompt, alerta de erro, permitir em branco, menu suspenso e sinalizadores de mensagem de entrada/erro sem construir um modelo de objeto de pasta de trabalho completo
Versão 2.170.0
Adicionado
TXLSDirectWriteragora grava nomes definidos de pasta de trabalho e locais de planilha durante o streaming de arquivos XLSX, incluindo nomes ocultos, comentários, intervalos absolutos gerados, áreas de impressão, linhas de título de impressão, colunas de título de impressão, títulos de impressão combinados, referências de nome de planilha entre aspas, escape de XML e semântica de substituição para setters repetidos de nome de impressão sem construir um modelo de objeto de pasta de trabalho completo
Versão 2.169.0
Adicionado
TXLSDirectWriteragora grava hiperlinks de planilha durante o streaming de arquivos XLSX, incluindo relacionamentos de URL externa, mailto e de arquivo, locais internos de planilha, texto de exibição, dicas de ferramenta, intervalos de hiperlink de célula única ou de várias células, normalização de URLwww.simples, escape de XML e alvos de relacionamento codificados por porcentagem sem construir um modelo de objeto de pasta de trabalho completo
Versão 2.168.0
Adicionado
TXLSDirectWriteragora grava metadados de impressão e de visão de planilha durante o streaming de arquivos XLSX, incluindo alternadores de exibição de linha de grade e de cabeçalho de linha/coluna, margens de página, texto ímpar de cabeçalho/rodapé, linhas de grade e títulos de impressão, centralização de página, tamanho do papel e orientação paisagem, dimensões de ajustar à página e quebras de página manuais de linha ou coluna sem construir um modelo de objeto de pasta de trabalho completo
Versão 2.167.0
Adicionado
TXLSDirectWriteragora grava metadados de layout de planilha durante o streaming de arquivos XLSX, incluindo tamanhos padrão de coluna e linha, larguras de coluna personalizadas, linhas e colunas ocultas, intervalos mesclados, intervalos de AutoFiltro, painéis congelados, cores de guia de planilha e visões de planilha da direita para a esquerda sem construir um modelo de objeto de pasta de trabalho completo
Versão 2.166.0
Adicionado
- Os fluxos de trabalho de streaming de XLSX agora incluem listagem de nomes de planilha sem varreduras de planilha, seleção de planilha por cursor de linha baseada em nome, streaming de datas numéricas brutas, reutilização do gravador direto, gravação de célula de erro e gravadores de resultado de fórmula em cache para valores numéricos, de string, Booleanos, de data e de erro
Versão 2.165.0
Corrigido
TXLSDirectReader.ReadStreamagora restaura a posição do fluxo do chamador após a varredura direta, correspondendo ao contrato de fluxo documentado e permitindo que aplicativos reutilização o mesmo fluxo após uma passagem de leitura direta
Versão 2.164.0
Adicionado
- As exportações de dataset
TDataToXLSagora suportam listas de stringsIncludeFieldseExcludeFields. Os aplicativos podem listar campos exportados como permitidos, omitir colunas confidenciais e manter cabeçalhos, linhas de dados, larguras de coluna e callbacks de exportação alinhados com o conjunto de campos selecionado
Versão 2.163.0
Adicionado
- A exportação CSV ganha citação de texto configurável nos motores XLS e XLSX.
TXLSWorkbookagora expõeCSVEmitFormulaseCSVQuoteAllStrings, eTXLSXWorkbookadicionaCSVQuoteAllStrings. Quando ativado, a exportação de fórmulas grava o texto da fórmula e os campos de string são citados, enquanto campos numéricos, de data, Booleanos, Nulo e Vazio mantêm as regras normais de citação
Versão 2.162.0
Adicionado
- O motor XLSX ganha um sistema de eventos de progresso anulável. Um novo callback
OnProgressExemTXLSXWorkbookdispara junto com oOnProgressexistente com três aprimoramentos: (1) um parâmetroTXLSXProgressState(ppsBegin/ppsWork/ppsEnd) que delimita cada fase para que as IUs saibam quando uma operação começa e termina; (2) um parâmetro varAbort: Booleanque permite ao callback cancelar a operação atual no meio do fluxo — os loops de leitura/gravação/cálculo verificamWorkbook.Abortede saem de forma limpa; (3) uma nova fasexlsxProgressExportingpara operações de exportação (HTML/RTF/CSV/ODS). Um método auxiliarFireProgresscentraliza o despacho de callback duplo. O sinalizadorFAbortedé reiniciado no início de cada operação de nível superior (Open / SaveAs / Recalculate)
Versão 2.161.0
Adicionado
- O modelo de gráfico XLSX agora suporta quatro novos elementos de gráfico para maior compatibilidade com o Excel. Tabela de dados do gráfico (
c:dTable):TXLSXChartganha alternadoresShowDataTable+ShowDataTableKeys— quando ativado o gravador emite o elemento de tabela de dados dentro da área de plotagem para que o Excel renderize os dados de origem como uma grade abaixo do eixo do gráfico. Barras sobem/descem + linhas de máxima-mínima (elementos de gráfico de ações/OHLC):TXLSXChartganhaHasUpDownBars+UpDownGapWidtheHasHiLowLines— o gravador emitec:upDownBarsec:hiLowLinesdentro do elemento de gráfico (gráficos de linha/ações). Controles de visão 3D:TXLSXChartganhaRotation3DX/Rotation3DY/Elevation3D/Perspective3D/RightAngleAxes3D— o gravador emitec:view3Dno nível do gráfico quando qualquer propriedade 3D difere do padrão. Anteriormente nenhum desses elementos era emitido, então gráficos construídos com tabelas de dados, elementos de gráfico de ações ou visões 3D os perdiam em ida e volta
Versão 2.160.0
Adicionado
- As referências de fórmula agora se ajustam automaticamente quando linhas ou colunas são inseridas ou excluídas no motor XLSX. O método
ShiftSheetGeometry— chamado porInsertRows/DeleteRows/InsertCols/DeleteCols— agora percorre todas as células de fórmula sobreviventes e regrava suas referências A1 para refletir a mudança estrutural. Um novo scanner de textoXlsxAdjustFormulaRowColRefsdetecta referências de célula única (A1,$B$2) e de intervalo (A1:B3), desloca seus componentes de linha/coluna além do ponto de inserção e converte referências excluídas em#REF!. Tanto referências relativas quanto absolutas são deslocadas (correspondendo ao comportamento do Excel). Anteriormente as fórmulas eram deixadas silenciosamente apontando para as células erradas após uma edição estrutural
Versão 2.159.0
Adicionado
- O estado de ordenação do autofiltro agora é transportado em ida e volta pelo motor XLSX.
TXLSXWorksheetganha uma propriedadeSortStateXmlque carrega o XML interno bruto do elemento OOXML<sortState>(direção de ordenação de coluna, sensibilidade a maiúsculas, método de ordenação e cada<sortCondition>com seu sinalizador descendente + ref). O gravador emite o elemento após<autoFilter>; o leitor analisa os atributos e as condições de ordenação de volta. Anteriormente o estado de ordenação era silenciosamente descartado na leitura e nunca gravado - As configurações fonéticas/ruby CJK agora são transportadas em ida e volta pelo motor XLSX.
TXLSXWorksheetganhaPhoneticFontId,PhoneticType(hiragana / katakana / fullWidthKatakana / noConversion) ePhoneticAlignment(left / center / distributed). O gravador emite<phoneticPr>após<sheetData>; o leitor analisa os atributos de volta. Anteriormente o elemento fonético era silenciosamente descartado na leitura — arquivos do mercado japonês perdiam suas configurações de auxílio de leitura furigana
Versão 2.158.0
Adicionado
- O motor XLSX agora transporta em ida e volta a tabela de estilos de célula nomeados (
<cellStyles>). Uma nova classeTXLSXNamedStyle+ coleçãoTXLSXNamedStylesemTXLSXWorkbookcarrega a superfície completa:Name,XfId,BuiltInId,CustomBuiltIn,Hidden,BuiltinLevel. O gravador emite um<cellStyle>por entrada quando a coleção não está vazia; o leitor os analisa de volta. Anteriormente o gravador definia uma única entrada"Normal"codificada e o leitor descartava todos os estilos nomeados, então arquivos com estilos "Good"/"Bad"/"Total"/nomeados-personalizados perdiam esses nomes em ida e volta
Versão 2.157.0
Adicionado
- O motor XLSX agora transporta em ida e volta o elemento
<calcPr>completo, não apenas os alternadores de cálculo iterativo.TXLSXWorkbookganhaCalcId(o identificador do motor de cálculo que o Excel usa para decidir se os valores em cache estão desatualizados),FullCalcOnLoad(força o Excel a fazer um recálculo completo na abertura — crítico para pastas de trabalho produzidas por um motor que não seja do Excel) eCalcMode(auto / manual / autoNoTable). O gravador emite os atributos correspondentes em<calcPr>; o leitor os analisa de volta. Anteriormente apenasiterate/iterateCount/iterateDeltaeram tratados, e o restante era silenciosamente descartado
Versão 2.156.0
Adicionado
- O avaliador de fórmulas agora implementa 37 funções de planilha que anteriormente eram registradas (ptg atribuído em InitFuncHash), mas não tinham implementação de despacho — elas caíam para
#NAME?. As novas implementações abrangem cinco famílias de funções: Regressão (FORECAST,LINEST,TREND,GROWTH,LOGEST,CORREL,PEARSON,SLOPE,INTERCEPT,RSQ,STEYX), Depreciação (SLN,SYD,DB,DDB,VDB), Estatística Descritiva (AVEDEV,DEVSQ,KURT,SKEW,GEOMEAN,HARMEAN,TRIMMEAN,FREQUENCY), Array Par a Par (SUMXMY2,SUMX2MY2,SUMX2PY2) e Combinatória/Matemática (COMBIN,PERMUT,FACT,QUOTIENT,ROMAN,DEGREES,RADIANS,STANDARDIZE). As funções de regressão usam um solucionador de mínimos quadrados; as funções de depreciação implementam métodos de linha reta, soma dos dígitos dos anos e saldo decrescente; as funções de estatística descritiva calculam desvio absoluto médio, curtose, assimetria, médias geométrica/harmônica/aparada; e as funções par a par calculam a soma das diferenças quadradas entre dois intervalos de tamanho igual. Um novo auxiliarCollectRangeValuesemTXLSCalculatorextrai valores numéricos de argumentos de intervalo para as funções estatísticas
Versão 2.155.0
Adicionado
- O avaliador de fórmulas agora suporta cinco nomes adicionais de compatibilidade estatística e de engenharia:
ERFC,ERFC.PRECISE,BINOM.INV,CHI.INV.RTeF.TEST.ERFCcomplementa a série existente de funções de erro,BINOM.INVbusca o limite da CDF binomial,CHI.INV.RTfaz alias do inverso do qui-quadrado da cauda direita, eF.TESTretorna o valor-p bicaudal da variância amostral
Versão 2.154.0
Adicionado
- O avaliador de fórmulas agora resolve referências entre pastas de trabalho por meio de um novo callback
OnGetExternalValueemTXLSCalculator. Quando uma referência de intervalo 3D aponta para uma pasta de trabalho externa ([1]Sheet1!A1), o avaliador encaminha pelo callback em vez de retornar#REF!. O motor XLSX conecta esse callback aGetExternalCellValue, que mapeia o índice SupBook + índice da planilha para o cache<sheetDataSet>doTXLSXExternalLinkcorrespondente e decodifica o valor da célula em cache por seu atributo de tipo OOXML (numérico / Booleano / string / erro). Anteriormente as fórmulas entre pastas de trabalho retornavam#REF!incondicionalmente; a infraestrutura de callback agora permite que qualquer motor (BIFF8, XLSX ou um host de calculadora personalizado) forneça valores externos - O avaliador de fórmulas agora executa difusão de matriz elemento a elemento em operadores binários (
+/-/*///^). Quando qualquer operando é uma matriz variante 1D ou 2D (por exemplo, um resultado de função de matriz, um intervalo transbordado ou um operando de matriz CSE), o operador é aplicado elemento a elemento; um operando escalar é difundido para todos os elementos do operando de matriz. O novo auxiliarApplyArrayBinaryOptrata a validação de forma, a difusão escalar e a propagação de divisão por zero. A aritmética escalar legada não foi alterada — o caminho de matriz só é ativado quando pelo menos um operando é uma matriz variante - O avaliador de fórmulas agora reconhece a função
TABLE(DataTable de análise E-Se). O Excel armazena tabelas de dados como fórmulas de matriz CSE cujo corpo éTABLE(rowRef, colRef); anteriormenteTABLEnão era reconhecida e caía para#NAME?. A função é registrada com um ptg sintético (ftabTABLE = 4232) de modo que faz ida e volta pela codificação de fórmula BIFF8, e no momento da avaliação retorna um valor de espaço reservado (0) — os resultados reais são pré-calculados pelo Excel e armazenados como valores de célula em cache, então o HotXLS não reavalia a lógica de substituição
Versão 2.153.0
Adicionado
- O modelo tipado de Tabela Dinâmica agora carrega as propriedades tipadas do eixo de página (Hier / Caption / Name), o escopo de auto-ordenação e os ganchos de ida e volta de XML bruto para
<formats>e<extLst>necessários para maior compatibilidade com o Excel.TXLSPivotFieldganhaPageHier/PageCaption/PageName(F16 — nome de hierarquia OLAP + legenda do eixo de página + nome de exibição) eAutoSortScope(F20 — referência de intervalo A1 que fixa as células que o Excel usa para auto-ordenar os itens do campo);TXLSPivotTableganhaFormatsXml/ExtLstXml(F17 — ida e volta de XML interno bruto para o bloco de substituições de FC / formato de número de<formats>e o bloco de segmentação de dados / linha do tempo / x14 de<extLst>, emitido textualmente quando definido, de modo que a ida e volta seja segura mesmo entre versões do motor). O gravador XLSX emite os atributos correspondentes<pageField hier=... cap=... name=.../>, o filho<autoSortScope>de<pivotField>e os blocos<formats>+<extLst>antes do sentinela de fechamento - O rastreador de fórmulas agora registra instantâneos da pilha de operandos por etapa, permitindo um verdadeiro depurador passo a passo de "Avaliar Fórmula".
TXLSFormulaStepganhaStepKind(push / reduce / function),StackBefore/StackAfter(instantâneos separados por vírgula da pilha de operandos no momento em que cada etapa começou / terminou) eTokenStart/TokenEnd(intervalo de caracteres baseado em 1 que fixa a etapa de volta à fórmula de origem).TXLSFormulaTracerganhaTraceReversed(retorna as mesmas etapas na ordem inversa de avaliação — útil para uma IU de passo a passo que percorre do resultado final em direção aos operandos originais) e uma propriedadeStepCount. Anteriormente o rastreador registrava apenas Depth / Source / Expression / Value sem estado da pilha - A exportação para HTML agora incorpora imagens por célula por meio de um novo callback
OnCellImageemTXLSHTMLExporte uma nova opçãoxhImages. Quando a opção está definida e o callback está conectado, o exportador solicita ao implementador o fragmento<img>de cada célula (normalmente um data-URI em Base64) e o anexa após o texto da célula. Isso desacopla o exportador do armazenamento de imagens BIFF8 do motor XLS (que vive no registro MsoDrawing por planilha), de modo que o exportador não precisa analisar as âncoras ele mesmo. A exportação para HTML do motor XLSX já incorporava imagens; isso fecha a lacuna para o motor XLS - A importação de RTF agora aplica propriedades de caractere (negrito / itálico / sublinhado / tachado / tamanho) das palavras de controle RTF à fonte da célula de destino.
TXLSRTFImportrastreia\b/\i/\ul/\strike/\fsem todo o documento e empurra a formatação da execução dominante para o XF da célula no momento do commit. Uma nova propriedadeImportCharFormat(padrão Verdadeiro) alterna o comportamento; defina como Falso para restaurar a importação legada somente de texto. Células de múltiplas execuções colapsam em um único XF (a última execução ativa vence), já que a API de célula do motor XLS é em nível de célula, não por fragmento — mas isso é muito melhor do que descartar toda a formatação, que era o que o importador legado fazia - Uma nova classe
TXLSHTMLImportanalisa tabelas HTML em células de planilha. Percorre a primeira<table>na origem, emitindo uma linha de planilha por<tr>e uma célula por<td>/<th>. Honracolspan/rowspan(mesclagem estilo Excel), remove tags dentro de uma célula (colapsando formatação aninhada em texto simples), decodifica as cinco entidades de caractere padrão (&/</>/"/'/ ) e as formas numéricas&#NNN;/&#xNN;e converte strings numéricas limpas em Double para que as tabelas importadas permaneçam computáveis. Projetado para a saída que o próprio HotXLS produz (SaveAsHTML) além de tabelas HTML de qualidade de copiar-colar em geral; não é um analisador HTML5 completo
Versão 2.152.0
Adicionado
- As tabelas XLSX agora retêm metadados de totais no nível da coluna e fórmulas de tabela.
TXLSXTableexpõeColumnTotalsRowFunctions[],ColumnTotalsRowLabels[],ColumnCalculatedColumnFormulas[]eColumnTotalsRowFormulas[];SaveAsemite o XML de coluna de tabela correspondentetotalsRowFunction,totalsRowLabel,calculatedColumnFormulaetotalsRowFormula,Openos lê de volta e clones de tabela os preservam
Versão 2.151.0
Adicionado
- O modelo tipado de Tabela Dinâmica agora carrega a coleção de filtros por campo, o alternador de multisseleção, a superfície discretePr + groupItems do fieldGroup e o modelo de itens calculados / membros calculados necessários para maior compatibilidade de Tabela Dinâmica.
TXLSPivotFieldganha uma coleção tipadaTXLSPivotFilters(cada entrada carregaFilterTypena enumeração OOXMLST_FilterTypede 80 membros — famílias count / percent / sum / caption / value / date — além deValue1/Value2/StrValue1/StrValue2,EvalOrder,DataField,MemberPropertyId,Name,Description), um alternadorMultipleItemSelectionAllowed(F9) e uma coleçãoTXLSPivotCalculatedItem(F14).TXLSPivotCacheFieldganhaDiscreteIndices[]+AddDiscreteIndexeGroupItemLabels[]+AddGroupItempara os blocos discretePr + groupItems do fieldGroup (F13).TXLSPivotTableganha uma coleçãoTXLSPivotCalculatedMember(F14). O gravador XLSX emite os correspondentes<pivotField multipleItemSelectionAllowed="1">, o bloco por campo<filters><filter .../>, o elemento<fieldGroup><discretePr>...</discretePr><groupItems>...</groupItems></fieldGroup>, o bloco por campo<calculatedItems>e o bloco no nível da tabela<calculatedMembers>— de modo que tabelas dinâmicas construídas programaticamente com filtros / multisseleção / agrupamento / itens calculados façam ida e volta
Versão 2.150.0
Adicionado
- Os nomes definidos agora mantêm o texto de sua fórmula válido quando a planilha a que fazem referência é excluída ou renomeada. Excluir uma planilha regrava cada qualificador
SheetN!dentro da fórmula de um nome definido para#REF!(correspondendo ao comportamento do Excel); renomear uma planilha regrava o qualificador para o novo nome. Anteriormente o texto da fórmula continuava apontando para um nome de planilha inexistente, que o Excel sinalizava como um link quebrado ao reabrir - O modelo tipado de Tabela Dinâmica agora carrega a ordem de classificação no nível do campo e os alternadores de layout, além dos atributos de layout / exibição no nível da tabela necessários para maior compatibilidade de layout de Tabela Dinâmica.
TXLSPivotFieldganhaSortType(manual / crescente / decrescente),Compact,Outline,SubtotalTop,DragToRow/DragToCol/DragToPage/DragToData,ShowAll,InsertBlankRow,NumFmtId;TXLSPivotTableganhaCompact/CompactData/Outline/OutlineData/Indent/ShowEmptyRow/ShowEmptyCol/ShowHeaders/ShowDrill/EnableDrill/FieldListSortAscending/GridDropZonesalém deRowHeaderCaption/ColHeaderCaption/ErrorCaption/MissingCaption/ShowError/ShowMissinge o par de layout do eixo de páginaRowPageCount/ColPageCount. O gravador XLSX emite os atributos correspondentes<pivotField sortType=... compact=... outline=...>e<pivotTableDefinition indent=... outline=... showEmptyRow=...>e o elemento<location rowPageCount=... colPageCount=.../>de modo que tabelas dinâmicas construídas programaticamente carreguem o layout definido pelo usuário em vez dos padrões do Excel - Um novo método
FormulaIsVolatileemTXLSWorkbookrelata se uma fórmula forçaria um recálculo a cada passagem de cálculo — ou seja, chama uma função volátil (NOW / RAND / TODAY / OFFSET / INDIRECT) ou carrega uma referência não resolúvel. A sonda compartilha o mesmo extrator de dependências que o motor de recálculo usa, então a resposta corresponde ao queRecalculaterealmente faz. Os chamadores podem usá-lo para sinalizar células para uma IU de verificação, popular um conjunto volátil de cadeia de cálculo em uma pasta de trabalho totalmente nova ou ignorar o cacheamento do resultado de uma fórmula recém-inserida
Versão 2.149.0
Adicionado
- Os caches de Tabela Dinâmica agora podem ser atualizados a partir de seu intervalo de origem programaticamente. Um novo método
RefreshPivotCache(ACacheId)emTXLSXWorkbookexamina novamente o intervalo de origem do cache, reconstrói o domínio de itens compartilhados por campo (rededuplicando valores e rederivando os limites por tipo) e regrava os índices de itens por registro. Anteriormente o HotXLS dependia do sinalizador codificadorefreshOnLoad="1"e adiava todo o trabalho de atualização para o Excel na próxima abertura; pipelines programáticos agora podem atualizar em processo
Versão 2.148.0
Adicionado
InsertColsno motor XLSX agora herda a largura da coluna do vizinho à esquerda, correspondendo ao comportamento padrão do Excel para "inserir coluna". Anteriormente a coluna inserida assumia a largura padrão da pasta de trabalho, produzindo uma lacuna de fidelidade visível após uma reabertura- O motor XLSX ganha auxiliares convenientes de colapso de contorno
ToggleColGrouped/ToggleRowGroupedemTXLSXWorksheet, que percorrem a árvore de contorno e colapsam ou expandem o grupo em um determinado nível. Os sinalizadores de colapso ele mesmos já faziam ida e volta; isso adiciona a API conveniente faltante de percorrer a árvore
Versão 2.147.0
Adicionado
- A exportação para HTML agora emite âncoras
<a name>nas células que são alvos de hiperlink interno, de modo que hiperlinks#SubAddresssejam resolvidos corretamente quando o leitor clica neles. Anteriormente os links eram emitidos, mas os alvos não tinham âncoras, então saltos internos resolviam para nada - A exportação CSV ganhou uma propriedade
CSVEmitFormulasemTXLSXWorkbook. Quando Verdadeiro, células de fórmula exportam seu texto de fórmula (=SUM(A1:A2)) em vez do valor calculado — útil para depuração e para pipelines que reimportam em um motor diferente - URLs de hiperlink externo agora são codificadas por porcentagem na gravação (
XlsxEncodeHyperlinkUrl): espaço, colchetes angulares, aspas, chaves, barras verticais, barras invertidas, acentos circunflexos e crases são codificados como%XXno atributo<Relationship Target="..."/>de modo que o arquivo abra corretamente em todos os navegadores. Sequências codificadas por porcentagem existentes (%20) são preservadas como estão - As informações de estilo de Tabela Dinâmica agora carregam a superfície completa
pivotTableStyleInfo:StyleName,ShowRowHeaders,ShowColHeaders,ShowRowStripes,ShowColStripes,ShowLastColumnemTXLSPivotTable. O gravador XLSX emite o elemento correspondente de modo que tabelas dinâmicas construídas programaticamente carreguem o estilo de faixa escolhido pelo usuário em vez do padrão codificado - Um novo método
CalculateAndVerifyemTXLSXWorkbookreavalia todas as células de fórmula e compara o resultado calculado com o valor em cache da célula. Retorna a contagem de incompatibilidades (0 = todos os valores em cache correspondem ao cálculo recente do motor; fórmulas voláteis são excluídas). Útil para QA ao portar pastas de trabalho entre motores ou validar se um gravador não corrompeu valores em cache
Versão 2.146.0
Adicionado
- O motor XLSX agora suporta cálculo de referência circular iterativo (modo de cálculo iterativo do Excel). Um novo triplo de propriedades
Iterate/IterateCount/IterateDeltaemTXLSXWorkbookcontrola o comportamento: quandoIterate=Truee um ciclo de referência é detectado duranteRecalculate, o motor reavalia as células membros do ciclo atéIterateCountvezes (padrão 100) ou até que a mudança de cada célula seja< IterateDelta(padrão 0,001), em vez de retornar#REF!. As configurações fazem ida e volta pelo elemento OOXML<calcPr iterate="1" iterateCount="N" iterateDelta="X"/>. Modelos financeiros com referências circulares intencionais (juros sobre juros, alocações circulares) agora convergem em vez de errar - Os campos de cache de Tabela Dinâmica agora carregam um modelo de agrupamento para agrupamento de intervalo numérico e hierarquia de datas.
TXLSPivotCacheFieldganhaHasGroup+GroupStartNum/GroupEndNum/GroupInterval(intervalo numérico) eGroupByDate/GroupDays/GroupMonths/GroupQuarters/GroupYears/GroupHours/GroupMinutes/GroupSeconds/GroupStartDate/GroupEndDate(data). O gravador XLSX emite o elemento<fieldGroup><rangePr groupBy="range|days|months|..."/>de modo que tabelas dinâmicas construídas programaticamente com campos agrupados correspondam à saída do Excel - A exportação para HTML agora emite notas de fim para comentários. Quando
xhCommentsestá nas opções de exportação, cada célula comentada recebe um link sobrescrito[n]e o texto completo do comentário (autor + corpo) é listado como uma seção de nota de fim após a tabela com uma âncora de volta para a célula. Anteriormente os comentários estavam disponíveis apenas por meio do atributotitle=da célula, que é invisível quando impresso ou copiado
Versão 2.145.0
Adicionado
- Os literais de erro de fórmula BIFF8 (token
tErr) agora decodificam em um item de sintaxeSA_ERRORtipado em vez de falhar na análise da fórmula. Uma célula armazenando=#N/A(ou qualquer uma das sete constantes de erro do Excel) anteriormente fazia com que toda a fórmula fosse descartada na leitura; o byte de erro agora faz ida e volta por leitura → avaliação → gravação e reconstrói para sua forma de texto (#NULL!,#DIV/0!,#VALUE!,#REF!,#NAME?,#NUM!,#N/A) por meio de um novo auxiliarXlsErrorToString - O token BIFF8
tIsect $0F(operador de interseção implícita) agora decodifica no tradutor de fórmula binária, construindo o mesmo nóSA_ISECTque o analisador de texto produz para@. Anteriormente uma fórmula binária contendotIsectfalhava ao analisar - A formatação condicional de barra de dados agora emite o bloco de extensão
x14do Excel 2010+ naextLstda planilha quando o modelo carrega qualquer campo x14 não padrão (cor de preenchimento negativo, gradiente desativado, cor do eixo, direção, borda). Um novoBuildDataBarExtXmlconstrói o elementoextde<x14:conditionalFormattings>com a prioridade correspondente, par cfvo, preenchimento + cores negativa e do eixo, e os atributos gradient/border/direction/negativeBarColorSameAsPositive
Versão 2.144.0
Adicionado
- O motor XLSX agora pode gravar pastas de trabalho criptografadas Agile (
TXLSXWorkbook.SaveAsEncryptedAgile), fechando uma lacuna de compatibilidade de leitura/gravação de alto valor. O Agile é o que o Excel 2010+ grava por padrão para arquivos .xlsx protegidos por senha; o HotXLS anteriormente podia ler Agile, mas apenas gravar Criptografia Padrão (AES-128). O novo pipeline de gravação espelha o caminho de descriptografia existente: hash de senha SHA-512 com uma contagem de rotação de 100000 iterações, criptografia de pacote por segmento AES-256-CBC, uma chave intermediária gerada aleatoriamente encapsulada por meio das três chaves de bloco fixadas na especificação e um XML descritor<encryption>completo carregando o verificador criptografado + blobs de chave. A saída é fiel em bytes ao que o Excel produz e faz ida e volta de forma limpa porXlsLoadAgileEncryptedFile(verificado por teste: senha correta descriptografa, senha incorreta rejeitada) - Novas primitivas criptográficas sustentam o caminho de gravação Agile:
XlsHMACSHA512(RFC 2104, necessário para o elementodataIntegrity),XlsBase64Encode(codificador RFC 4648 que espelha o decodificador existente) eAESEncryptCBC(criptografia AES-CBC para qualquer tamanho de chave 128/192/256, o inverso doAESDecryptCBCexistente). A unidade AES agora importaaes_encrypt_key192/aes_encrypt_key256do Gladman obj (anteriormente apenas criptografia de 128 bits estava disponível)
Versão 2.143.0
Adicionado
- O avaliador de fórmulas agora analisa e avalia o operador de interseção explícito
@(sintaxe de matriz dinâmica do Excel 365, por exemplo=A2:A4 @ B2:B4). O lexer emite um novo tokenLT_ISECTpara o símbolo@, o analisador de precedência constrói um nóSA_ISECT(ligando mais forte que^, mais frouxo que%) e um novo avaliadorIntersectRangesresolve ambos os operandos como intervalos e retorna o valor da única célula cruzante — a regra de interseção implícita do Excel. O serializador de token BIFF emitetIsect $0Fde modo que o operador faz ida e volta pelo XLS, e o caminho de reconstrução de texto da fórmula emite a forma implícita de espaço. Anteriormente tais fórmulas falhavam ao analisar - Um codificador Padrão Base64 (
XlsBase64Encode) agora está disponível, espelhando oXlsBase64Decodeexistente. Este é o pré-requisito para o caminho de gravação de criptografia Agile, que emite saltValue / encryptedVerifierHashInput / encryptedKeyValue / encryptedHmacValue como valores de atributo Base64 - O evento
OnProgressda pasta de trabalho agora também dispara durante o recálculo completo (Recalculate), com uma nova fasexlsxProgressCalculating. Anteriormente o evento disparava apenas durante a leitura e gravação, então recálculos completos longos não davam nenhuma pulsação à IU. O evento dispara aproximadamente a cada 4% das células para evitar inundações - As propriedades de documento estendidas (
docProps/app.xml) agora transportam em ida e volta mais três campos que o Excel grava para documentos protegidos por senha / baseados em modelo:Manager,TemplateeDocSecurity(um campo de bits: 1=protegido por senha, 2=somente leitura recomendado, 4=somente leitura imposto, 8=bloqueado para anotação)
Versão 2.142.0
Adicionado
- O modelo tipado de Tabela Dinâmica agora carrega a superfície de metadados, origem, campo calculado, "mostrar valores como" e limites de itens compartilhados que a rodada anterior de análise sinalizou como lacunas.
TXLSPivotCacheganhaRefreshOnLoad/RefreshedBy/RefreshedDate/MissingItemsLimit/CreatedVersion/RefreshedVersion/MinRefreshableVersion/EnableRefresh/BackgroundQuery/SaveDataalém de uma forma de origem de planilha tipada (SourceName/SourceRelId/SourceIsNamedRange);TXLSPivotCacheFieldganhaFormula/DatabaseField/MemberPropertyField(campos calculados) e os limites de itens compartilhados (ContainsBlank/ContainsInteger/ContainsString/ContainsNumber/ContainsDate/MinValue/MaxValue/MinDate/MaxDate/HasBounds);TXLSPivotDataFieldganhaShowDataAs/BaseField/BaseItempara as transformações "mostrar valores como" (percentual de / diferença / total acumulado / índice). O gravador XLSX (BuildPivotCacheDefinitionXml/BuildPivotTableXml) honra todos eles de modo que uma tabela dinâmica construída programaticamente (AddPivotTable) emite umpivotCacheDefinition+pivotTableDefinitionmais rico — refreshOnLoad / trio de versão / refreshedBy / origem de intervalo nomeado / fórmula de cacheField calculada / limites de sharedItems / subtotal de dataField + showDataAs. Tabelas dinâmicas lidas de um arquivo continuam a transportar em ida e volta seu XML bruto textualmente - O comportamento de âncora de imagem agora é transportado em ida e volta por meio de uma nova propriedade
AnchorTypeemTXLSXImage(xaTwoCell= mover e dimensionar com células,xaOneCell= mover, mas não dimensionar,xaAbsolute= não mover nem dimensionar). O gravador escolhe o elemento de âncora (xdr:oneCellAnchor/xdr:twoCellAnchor editAs=.../xdr:absoluteAnchor) para corresponder; o leitor analisa o nome do elemento + atributoeditAsde volta. Mapeia para a caixa de diálogo Excel botão direito → Tamanho e Propriedades → Propriedades - O cabeçalho/rodapé agora transporta em ida e volta a diferenciação de páginas par/primeira.
TXLSXWorksheetganhaEvenHeaderText/EvenFooterText/FirstHeaderText/FirstFooterTextalém dos quatro alternadores de<headerFooter>(DifferentOddEven,DifferentFirst,ScaleWithDoc,AlignWithMargins). Arquivos em que o usuário ativou "Diferentes páginas ímpares e pares" ou "Diferentes na primeira página" não perdem mais as seções de página par/primeira em ida e volta - A configuração de página agora transporta em ida e volta os atributos estendidos
<pageSetup>que o Excel grava para configurações de impressão não padrão:Copies,FirstPageNumber+UseFirstPageNumber,HorizontalDpi,VerticalDpi,PrintErrors(exibido/em branco/traço/NA),UsePrinterDefaults - O
<sheetFormatPr>agora transporta em ida e voltacustomHeight,zeroHeight,outlineLevelRoweoutlineLevelCol, então arquivos em que o usuário definiu uma altura de linha padrão fixada pelo usuário, linhas padrão ocultas ou um nível de contorno padrão não perdem mais esse comportamento - A formatação condicional de barra de dados transporta em ida e volta o atributo padrão
gradient(gradiente vs. preenchimento sólido), eTXLSDataBarSpecganha os campos de extensãox14do Excel 2010+ (NegativeBarColor,NegativeBarColorSameAsPositive,GradientFill,AxisColorcom tema/tonalidade,Direction,Border) no modelo para que consumidores da API possam defini-los - Os balões de comentário transportam em ida e volta seu desenho VML textualmente. O leitor captura
xl/drawings/vmlDrawingN.vmlcomo está e o gravador o reproduz ao salvar (em vez do modelo embutido de balão amarelo), de modo que a posição / tamanho / cor de preenchimento / visibilidade definidos pelo usuário de cada balão sobrevivam - Os corpos dos comentários transportam em ida e volta a formatação por execução.
TXLSXCommentganha um payloadRichText: TXLSXRichTextpreguiçoso (reutilizando o modelo de execução de strings compartilhadas); o gravador emite um<r><rPr>...</rPr><t>...</t></r>por execução quando RichText carrega formatação, e o leitor analisa<b/>,<i/>,<sz val=N/>,<color rgb=.../>de volta para que negrito / itálico / tamanho / cor sobrevivam - O avaliador de fórmulas agora implementa
SUBTOTAL(todos os onze agregadores: AVERAGE / COUNT / COUNTA / MAX / MIN / PRODUCT / STDEV / STDEVP / SUM / VAR / VARP, além das variantes 101–111 de ignorar ocultas) eAGGREGATE(dezenove agregadores com os sinalizadores de código de opção 0–7 que selecionam o salto de erro/oculto, incluindo a família LARGE / SMALL / MEDIAN / PERCENTILE / QUARTILE com seu argumentok). Ambos anteriormente caíam para o caminho de função sem suporte;SUBTOTALera registrada, mas não tinha implementação,AGGREGATEnão era registrada - As funções de planilha
CELLeINFOagora são avaliadas:CELLsuportaaddress,col,row,type,contents,filename,formate osinfo_types de estado da GUI (color,parentheses,prefix,protect,width) retornam padrões neutros;INFOsuportaosversion,system,recalc,memavail,numfile,release,origin. Ambas eram registradas, mas caíam para#NAME? - A formatação condicional agora transporta em ida e volta os atributos
cfRulestopIfTrue,stdDev,equalAverageetimePeriod, além da família completa de dez membrostimePeriod(yesterday / today / tomorrow / last7Days / lastWeek / thisWeek / nextWeek / lastMonth / thisMonth / nextMonth). Eles eram silenciosamente descartados na leitura; o Excel os grava rotineiramente nas regras de média acima e faixa de datas, e descartá-los mudava como a regra era reavaliada ao reabrir - A exportação CSV ganhou uma propriedade
TXLSCsvEncodingemTXLSCSVSavercom três modos:ceSystemAnsi(padrão legado),ceUtf16(o modo Unicode histórico) eceUtf8, que grava um arquivo UTF-8 com a marca de ordem de bytes EF BB BF — o padrão moderno amigável ao Excel que reabre sem o assistente de importação de texto em qualquer localidade - A importação CSV ganhou uma propriedade
LocaleTolerantNumbersemTXLSCSVLoader. Quando ativada, um campo numérico que falha ao analisar com.como separador decimal é repetido com,(e vice-versa), então um3,14europeu importa como o número 3,14 em uma máquina dos EUA. O modo estrito (o padrão) não foi alterado, então texto com zeros à esquerda, códigos postais e outros tokens com vírgula permanecem texto
Corrigido
- A inferência de número em modo estrito do motor XLSX não converte mais campos de texto com vírgula (por exemplo
3,14) em números por meio doTryStrToFloatdo Delphi, que tolera uma vírgula como separador de milhar mesmo quandoThousandSeparatorestá definido como#0. Tais campos agora permanecem texto a menos que a nova opçãoLocaleTolerantNumbersesteja ativada
Versão 2.140.0
Alterado
- O motor XLSX agora compacta seus seis pools de estilo por atributo (Fonts / Fills / Borders / NumberFormats / Alignments / Protections) antes de cada salvamento: uma nova passagem
CompactStylePoolsexamina os índices de estilo de todas as células e descarta entradas do pool que não são mais referenciadas por nenhuma célula — as entradas que se acumulam quando células são limpas, excluídas ou reestilizadas após a entrada do pool ter sido adicionada. Os pools compactados produzem uma tabela<cellXfs>menor no arquivo de saída (tipicamente 30–70% menor para documentos que passaram por vários ciclos de edição), correspondendo à compactação que o motor XLS já faz por meio deCreateAllReferredList
Versão 2.139.0
Adicionado
- Formas da camada de desenho, conectores, formas de grupo e molduras gráficas que não são de gráfico agora fazem ida e volta textualmente: quando o leitor XLSX encontra uma âncora
<xdr:sp>,<xdr:cxnSp>,<xdr:grpSp>ou<xdr:graphicFrame>que não é de gráfico que o modelo tipado (imagens / gráficos / caixas de texto) não cobre, ele captura o XML completo da âncora e o reproduz inalterado ao salvar — de modo que desenhos criados no Excel (setas, textos explicativos, formas agrupadas, moldagens de smart art) sobrevivam a um ciclo de leitura→gravação sem perda. Cada planilha expõeRawDrawingAnchorCount/RawDrawingAnchor(i)para inspeção
Versão 2.138.0
Adicionado
- Os valores de células em cache de links externos agora fazem ida e volta no motor XLSX: um novo modelo
TXLSXExternalCell/TXLSXExternalRow/TXLSXExternalSheetDatapendura em cadaTXLSXExternalLinkpor meio deAddSheetData/AddRow/AddCell, o gravador emite o bloco correspondente<sheetDataSet>dentro deexternalLinkN.xmle reabrir restaura cada valor em cache.FindCachedCell(sheetIdx, row, col)procura o último valor conhecido de uma célula referenciada externamente — os dados que o próprio Excel mostra quando a pasta de trabalho remota está offline
Versão 2.137.0
Adicionado
- O sinalizador
quotePrefixcellXf do OOXML — o mecanismo do Excel para marcar texto armazenado como literal de modo que sobreviva à coerção numérica (códigos importados de CSV como00123, números de conta longos, qualquer coisa que o usuário prefixou com um apóstrofo) — agora faz ida e volta no motor XLSX:TXLSXAlignmentganha uma propriedadeQuotePrefix, a deduplicação do pool de alinhamento a conta, o gravador emitequotePrefix="1"no<xf>correspondente e reabrir o restaura se o cellXf carregava um filho<alignment/>ou era um<xf quotePrefix="1"/>simples de auto-fechamento
Versão 2.136.0
Added
- Os eixos do gráfico agora são totalmente programáveis: um novo modelo
TXLSXChartAxisem cadaCategoryAxiseValueAxisdo gráfico expõeLogBase(escala logarítmica, p. ex. 10 para log de base 10),Orientation(normal / invertida),MajorGridlines/MinorGridlines,MinValue/MaxValue(NaN = automático),MajorUnit/MinorUnit,CrossesAt,TickLblPoseDispUnits(unidades de exibição: centenas / milhares / milhões / bilhões / trilhões). Todos usam por padrão o comportamento automático do Excel, então os gráficos existentes emitem o mesmo XML de antes; o gravador adiciona<c:logBase>,<c:orientation>,<c:majorGridlines>,<c:majorUnit>,<c:crossesAt>,<c:tickLblPos>e<c:dispUnits>somente quando o chamador define um valor não padrão, e reabrir um gráfico assim restaura todas as configurações
Versão 2.135.0
Added
- As barras de erro do gráfico agora são programáveis e fazem round-trip no motor XLSX: cada
TXLSXChartSeriesganhaAddErrorBar(dir)devolvendo umTXLSXChartErrBarcomValueType(fixo / percentual / stdDev / stdErr / personalizado),Value,PlusValue/MinusValue(personalizado) eNoEndCap; um slot de barra de erro por direção (X / Y) é armazenado, o gravador emite o bloco<c:errBars>correspondente, e reabrir restaura a direção, o tipo e a magnitude para que gráficos científicos / de engenharia mantenham seus indicadores de incerteza
Versão 2.134.0
Added
- Os rótulos de dados do gráfico agora são programáveis e fazem round-trip no motor XLSX: cada
TXLSXChartSeriesganha as propriedadesShowValue,ShowCategoryName,ShowSeriesName,ShowLegendKey,ShowPercent,ShowBubbleSizeeSeparatorque emitem o bloco<c:dLbls>correspondente com seus filhos<c:show*/>; reabrir um gráfico assim restaura as opções para que configurações 'mostrar valor' / 'mostrar percentual' sobrevivam a um ciclo salvar-editar-salvar
Versão 2.133.0
Added
- Os formatos de imagem vetorial EMF e WMF agora são tipos de imagem de primeira classe no mecanismo XLSX:
TXLSXImageFormatganhaxlsxImageEmf/xlsxImageWmf, o gravador emite os tipos de conteúdoimage/x-emf/image/x-wmfcorrespondentes e as extensões.emf/.wmf, e o identificador de formato reconhece cabeçalhos EMF (01 00 00 73), WMF posicionável (D7 CD C6 9A) e WMF padrão — assim, imagens coladas do Word ou PowerPoint que o Excel incorpora como dados vetoriais agora fazem a viagem de ida e volta em vez de serem descartadas
Fixed
- Os subfluxos de gráfico BIFF8 cujo registro GELFRAME (
$1066) abrange o limite de continuação de 8224 bytes não perdem mais a geometria de preenchimento/linha: o leitor agora aceita a autocontinuação GELFRAME (o Excel grava outro$1066em vez do$003CCONTINUE padrão) e também permite que registros CONTINUE padrão se costurem dentro do contexto do gráfico, correspondendo ao despacho de vários blocos existente do gravador - As imagens de fundo de cabeçalho/rodapé BIFF8 (
$0866) cujo conteúdo abrange registros de continuação não são mais corrompidas: cada segmento de continuação repete um cabeçalho MSO de 14 bytes que o leitor agora remove antes de concatenar, de modo que os dados de imagem incorporados não fiquem mais deslocados por 14 bytes por segmento
Versão 2.132.19
Fixed
- A limpeza de armazenamento de XLS legado e XLSX criptografado agora libera fluxos de arquivos compostos de maneira determinística, impedindo que arquivos temporários permaneçam bloqueados após operações de salvamento, carregamento, VBA ou pacotes criptografados
- A exibição formatada de valores variantes de inteiros estendidos agora aplica o formato de número solicitado de forma consistente, correspondendo ao comportamento existente para valores inteiros padrão
- Strings compartilhadas, validação de dados, planilhas de gráfico, arquivos ZIP, desenho PNG e fórmulas de texto repetidas agora limpam buffers temporários de forma mais defensiva durante caminhos de erro e grandes operações de texto
Versão 2.132.18
Fixed
- A atribuição de valor do construtor de strings interno agora limpa o texto anterior quando uma string vazia é atribuída, impedindo que buffers de XML e texto reutilizados retenham conteúdo desatualizado
Versão 2.132.17
Fixed
- A criação de planilhas de gráfico XLS agora aceita nomes de planilha de origem entre aspas que contêm um ponto de exclamação, rejeita referências de linha superdimensionadas antes que possam se transformar em uma linha BIFF válida e limita os nomes de legenda de linha de tendência ao limite de texto curto do BIFF para que os registros de gráfico gerados permaneçam bem formados
Versão 2.132.16
Fixed
- As listas internas de chaves de string e chaves de objeto agora removem chaves de busca obsoletas quando um slot existente é sobrescrito, impedindo que chaves antigas se resolvam em entradas de substituição
- As substituições de lista de objetos internos e os caches de chave exclusiva transformados agora liberam as entradas possuídas ao sobrescrever, limpar e destruir, evitando vazamentos durante operações repetidas de pastas de trabalho e estilos
Versão 2.132.15
Fixed
- As leituras diretas em fluxo XLSX agora decodificam células booleanas que armazenam valores literais OOXML, como true e false
- As atualizações de índice de lista de strings internas agora removem chaves obsoletas quando um slot existente é sobrescrito, impedindo que nomes antigos se resolvam para o novo valor
Versão 2.132.14
Fixed
- As mensagens de erro e de prompt de validação de dados BIFF8 cujo primeiro caractere é NUL agora preservam os limites do registro em vez de gravar um comprimento de DV incompatível
Versão 2.132.13
Fixed
- A análise de texto XML agora rejeita inícios de entidades aninhadas, como &&, em vez de descartar silenciosamente a entidade inacabada
- As fórmulas decompiladas agora gravam constantes numéricas com um separador decimal de ponto invariável para que o texto da fórmula permaneça portátil entre as configurações regionais
Versão 2.132.12
Fixed
- A transparência de PNG de paleta agora ignora cores transparentes que não estão presentes na paleta de cores da imagem em vez de marcar um índice de paleta arbitrário como transparente
- As fórmulas SUMPRODUCT agora param de varrer as linhas restantes após a primeira linha fora do intervalo usado em argumentos de intervalo longo, evitando leituras de células desnecessárias enquanto preservam o resultado calculado
Versão 2.132.11
Fixed
- As fórmulas TEXT agora retornam #VALUE! quando um formato de número inválido ou superdimensionado não pode ser aplicado em vez de serem silenciadas como um resultado bem-sucedido em branco
- O truncamento da tabela de strings compartilhadas agora libera os blocos finais corretos e mantém a tabela reutilizável após grandes ciclos de exclusão
Versão 2.132.10
Fixed
- As buscas exatas de MATCH agora respeitam os caracteres curinga do Excel, e os metadados clássicos de deslocamento de linha XLS agora ignoram linhas fora do bloco em vez de corromper a estrutura salva da pasta de trabalho
- Os metadados de texto comprimidos de PNG agora liberam os buffers temporários de forma segura caso o processamento de blocos cause um erro
Versão 2.132.9
Fixed
- Os metadados de texto comprimidos de PNG, a inserção na lista de blocos e o tratamento da ordem dos bytes do CRC agora permanecem estáveis em todas as plataformas Windows suportadas
Versão 2.132.8
Fixed
- As fórmulas LEFT e RIGHT agora relatam #VALUE! quando num_chars não pode ser convertido em um número inteiro válido
Versão 2.132.7
Fixed
- As fórmulas SEARCH agora suportam caracteres curinga ?, * e ~ no estilo do Excel
- A validação do nome da planilha agora rejeita caracteres inválidos de nome de planilha do Excel ao renomear planilhas
- A exclusão manual de quebra de página agora funciona após a inserção de uma quebra antes de quebras existentes
Versão 2.132.6
Fixed
- As fórmulas DATE agora correspondem ao comportamento de rolagem de mês e dia compatível com o Excel, incluindo chamadas como DATE(2008,14,2)
- As leituras de Hidden no intervalo de colunas agora relatam a visibilidade de cada coluna em vez de misturar o estado de visibilidade das linhas
- Os metadados de linha BIFF no limite de linhas do Excel 97-2003 agora são carregados corretamente para que as configurações da linha 65536 sejam preservadas
Versão 2.132.5
Fixed
- O carregamento de pastas de trabalho BIFF agora tolera cores malformadas de guias de planilhas, rótulos de tabela dinâmica truncados e fragmentos de data inválidos de cache de tabela dinâmica sem gerar exceções
- O carregamento de pacotes e fluxos de pastas de trabalho agora limpa caminhos de configuração de armazenamento e arquivos com falha de maneira mais consistente, evitando vazamento de recursos em entradas malformadas ou aberturas com falha de armazenamentos baseados em fluxo
Versão 2.132.4
Fixed
- O tratamento de arquivos ZIP agora finaliza o pacote atual antes de reutilizar o mesmo objeto de arquivo para outro pacote, e a abertura de arquivos baseada em arquivo físico agora permite leitores compartilhados simultâneos
Versão 2.132.3
Fixed
- A gravação de pacotes de pastas de trabalho agora preserva nomes de entradas ZIP que não sejam ASCII com metadados UTF-8, impedindo mojibake quando nomes de partes de pacotes contêm texto Unicode
- A saída XML agora grava texto bruto e valores de atributos como bytes UTF-8 quando o escape está desativado, correspondendo à codificação declarada do documento
- A avaliação de fórmulas agora limpa seu estado de execução após exceções de retorno de chamada e trata corretamente o cancelamento de números grandes em compilações Unicode do Delphi
- A extração de matriz de fórmulas de matriz agora respeita limites inferiores diferentes de zero de matrizes Variant em vez de gerar erro para matrizes válidas baseadas em um
Versão 2.132.2
Changed
- A ordenação de intervalos agora usa uma etapa de ordenação estável O(n log n) para intervalos ordenados grandes, mantendo o comportamento de ida e volta do conteúdo de linha existente
- A análise e formatação numérica de ODS e XLSX agora reutilizam o estado de formatação invariável em vez de criá-lo repetidamente em caminhos críticos
Fixed
- A análise de XML agora aceita blocos CDATA válidos e instruções de processamento UTF-8 sem corromper o texto ou falhar em marcações válidas
- A análise de fórmulas agora aceita notação científica com sinal e rejeita bytes de fórmula malformados ou truncados de forma limpa
- Os caminhos clássicos de abertura e salvamento de pastas de trabalho agora liberam fluxos e armazenamentos de maneira confiável após erros, impedindo que arquivos temporários permaneçam bloqueados
- O tratamento de buffers binários agora valida limites de cópia e leitura, expande buffers de destino antes de copiar e rejeita referências cruzadas de compressão VBA malformadas de forma limpa
Versão 2.132.1
Fixed
- Corrigida a mensagem de erro gerada quando uma pasta de trabalho criptografada usa um esquema de criptografia não suportado: anteriormente afirmava que a Criptografia Ágil ECMA-376 não podia ser lida, embora a decodificação Ágil (AES-128/192/256) seja suportada desde a versão 2.119.0. A mensagem agora lista os esquemas realmente suportados
- Open agora direciona os chamadores para TXLSXWorkbook.OpenEncrypted quando recusa um pacote OOXML criptografado, em vez de declarar que pastas de trabalho criptografadas não são suportadas
Versão 2.132.0
Changed
- O carregamento de XLSX está substancialmente mais rápido: o leitor de XML agora armazena internamente nomes de elementos repetidos e converte texto e valores de atributos diretamente do seu buffer de varredura, reduzindo as alocações de memória por célula em mais da metade. A abertura multithread (2.128.0) é a que mais se beneficia — as alocações removidas eram as que serializavam as threads de trabalho —, com pastas de trabalho de várias planilhas agora abrindo quase duas vezes mais rápido que o caminho de thread única em máquinas multitarefa; a abertura com thread única também ganha alguns pontos percentuais
Versão 2.131.0
Added
- Blocos de extensão de planilha que o HotXLS não modela — entradas
<ext>na<extLst>de uma planilha que não sejam sparklines, gravadas pelo Excel para recursos como formatação condicional x14 ou segmentadores de dados — agora são preservados na íntegra quando uma pasta de trabalho é aberta e gravada de volta ao salvar, de modo que abrir e salvar novamente um arquivo não remove mais essas extensões. Os blocos capturados são visíveis apenas para leitura por meio deWorksheet.RawWorksheetExtse acompanham a planilha quando ela é copiada para outra pasta de trabalho
Versão 2.130.0
Added
- As pastas de trabalho salvas que contêm fórmulas agora carregam a parte de cadeia de cálculo
xl/calcChain.xml, permitindo que o Excel alimente seu mecanismo de dependência a partir da ordem registrada em vez de reconstruí-lo no carregamento. Após uma chamada aRecalculate, a cadeia segue a ordem topológica do gráfico de dependências; caso contrário, as células de fórmula são listadas na ordem do documento (uma dica válida que o Excel refina dinamicamente). A parte, seu tipo de conteúdo e sua relação com a pasta de trabalho são emitidos juntos e sobrevivem às viagens de ida e volta de abertura/salvamento
Versão 2.129.0
Added
- Nova propriedade
Workbook.ParallelParseThreadsajusta a contagem de threads de trabalho para o caminho Open multithread introduzido em 2.128.0 (0 = automático, um worker por núcleo de CPU). A análise da planilha aloca muita memória e a alocação de memória é serializada entre as threads, portanto, em algumas cargas de trabalho, um limite explícito pequeno tem um desempenho tão bom quanto — ou melhor do que — a contagem total de núcleos; a propriedade permite que os integradores escolham a melhor medida para seus arquivos
Versão 2.128.0
Added
- Carregamento multithread de XLSX: a abertura de uma pasta de trabalho agora analisa o XML de cada planilha — o custo dominante em arquivos grandes — em threads de trabalho, de modo que pastas de trabalho de várias planilhas abrem mais rápido em máquinas de vários núcleos. As partes da planilha são extraídas do pacote antecipadamente e cada thread de trabalho acessa apenas sua própria planilha, portanto, a pasta de trabalho carregada é idêntica ao resultado serial
- Nova propriedade
Workbook.ParallelParse(padrãoTrue) alterna de volta para a análise de thread única quando definida comoFalseantes deOpen— uma opção de desativação de uma única linha para ambientes restritos
Changed
- O retorno de chamada de leitura
OnProgressainda é disparado uma vez por planilha na thread de chamada, agora conforme cada planilha é despachada para análise, em vez de estritamente entre as planilhas
Versão 2.127.0
Added
- Recálculo incremental no mecanismo XLSX: o novo método
Workbook.Recalculateconstrói um gráfico de dependências de fórmulas, avalia cada célula de fórmula uma vez em ordem de dependência e armazena cada resultado no valor armazenado em cache da célula. Chamadas subsequentes reavaliam apenas as células afectadas por alterações de valor desde a última passagem — em modelos encadeados (planilhas financeiras, cascatas de relatórios), editar uma entrada recalcula apenas suas fórmulas dependentes em vez de toda a pasta de trabalho - Funções voláteis (
NOW,TODAY,RAND,OFFSET,INDIRECT) recalculam a cada passagem, assim como fórmulas cujas referências não podem ser resolvidas estaticamente (nomes de várias áreas, pastas de trabalho externas) — o mecanismo prefere recalcular em excesso do que arriscar um resultado desatualizado - Ciclos de referência são detectados em vez de entrarem em loop:
Recalculateretorna um código de erro quando as fórmulas formam uma cadeia circular, ignora os membros do ciclo e ainda avalia todas as fórmulas fora do ciclo. Referências entre planilhas, intervalos nomeados e fórmulas de matriz CSE (resultados distribuídos pelo intervalo ancorado) participam plenamente no gráfico de dependências
Changed
- O caminho
Calculatesob demanda existente permanece inalterado;Recalculateé uma API separada opcional e as pastas de trabalho que nunca o chamam se comportam exatamente como antes
Versão 2.126.0
Added
- Sparklines no mecanismo XLSX: as planilhas agora contêm grupos de sparkline — os minigráficos na célula que o Excel renderiza a partir de um intervalo de dados — com os três tipos do Excel (linha, coluna, ganhos/perdas empilhado). Crie um com
Worksheet.AddSparklineGroupou crie grupos manualmente por meio da nova coleçãoWorksheet.SparklineGroups, adicionando qualquer número de sparklines por grupo, cada um com um intervalo de origem e uma célula de exibição - Grupos de sparkline expõem o conjunto completo de opções que o Excel oferece: espessura da linha, marcadores de pontos de dados, alternâncias de ênfase para ponto alto/baixo/negativo/primeiro/último, oito slots de cores ARGB (série, negativo, eixo, marcadores, primeiro, último, alto, baixo), escala de eixo vertical por grupo ou por sparkline e tratamento de lacunas/zero/extensão para células de origem vazias
- As sparklines sobrevivem a uma viagem completa de ida e volta salvar→abrir: salvar emite o bloco de extensão
extLstda planilha ([MS-XLSX] §2.3.6) para que o Excel 2010 e versões posteriores renderizem as sparklines, e abrir tal pasta de trabalho — seja ela gravada pelo HotXLS ou pelo Excel — reconstrói cada grupo, opção e intervalo para que persistam nos ciclos de edição. Copiar uma planilha para outra pasta de trabalho também clona seus grupos de sparkline
Versão 2.125.0
Added
- Sete funções de texto de contagem de bytes DBCS da análise de lacunas do XLSSuit agora são avaliadas em ambos os mecanismos:
LEFTB,RIGHTB,MIDB,LENB,FINDB,SEARCHBeREPLACEB. Cada uma trata sua entrada como uma string de bytes sob a página de código ANSI do sistema, de modo que caracteres CJK (Chinês/Japonês/Coreano) ocupam 2 bytes enquanto ASCII ocupa 1; operações que dividiriam um par de bytes guia/rastreador DBCS retornam ao limite de caractere mais próximo, correspondendo ao comportamento do Excel
Versão 2.124.0
Added
- Cinco funções de distribuição e teste de hipóteses da análise de lacunas do XLSSuit agora são avaliadas em ambos os mecanismos:
Z.TEST(probabilidade unilateral de cauda direita de que a média da amostra seja pelo menosxsob a hipótese nula),T.TEST(valor de p do teste t pareado de duas amostras; tipos de variância igual/desigual não pareados são diferidos),CHISQ.TEST(valor de p de bondade de ajuste por meio da CDF qui-quadrado de cauda superior),HYPGEOM.DIST(PMF/CDF hipergeométrica com a sinalização cumulativa) eNEGBINOM.DIST(PMF/CDF binomial negativa). A matemática do valor de p reutiliza os auxiliares de CDF normal/Student-t/qui-quadrado existentes do mecanismo por meio de rotinas aninhadas autocontidas, portanto, nenhum método Calc existente é alterado
Versão 2.123.0
Added
- Quatorze funções de fórmula que uma comparação com o XLSSuit identificou como lacunas agora são avaliadas em ambos os mecanismos:
AVERAGEIF(média de critério único, o irmão de SUMIF/COUNTIF que faltava ao mecanismo),WORKDAY.INTLeNETWORKDAYS.INTL(máscaras de fim de semana personalizadas via códigos numéricos de 1 a 17 ou uma string de 7 caracteres de segunda a domingo),XIRRandXNPV(taxa interna de retorno e valor presente líquido para fluxos de caixa com datas irregulares, resolvidos por bisseção entre parênteses),CEILING.PRECISE/FLOOR.PRECISE/ISO.CEILING(arredondamento independente do sinal),PERCENTRANK.INC/PERCENTRANK.EXC(classificação percentual com a interpolação inclusiva/exclusiva correspondente),MODE.MULT(distribui todos os valores empatados na frequência mais alta),ERF.PRECISE(função de erro de Gauss via sua série alternada),ACCRINT(juros acumulados) eISPMT(juros do período para amortização com principal constante)
Versão 2.122.0
Added
- Comentários encadeados (Excel 365) agora fazem a viagem de ida e volta no mecanismo XLSX:
AddThreadedCommenteAddThreadedReplyem uma planilha constroem uma árvore de respostas pai→filho ancorada em uma célula, registram automaticamente cada autor em uma nova lista dePersonsem nível de pasta de trabalho e emitem a parte dedicadaxl/threadedComments/threadedCommentN.xmlpor planilha mais o arquivo com escopo de pasta de trabalhoxl/person/person.xml; reabrir tal pacote reconstrói a árvore de conversação e a lista de participantes a partir dessas partes, de modo que cadeias de respostas, identificadores e nomes de exibição sobrevivem a um ciclo completo de leitura→gravação
Versão 2.121.0
Added
- O avaliador de fórmulas agora calcula as funções de matriz dinâmica do Excel 365
XMATCH,SORT,UNIQUEeSEQUENCE, juntando-se aos já suportadosXLOOKUPeFILTER; os resultados se distribuem como matrizes bidimensionais, de modo queSEQUENCE(3;2;1;1)retorna uma grade de 3×2,SORTreordena linhas por qualquer coluna de chave de forma crescente ou decrescente,UNIQUErecolhe linhas duplicadas mantendo a primeira ocorrência, eXMATCHrelata a posição baseada em 1 de um valor de busca com os mesmos modos de correspondência exata/curinga/próximo menor/próximo maior queXLOOKUP
Versão 2.120.0
Added
- O novo método
PasteFromClipboardnas planilhas de ambos os mecanismos lê texto delimitado por tabulação da área de transferência do Windows — a carga útil que o Excel coloca lá quando um intervalo é copiado, ou uma seleção simples de qualquer outro aplicativo — e grava nas células a partir da linha e coluna fornecidas, com a mesma promoção de tipo numérico/data/booleano que o carregador de CSV já usa; texto iniciado com=torna-se uma dúvida ou fórmula ativa, correspondendo a como o próprio Excel cola
Versão 2.119.0
Added
- Leitura de ECMA-376 Agile Encryption — a proteção por senha que o Excel 2010 e posteriores aplicam por padrão:
OpenEncryptedagora analisa o descritor de criptografia XML, deriva as chaves com hash de contagem de rotações SHA-512, verifica a senha e decodifica o pacote segmentado AES-CBC (AES-128/192/256), para que pastas de trabalho protegidas por senha diretamente no Excel abram sem o Excel instalado OpenEncryptedtrata todos os três casos por meio de um ponto de entrada:.xlsxnão criptografado simples, Standard Encryption (nossa ida e volta deSaveAsEncrypted) e Agile Encryption; uma senha incorreta gera o mesmo erro claro em todos os esquemas
Fixed
- Salvar uma pasta de trabalho
.xlsxcujo XML de planilha excedeu aproximadamente 116 KB — cerca de 3.000 linhas de dados de string típicos — falhava com estouro de pilha; a soma de verificação CRC-32 do gravador ZIP agora processa dados em fatias de 64 KB, o que mantém o backend de compressão fora de seu caminho de código de entrada grande que aloca um buffer de rascunho superdimensionado na pilha. O resultado da soma de verificação permanece inalterado
Changed
- A eliminação de duplicatas de strings compartilhadas agora é executada por meio de uma tabela de dispersão em vez de varrer a lista de strings, e a parte
sharedStrings.xmlé montada por meio do construtor de strings pré-expandido em vez de concatenações repetidas — juntamente com o índice de célula em tempo constante, isso reduz o tempo de salvamento de 120.000 células de string de dezenas de segundos para cerca de um terço de segundo
Versão 2.117.0
Alterado
- XLSX célula access é now constant-time: planilha célula coleção carries hash índice over (linha, coluna), replacing previous linear scan — so populating, reading back, ou loading large planilha scales linearly com célula count instead de quadratically; filling 100,000 células now takes well under second where it previously took minutes
- speedup applies across engine:
Cells[r, c],HasCell, pasta de trabalho loading, saving, cross-pasta de trabalho copies, auto-fit, e cada helper que touches células por position all benefit; linha e coluna insertion ou deletion rebuilds índice em single pass
Versão 2.116.0
Adicionado
- PDF export no clássico XLS engine: new
SaveAsPDFmétodos on planilha e pasta de trabalho render usado intervalo (ou caller-supplied intervalo por meio deTXLSPDFExport) as paginated grid — célula display texto por meio de number formato, gridlines, coluna widths derived de Excel widths e scaled para fit página, e automatic multi-página pagination - Output é self-contained PDF 1.4 arquivo com no external dependencies, usando built-em Helvetica fonte com WinAnsi texto encoding; portrait ou landscape A4 orientation, página margin, e fonte size são configurable on exporter
- este é data-presentation export alongside HTML e RTF: it reproduces tabular content e layout para reports e document handoff rather than full per-célula styling
Versão 2.115.0
Adicionado
- um-call chart creation de data intervalo no XLSX engine: new
AddChartFromRangebuilds complete chart e derives its series automatically de rectangular data block — equivalent de Excel's "insert chart de selection" — com series-em-colunas ou transposed series-em-linhas layout - Named shortcuts
AddColumnChart,AddBarChart,AddLineChart,AddPieChart, eAddAreaChartpick chart type por nome over same um-call flow, reading series names de header linha e category labels de first coluna - Series references são qualified com source planilha's quoted nome, so generated chart keeps working quando placed on any planilha e survives save e reload
Versão 2.114.0
Adicionado
- RTF import no clássico XLS engine, inverse de existente
SaveAsRTFexport: newOpenRTFmétodos on planilha e pasta de trabalho read RTF document's table em planilha células —\celladvances coluna,\rowadvances linha — starting at A1 - Recovers tabular data de arquivos produced por
SaveAsRTF, Word, ou WordPad: numeric texto é stored as números so fórmulas keep working, hex (\'hh) e Unicode (\uN) escapes decode correctly, e header groups (fonte table, cor table, stylesheet, info) são skipped - Documents com no table fall back para paragraph mode, importing each
\paras next linha em coluna
Versão 2.113.0
Adicionado
- Reading de encrypted
.xlsxpastas de trabalho:OpenEncryptednow decrypts ECMA-376 Standard Encryption (AES-128) packages, completing round trip com existenteSaveAsEncrypted— it reads compound-arquivo container, derives key de senha, verifies it, e loads recovered pasta de trabalho - wrong senha raises clear "senha é incorrect" error, e
OpenEncryptedon plain unencrypted.xlsxcontinues para load it directly, so callers pode route cada arquivo por meio de um entrada point
Alterado
- unsupported-encryption message now names ECMA-376 Agile Encryption specifically as remaining unsupported scheme, since Standard Encryption reading e writing são both disponível
Versão 2.112.0
Adicionado
- New
TaggedTextpropriedade on XLSX células converts between rich texto e lightweight markup:<b>,<i>,<u>,<s>,<sub>,<sup>,<color=#RRGGBB>,<font=Name>, e<size=N>, com</>/&escapes — so multi-formato célula content pode be produced de template String instead de assembling run objetos por hand - Writing markup builds run list e keeps
Valueas concatenated plain texto; markup sem tags stores plain String com no rich payload; reading serializes each run's attributes as complete tag define; unknown tags pass por meio de as literal texto
Corrigido
- rich-texto run consisting entirely de whitespace (para example single styled space between words) now survives save e reload; previously space was dropped quando arquivo was reopened
Versão 2.111.0
Adicionado
- New
OnProgressevento on XLSX pasta de trabalho reports load e save progress: it fires once per planilha as it é parsed duringOpenou emitted duringSaveAs, carrying phase (reading ou writing), current 1-baseado planilha number, e total — so applications pode drive progress bar over long multi-planilha operations at negligible callback cost
Versão 2.110.0
Adicionado
- New
TXLSRowCursordataset-estilo linha cursor para.xlsx/.xlsmarquivos:Open,SelectSheet, thenFindFirst/FindNextwalk planilha um linha at time com somente current linha's células em memory — pull-driven alternative paraTXLSDirectReader's callbacks para sequentially processing multi-million-linha planilhas - Each linha exposes its 1-baseado planilha linha number, populated células em document order (tipado valor, fórmula texto, estilo índice), e
ValueByCollookup que retornaNullpara colunas not populated on que linha; linhas com no populated células são skipped - planilha names e count são disponível after
Open(arquivo e stream overloads), com shared strings e date-formato detection handled same way as streaming reader
Versão 2.109.0
Adicionado
- New
TXLSXCellFormat"formato brush" para XLSX engine: describe fonte, fill, borda, alignment, number formato, e protection once, then stamp any number de targets comApply(single célula),ApplyRange,ApplyRows,ApplyCols, ouApplySheet - somente aspects actually touched são applied — brush que define just
Font.Boldleaves targets' fills, bordas, e number formatos untouched — so brushes compose com existente formatting like Excel's formato painter - Each apply resolves touched aspects em pasta de trabalho estilo pools once e then writes somente pool indices per célula, so formatting large intervalos costs um pool lookup per aspect rather than per célula;
ApplyRangematerializes missing células enquanto linha/coluna/planilha forms stamp existente células somente
Versão 2.108.0
Adicionado
- Localizable Booleano display texto: new
XLSBooleanTrueText/XLSBooleanFalseTextvariables control how Booleano célula valores render wherever display texto é produced —FormattedText, HTML export, e auto-fit measurement — so localized applications pode show para example WAHR/FALSCH ou VRAI/FAUX
Alterado
- Booleano células now display as
TRUE/FALSEpor default, matching Excel's grid, instead de runtime'sTrue/Falsecapitalization
Versão 2.107.0
Adicionado
- New
OnPasswordevento on clássico XLS pasta de trabalho: quandoOpenmeets encrypted pasta de trabalho e supplied senha é missing ou wrong, evento asks application para senha e retries open (up para three attempts) — so interactive tools pode prompt user instead de pre-loading passwords ou inspecting error codes - evento receives current senha por referência e
Retryflag; leavingRetryatFalsegives up e retorna original senha error
Versão 2.106.0
Adicionado
- New
TXLSFileMonitorclasse watches pasta de trabalho arquivo on disk e firesOnFileChangedquando another process — typically Excel — saves over it, so applications pode reload e refresh their view automatically - Polling-baseado (last-write time plus size,
IntervalMsconfigurable, 1 s default), so it works on local disks e network shares alike sem message loop;SynchronizeEventchooses between main-thread delivery para UI handlers (default) e direct watcher-thread delivery para console ou service code - arquivo que briefly disappears during save cycle does not fire false evento; change é reported once new content é em place
Versão 2.105.0
Adicionado
- Bounded auto-fit no clássico XLS engine, matching limits XLSX engine already offers: new
AutoFit(Columns, AMin, AMax),ColumnsAutoFit(AMinWidth, AMaxWidth), eRowsAutoFit(AMinHeight, AMaxHeight)overloads clamp cada fitted coluna largura (Excel largura units) ou linha altura (points) para given intervalo — 0 leaves side unbounded, e all-empty coluna ou linha still receives requested minimum
Versão 2.104.0
Adicionado
- New Somente leitura
FormattedTextpropriedade Retorna um célula's display texto — stored valor rendered por meio de its number formato, way Excel shows it no grid — covering thousands separators, decimals, percentages, date e time masks, multi-section positive/negative/zero masks, e Booleano formatos - disponível em both engines: on
IXLSRangeno clássico XLS engine (multi-célula intervalos render their anchor célula) e onTXLSXCellno XLSX engine (rich-texto células retornar their concatenated run texto)
Versão 2.103.0
Adicionado
- New
DetectExcelContentFormatfunção (arquivo nome e stream overloads) identifies pasta de trabalho's container de its leading bytes rather than arquivo extension — reporting BIFF/OLE compound arquivo, OOXML.xlsxpackage, OpenDocument.odspackage, ou plain delimited texto — so applications pode route renamed ou extension-less arquivos para right loader
Alterado
TXLSWorkbook.Opennow sniffs content signature e rejects ZIP-baseado packages (.xlsxou.odsrenamed para.xls) com clear message naming right loader, instead de failing com opaque error codeTXLSXWorkbook.Opennow recognizes OLE compound-arquivo content (legacy.xlsrenamed para.xlsx, ou encrypted package) e reports what arquivo actually é, instead de surfacing ZIP parser error
Versão 2.102.0
Adicionado
- Cross-pasta de trabalho planilha copy no clássico XLS (BIFF8) engine now brings pasta de trabalho-level defined names fórmula uses over para destination — same thing Excel does quando planilha moves between pastas de trabalho: nome destination already has é bound as-é (no duplicate é created), missing nome é registered com its original definition e visibility so fórmula recompiles against it, e nome whose definition cannot resolve no destination (para example, it points at planilha que does not exist there) leaves fórmula on its computed valor as before
Versão 2.101.0
Adicionado
- Cross-pasta de trabalho planilha copy no clássico XLS (BIFF8) engine now re-points fórmulas at source pasta de trabalho as external link quando destination has no planilha de referenced nome e source has been saved para arquivo: copied célula stays live fórmula (its references switch para [SourceBook]planilha form), source's computed valor é kept as cached result so reads keep working until link é refreshed, e external pasta de trabalho referência round-trips por meio de save e reload; fórmulas carrying defined-nome references, e copies de unsaved source pastas de trabalho, keep computed valor as before
Versão 2.100.0
Adicionado
- Array fórmulas now survive planilha copies no clássico XLS (BIFF8) engine: each array intervalo é rebuilt as whole no copy — within same pasta de trabalho e across pastas de trabalho alike — com root fórmula recompiled against destination's planilha names; array destination cannot recompile keeps its computed valores instead
Corrigido
- Copying intervalo que contém array-fórmula células between clássico XLS planilhas no longer risks crash on spill células (which carry no fórmula tree de their own); such células now transfer their computed valor
Versão 2.99.0
Adicionado
- Chart planilhas pode now be copied between clássico XLS (BIFF8) pastas de trabalho: chart record stream é cloned em destination, series category / valor / nome references são recompiled against destination's planilha names (series whose planilha has no same-nome counterpart falls back para empty referência so arquivo still opens), chart fonte references migrate por valor em destination fonte table, e página setup, tab cor, zoom, e visibility de chart planilha come along; este removes last documented limitation de cross-pasta de trabalho planilha copy
Versão 2.98.0
Adicionado
- Cross-pasta de trabalho planilha copy no clássico XLS (BIFF8) engine now preserves rich-texto formatting inside células: each formatting run's fonte é migrated por valor em destination pasta de trabalho's fonte table e run é rewritten para point at it, so mixed-fonte strings keep their appearance instead de falling back para plain texto; phonetic (Far-East) auxiliary data travels com String as well
Corrigido
- fontes referenced somente por rich-texto runs (e not por any célula formato) são no longer dropped de fonte table quando saving clássico XLS pasta de trabalho, e runs now follow same fonte reordering as célula formatos on save, so rich-texto strings keep correct fontes after save/reload cycle
Versão 2.97.0
Adicionado
- Cross-pasta de trabalho planilha copy no clássico XLS (BIFF8) engine now also clones embedded pictures: image bytes migrate em destination pasta de trabalho's picture store (identical images são shared rather than duplicated), e each picture frame keeps its célula anchor, size, visibility, e transparent cor; new CrossWorkbookCopyXls sample project demonstrates clássico-engine copy end para end
Alterado
- clássico XLS cross-pasta de trabalho copy limitations são now documented: chart planilhas são not copied (AddCopy retorna nil para them), e fórmula whose planilha referência has no same-nome planilha no destination keeps source's computed valor instead de becoming external referência
Versão 2.96.0
Adicionado
- Cross-pasta de trabalho planilha copy no clássico XLS (BIFF8) engine now also clones conditional formatos (célula-é e expression rules, data bars, cor scales, icon define, e their differential styles), data validations (list, numeric, date, texto-length, e custom rules com prompt e error boxes), AutoFilter definition com its per-coluna criteria (dropdown buttons são rebuilt no copy), e tabelas (ids e names são re-issued so they stay unique no destination pasta de trabalho); rule fórmulas são recompiled against destination's planilha names, matching behavior de célula fórmulas
Versão 2.95.0
Adicionado
- clássico XLS (BIFF8) planilhas pode now be copied de um pasta de trabalho em another: TXLSWorksheets.AddCopy adiciona new planilha para destination pasta de trabalho e copies source planilha's célula valores, fórmulas (re-encoded as texto so destination recompiles them against its own planilha names, keeping same-nome 3D references live), merged células, comentários, hiperlinks, linha heights, coluna widths, outline levels, frozen panes, planilha protection, página setup, manual página breaks, tab cor, e view settings; célula, linha, e coluna formatos são migrated por valor em destination pasta de trabalho's formato table, so styled source produces independently styled copy
- Cross-pasta de trabalho formato migration no clássico XLS engine now carries full-precision RGB e tema cores alongside each formato entrada, so fills, fontes, e bordas keep their exact cores instead de falling back para palette approximations; este also applies para intervalo-level paste between pastas de trabalho
Versão 2.94.0
Adicionado
- Cross-pasta de trabalho planilha copy now clones conditional formatos (com their differential styles e dataBar / colorScale / iconSet visual payloads), tabelas, data validations, e charts (com cada series); each sub-objeto deep-copies its own state em destination planilha
- Cross-pasta de trabalho fórmula references são rewritten: referência whose planilha nome exists no destination resolves as-é, otherwise it becomes external referência back para source pasta de trabalho (which é registered as external link) ou #REF! quando source has no arquivo identity; rewrite applies para célula fórmulas, conditional-formato rules, data-validation fórmulas, e chart series intervalos alike
Versão 2.93.0
Adicionado
- planilha pode now be copied de um pasta de trabalho em another: TXLSXSheets.AddCopy adiciona new planilha para destination pasta de trabalho e copies source planilha's células, fórmulas, merged intervalos, coluna/linha sizing, hidden/collapsed/outline flags, freeze panes, view state, protection, página setup, AutoFilter intervalo, e tab colour onto it; six per-célula estilo indices são remapped em destination pasta de trabalho's own fonte/Fill/borda/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 (fontes, Fills, bordas, NumberFormats, Alignments, Protections) each expose 1-baseado LookupOrAdd que deduplicates por valor; new CrossWorkbookCopy sample project demonstrates cross-pasta de trabalho copy com estilo preservação
Versão 2.92.0
Adicionado
- XLSX pastas de trabalho now suporte tabelas dinâmicas: TXLSXWorksheet.AddPivotTable scans flat source intervalo, auto-builds pivot cache, e Retorna um tipado tabela dinâmica para linha / coluna / página / data-axis wiring, mirroring long-standing BIFF8 (XLS) engine API so same code targets either formato; PivotSetDataFieldFormat assigns number formato para each aggregated valor field
- Excel-created tabelas dinâmicas ida e volta sem loss por meio de Open then Save: XLSX engine preserves each pivot cache definition, cache records, e tabela dinâmica part verbatim e replays original bytes on save, so re-saving pasta de trabalho never drops ou alters its pivots even quando they use recursos tipado modelo does not expose
Versão 2.91.0
Adicionado
- Um AutoFiltro (AutoFilter) de planilha agora pode ser aplicado aos dados de modo que a pasta de trabalho salva abra com as linhas não correspondentes já ocultas, espelhando o que o Excel faz quando um valor é escolhido no menu suspenso de filtro
- Imagens incorporadas expõem sua geometria em unidades reais (centímetros, polegadas, pontos) ao lado dos valores EMU, e podem ser redimensionadas por um fator de escala com bloqueio opcional de proporção de aspecto
- As margens de configuração da página podem ser definidas diretamente em centímetros, como uma conveniência métrica em relação às margens baseadas em polegadas
- Planilhas XLSX protegidas agora expõem quinze opções de permissão granulares (formatar células, inserir/excluir linhas e colunas, classificar, AutoFiltro, selecionar células bloqueadas/desbloqueadas e muito mais) através de uma nova propriedade AllowOption, correspondendo à lista de caixas de seleção Revisão > Proteger Planilha do Excel; as configurações por ação fazem round-trip no arquivo
- As planilhas XLSX agora podem ser duplicadas (TXLSXSheets.Duplicate): uma nova planilha é adicionada e as células de origem, intervalos mesclados, dimensionamento de coluna/linha, painéis congelados, estado de visualização, proteção, configuração de página e cor da guia são copiados para ela, espelhando o clique com o botão direito do Excel > Mover ou Copiar > Criar uma cópia
- Vinte e dois novos projetos de exemplo abrangem os recursos suportados pela biblioteca: criptografia de pasta de trabalho, comentários de célula, hiperlinks, nomes definidos, avaliação de AutoFiltro, imagens incorporadas, um modelo de fatura, formatação condicional XLSX avançada, células mescladas, agrupamento de linha/coluna, painéis congelados, layout de várias planilhas, fórmulas de matriz, cópia/movimentação de intervalo, localizar/substituir, sistemas de data, rich text, CSV avançado, opções de exportação HTML, formatos de número personalizados, linhas/colunas ocultas e proteção de planilha
Versão 2.90.29
Modificado
- O leitor direto de streaming agora conta cada célula preenchida, mesmo quando nenhum manipulador por célula está anexado, de modo que uma simples chamada ReadFile pode ser usada para dimensionar uma planilha rapidamente; a contagem retornada e a propriedade CellCount relatam o número de células preenchidas verificadas
Versão 2.90.28
Adicionado
- As fórmulas agora podem ser avaliadas passo a passo, o equivalente ao comando Avaliar Fórmula do Excel: um novo rastreador reduz uma expressão um subpasso por vez, do mais interno para o mais externo, e relata cada redução com sua subexpressão de origem, a mesma subexpressão após seus operandos serem substituídos por seus valores e o valor resultante, para que os aplicativos possam mostrar como um resultado é construído; ele respeita a precedência de operadores, mantém as referências de intervalo intactas para funções como SUM e reutiliza o mecanismo de cálculo da planilha para que cada etapa concorde com um recalculo completo
Versão 2.90.27
Adicionado
- As pastas de trabalho XLSX agora podem ser produzidas célula por célula por meio de um novo gravador direto de streaming que emite cada planilha diretamente no pacote à medida que as linhas chegam, sem construir uma árvore completa de células na memória, de modo que arquivos muito grandes podem ser gerados com um uso de memória quase constante; o gravador manipula strings inline, números, booleanos, datas e fórmulas em várias planilhas e interage de forma transparente com o leitor direto de streaming
Versão 2.90.26
Adicionado
- As pastas de trabalho XLSX agora podem ser verificadas célula por célula por meio de um novo leitor direto de streaming que gera eventos por célula e por planilha sem construir uma árvore completa de células na memória, mantendo o uso de memória quase constante para arquivos muito grandes; cada célula relatada carrega seu valor, tipo (número, string, booleano, data ou erro), texto da fórmula e índice de estilo, com detecção de data opcional e suporte a interrupção antecipada
Versão 2.90.25
Adicionado
- As planilhas XLS clássicas agora podem adicionar hiperlinks de referências de célula no estilo A1, preservando a normalização de URL, subendereços de destino de pasta de trabalho, texto de exibição e dicas de tela
Versão 2.90.24
Adicionado
- As quebras de página do Classic XLS agora podem ser adicionadas a partir de posições de linha ou coluna baseadas em 1 e referências de célula no estilo A1 através de sobrecargas de coleção de quebra de página e auxiliar de planilha
Versão 2.90.23
Adicionado
- As planilhas e coleções de formas do Classic XLS agora podem criar objetos de desenho de retângulo, oval, linha e formas automáticas tipadas a partir de strings de intervalo no estilo A1
Versão 2.90.22
Adicionado
- As coleções de formas do Classic XLS agora podem criar caixas de texto a partir de strings de intervalo no estilo A1 através de uma sobrecarga AddTextBox
Versão 2.90.21
Adicionado
- As caixas de texto do Classic XLS agora podem ser reposicionadas a partir de strings de intervalo no estilo A1 através de uma nova sobrecarga SetArea
Versão 2.90.20
Adicionado
- As caixas de texto da planilha do Classic XLS agora podem ser criadas a partir de strings de intervalo no estilo A1 através de uma sobrecarga AddTextBox
Versão 2.90.19
Adicionado
- As planilhas do Classic XLS agora podem criar caixas de texto de desenho diretamente a partir de âncoras de linha e coluna através de um novo método AddTextBox
Versão 2.90.18
Adicionado
- As planilhas do Classic XLS agora podem criar comentários de célula diretamente das coordenadas de linha e coluna através de novas sobrecargas AddComment