Notas da versão do HotXLS
Histórico de versões do HotXLS com funcionalidades visíveis ao utilizador, correções, melhorias XLS/XLSX, atualizações de exportação, alterações de compatibilidade e alterações de documentação
Última versão
- Última versão: 2.229.0; Data de lançamento: 2026-08-03
Versão 2.229.0
Adicionado
TXLSXWorksheet.HeaderFooterImagesagora cria, localiza, substitui e remove ranhuras de imagem tipadas 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 os seus dados brutos, formato, título, dimensões em pontos e margens em pontos, com carregamento direto de ficheiros 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 folha de cálculo e imagens de cabeçalho ou rodapé agora retêm relações VML independentes quando partilham a mesma folha de cálculo
- Ranhuras de imagens de cabeçalho e rodapé criadas pelo Excel agora preservam os seus bytes de imagem, formatos, títulos, dimensões, margens e relações através de ciclos de abrir e guardar
Versão 2.228.0
Adicionado
- Folhas de cálculo XLS clássicas e coleções de formas agora criam e descobrem controlos tipados
TXLSButtoneTXLSRadioButtonjuntamente com caixas de verificação, caixas de combinação e caixas de lista - Controlos de formulário agora expõem nomes de macro, células ligadas, intervalos de entrada, estados de marcação, aspeto plano ou 3D e ligações de grupo de opções através de propriedades tipadas
- Nomes definidos expõem
IsMacropara que as vinculações de macro retenham os metadados de nome de livro necessários
Corrigido
- Editar e guardar novamente controlos de formulário clássicos já não descarta estados de marcação, vinculações de macro, fórmulas de células ligadas, intervalos de origem ou metadados de grupo de opções suportados
- Limpar um intervalo de origem de caixa de combinação ou caixa de lista 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 devolvem matrizes de coeficientes multivariáveis completas e matrizes estatísticas opcionais de cinco linhasTRENDeGROWTHagora devolvem 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 percentagem agora transmitem escalares e linhas ou colunas singulares mantendo resultados por célula
- As dependências de cálculo agora expandem nomes aninhados de livro e folha de cálculo, nomes definidos por fórmula e referências de múltiplas áreas com proteção de ciclos consciente do âmbito
Corrigido
- Um erro num elemento da matriz já não colapsa o resultado completo nem recorre incorretamente à avaliação escalar
- Nomes definidos por fórmula cujas dependências podem ser resolvidas estaticamente já não forçam um recálculo completo volátil desnecessário
Versão 2.226.0
Adicionado
- Caches dinâmicos XLSX existentes e vistas de tabelas dinâmicas agora são carregados no modelo tipado através de relações de pacote, incluindo registos de cache, campos, itens partilhados, 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 expandidos de
ShowDataAsadicionam percentagens ascendentes, percentagens em execução 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, ordenação por etiqueta ou valor de dados, subtotais configurados e linhas ou colunas de total geral materializadas opcionais agora participam na 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 já não assume nomes convencionais ou sequenciais de partes de cache dinâmico, registo de cache ou tabela dinâmica
Versão 2.225.0
Adicionado
TXLSXWorkbook.ConnectionseTXLSXWorksheet.QueryTablesfornecem agora criação e edição tipadas para metadados de bases de dados externas, web, texto e resultados de consulta- Os parâmetros de ligação preservam o seu tipo exato Boolean, inteiro, de vírgula flutuante, de cadeia ou de referência de célula, incluindo os valores explícitos zero, false e cadeia vazia
Alterado
- Abrir e guardar XLSX resolve e escreve agora as partes de ligação e tabelas de consulta através das suas relações proprietárias, sincroniza tabelas de resultados e nomes definidos e preserva atributos desconhecidos, nós subordinados e listas de extensão
- As edições de linha e coluna mantêm os intervalos de resultados de consulta alinhados, enquanto as cópias de folhas de cálculo dentro do mesmo livro e entre livros preservam a propriedade da consulta e remapeiam identificadores de ligaçã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 relação da folha de cálculo ou do livro
Versão 2.224.0
Adicionado
- Folhas de cálculo XLS clássicas e folhas de cálculo XLSX modernas expõem agora
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 do livro avalia cada resultado da tabela de dados com um contexto de entrada isolado, incluindo dependências indiretas de fórmulas, e preserva definições mais resultados em cache através de abrir, guardar, copiar folha de cálculo e edições estruturais de linhas ou colunas
Corrigido
- Células de entrada What-If eliminadas produzem agora resultados
#REF!, e o recálculo clássico do livro visita cada folha de cálculo em vez de omitir a primeira folha - Inserir linhas no topo de uma folha de cálculo clássica já não corre o risco de uma violação de acesso no Win64
Versão 2.223.0
Alterado
- O cancelamento do leitor direto paralelo propaga-se agora através de leituras ativas de membros ZIP e de cada passo de descompressão, em vez de aguardar pelo próximo pull de XML
Corrigido
- Abortar uma análise paralela de folha de cálculo já não aguarda a conclusão de uma grande leitura de XML comprimido antes de os trabalhadores bloqueados serem libertados
Versão 2.222.0
Adicionado
TXLSDirectReader.ParallelBufferMemoryLimitlimita a carga agregada da fila de raw-cell para análise paralela de folhas de cálculo, enquantoParallelPeakBufferedBytesexpõe o pico medido para diagnósticos e testes de capacidade
Alterado
- Leituras diretas paralelas transmitem agora entradas ZIP de folhas de cálculo para leitores XML locais do trabalhador e filas produtor-consumidor limitadas, em vez de reter XML de folha de cálculo inflado completo e buffers de célula completos por folha
- Folhas de cálculo 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 folhas posteriores causem inanição à folha de cálculo atualmente emitida
Corrigido
- Abortos de célula, falhas de callback e erros de trabalhador despertam agora produtores e consumidores bloqueados, param pulls de XML cooperativamente, juntam todos os trabalhadores e deixam o leitor direto reutilizável
Versão 2.221.0
Alterado
- A abertura de XLSX com várias folhas transmite agora cada entrada ZIP de folha de cálculo diretamente para o seu inflador e leitor XML locais do trabalhador, em vez de reter XML de folha de cálculo inflado antes da análise
- Leitores simultâneos de folhas de cálculo serializam apenas leituras posicionadas curtas da fonte do pacote, de modo a que a descompressão e a análise de XML permaneçam paralelas enquanto a memória de entrada transitória da folha é 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, percentagem de um item base, diferença percentual, total acumulado, percentagem da linha, percentagem da coluna, percentagem do total e cálculos de índice xlPivotBaseItemPreviousexlPivotBaseItemNextfornecem seletores tipados para itens base adjacentes em cálculos de comparação
Alterado
- As percentagens e os valores de índice do pivô usam totais de linha, coluna e geral agregados diretamente dos registos 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 repostos independentemente para cada grupo de pares e mantêm o armazenamento esparso de resultados para pivôs de alta cardinalidade
Corrigido
- Os registos BIFF8
SXDIagora usam o layout fixo padrão de 14 bytes e preservamShowDataAs, campo base, item base, formato de número e nome de apresentação através de leituras tipadas, enquanto os registos legados do HotXLS permanecem legíveis - Os campos de dados XLSX agora gravam índices de campo de pivô, mapeiam seletores anterior e seguinte para os valores OOXML exigidos e emitem atributos base apenas para os modos que os utilizam
- As células de comparação em falta permanecem em branco, enquanto os denominadores zero presentes devolvem
#DIV/0!em vez de serem confundidos com dados em falta
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 devolver uma aproximação simplificada de saldo decrescente
Versão 2.218.0
Adicionado
TXLSXWorksheet.Scenariosagora fornece a autoria tipada do Gestor de Cenários What-If com cenários nomeados, índices ativo e mostrado, intervalos de células variáveis, metadados de utilizador 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 folhas de cálculo 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 guardar cenários criados no Excel agora preserva os atributos raiz e as células de entrada aninhadas em vez de aplanar a hierarquia em XML bruto com perdas
- Os elementos de folha de cálculo de cenário, Filtro Automático, consolidação de dados, células intercaladas e fonéticos agora usam a ordem do esquema para que os consumidores estritos de folhas de cálculo não exijam uma passagem de reparação
Versão 2.217.0
Adicionado
TXLSXWorksheet.IgnoredErrorsfornece agora criação tipada para cada categoria padrão de erro ignorado com referências de múltiplas áreas, suporte para cópia de folhas de cálculo, atualizações de edição estrutural e ciclos de ida e volta ao abrir/guardarTXLSXWorkbookexpõe agora o modo de referência, recálculo ao guardar, precisão total, cálculo simultâneo e definições de simultaneidade manual juntamente com as suas opções de cálculo existentes
Corrigido
- Cada definição de cálculo do livro não predefinida produz agora de forma independente e faz o ciclo de ida e volta de um elemento
calcPrordenado pelo esquema, incluindo limites de iteração configurados antes de a iteração ser ativada - 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 escrever um estado ambíguo do livro
Versão 2.216.0
Alterado
XMATCHeXLOOKUPrealizam agora pesquisas binárias ascendentes ou descendentes logarítmicas quando pedido, incluindo limites de duplicados e de correspondência aproximada compatíveis com o ExcelXIRRhonra agora o seu palpite com um resolvedor protegido que consegue encontrar raízes elevadas e sensíveis ao palpite, enquantoXNPVusa soma compensada e entradas de data e taxa validadas- A pesquisa de nomes definidos XLSX com cardinalidade elevada usa agora um índice de hash preguiçoso (lazy) sensível ao âmbito, mantendo a ordem serializada, a precedência do nome local e o comportamento de primeira correspondência
- As partes de pacote XLSX preservadas alocam agora o seu tamanho descomprimido declarado uma só vez, mantendo a verificação completa de comprimento e CRC
Corrigido
- Os modos de pesquisa inválidos, as pesquisas binárias com caracteres universais (wildcard), os intervalos de pesquisa bidimensionais e os vetores de retorno desfasados de
XLOOKUPreportam agora erros de fórmula em vez de produzirem resultados ambíguos XIRReXNPVrejeitam agora sinais de fluxo de caixa, taxas, palpites e datas inválidos, truncam seriais de data fracionários e reportam a não convergência em vez de devolverem um ponto médio não verificado
Versão 2.215.0
Adicionado
FREQUENCYagora devolve uma matriz vertical com um resultado por intervalo mais o contentor de excesso
Alterado
SORTagora usa uma ordenação estável e escalável para linhas ou colunas, preservando a ordem de origem das chaves iguaisUNIQUEagora usa correspondência estável indexada por hash para linhas ou colunas, incluindo os resultadosexactly_oncee texto não sensível a maiúsculas e minúsculasPERCENTRANK.INC,PERCENTRANK.EXCeMODE.MULTagora escalam de forma eficiente com entradas de cardinalidade elevada, em vez de depender de varreduras quadráticas
Corrigido
- A opção
by_coldeSORTeUNIQUEagora opera sobre colunas em vez de recuar para o comportamento por linha
Versão 2.214.0
Adicionado
- A abertura de XLSX agora aceita partes XML em fluxo contínuo em UTF-16 little-endian e big-endian, com marca de ordem de bytes ou a declaração específica de endianidade obrigatória, incluindo caracteres fora do Plano Multilingue Básico
Alterado
- As atualizações da cache de PivotTable com cardinalidade elevada usam agora índices de hash determinísticos para valores partilhados e alocam a matriz de registos uma só vez, preservando a ordem de primeira ocorrência dos itens e evitando pesquisas lineares repetidas e o crescimento linha a linha
- As leituras diretas projetadas descartam as células fora das linhas e colunas selecionadas antes de copiar valores em bruto, fórmulas e texto formatado para as memórias intermédias por folha
Corrigido
- XML malformado com marcas de ordem de bytes duplicadas, declarações de codificação não suportadas ou contraditórias, assinaturas UTF-32, comprimentos de bytes UTF-16 ímpares ou pares substitutos inválidos passa a ser rejeitado
- Os trabalhadores paralelos do leitor direto inicializam agora todo o estado do trabalho antes de arrancar, deixam de aceitar novos trabalhos de folha após uma falha, voltam a emitir o erro do trabalho de índice mais baixo de forma determinística e limpam todos os trabalhadores criados se a construção do conjunto (pool) falhar
Versão 2.213.0
Adicionado
T.TESTagora avalia amostras independentes com variância igual agregada ou variância desigual de Welch, para além das amostras emparelhadas, incluindo probabilidades de uma e duas caudas
Alterado
- A abertura de XLSX segue agora os alvos de relacionamento do livro, da folha de cálculo e do desenho para folhas de cálculo, cadeias partilhadas, estilos, temas, macros, ligações externas, comentários, comentários em tópicos, VML, desenhos, imagens, gráficos, tabelas e PivotTables, incluindo pacotes válidos que usam caminhos de parte renomeados ou não contíguos
Corrigido
- Pacotes malformados com identificadores de relacionamento duplicados deixam de permitir que um relacionamento posterior não suportado substitua o primeiro alvo utilizável durante a recuperação de compatibilidade
Versão 2.212.0
Alterado
- O rastreio de dependências de fórmulas escala agora melhor em folhas de cálculo grandes ao indexar as dependências de células e intervalos antes das recompilações e da invalidação de células sujas
- As fórmulas estatísticas e de regressão grandes avaliam agora todos os valores numéricos nos intervalos fornecidos em vez de pararem no tamanho fixo anterior da memória intermédia
Corrigido
- As células XLSX fora da grelha da folha de cálculo são rejeitadas de forma consistente, pelo que as coordenadas inválidas deixam de se sobrepor a células válidas
- A edição de fórmulas deixou de repor o modo de cálculo do livro, os limites de iteração, os indicadores de cálculo completo e outras definições de cálculo
- As leituras por lista de blobs validam agora explicitamente os intervalos pedidos e permitem fatias vazias válidas no fim do fluxo
Segurança
- A encriptação de XLS clássico abrange agora os fluxos da cache pivot juntamente com os dados da folha de cálculo
- Caudas de extensão SST e registos do diretório central de ZIP malformados são rejeitados antes que uma alocação excessiva, uma leitura truncada ou registos de diretório falsos embutidos num comentário possam afetar o carregamento
Versão 2.211.0
Adicionado
TXLSPivotTable.Makematerializa agora todos os campos de dados configurados com a sua própria agregação e expande os valores em linhas ou colunas de acordo comDataFieldAxisIsRow
Alterado
- A geração de resultados pivot reutiliza domínios de chave de linha e coluna indexados por hash em todos os campos de dados, seleciona armazenamento de acumulador denso ou disperso consoante a forma do resultado, preserva a ordem dos itens da cache para além de nove chaves e emite etiquetas combinadas legíveis para eixos de múltiplos campos
Corrigido
Countinclui agora valores de cache de texto não vazio, booleanos, de erro, de data e numéricos, enquantoCountNumsinclui apenas valores numéricos e de data;Productdevolve zero para interseções sem valores numéricos; os vazios deixam de ser contabilizados como entradas; e os pivots só de valores podem materializar os seus totais gerais sem campos de linha ou coluna
Versão 2.210.0
Adicionado
TXLSWorkbookViewerrepresenta agora preenchimentos condicionais XLSX, cor de fonte e ênfase, formatos numéricos, barras de dados direcionais positivas e negativas, gradientes, limites, eixos, valores ocultos e todas as famílias de conjuntos de ícones incorporadasTXLSWorkbookViewer.RefreshConditionalFormatsrecompila o estado agregado e de limiares preparado depois de os programas chamadores modificarem um livro XLSX anexado no local
Alterado
- O visualizador coloca em cache um avaliador de formatos condicionais preparado por cada folha de cálculo ativa, reutiliza-o entre operações de deslocamento, seleção e repintura e liberta-o quando o livro ou a folha de cálculo muda
Corrigido
- Os eixos de barras de dados no limite mais à direita são agora recortados dentro da célula proprietária em vez de serem desenhados na célula adjacente
Versão 2.209.0
Adicionado
- As folhas de cálculo XLSX expõem agora um avaliador de formatos condicionais preparado que resolve a prioridade da regra,
StopIfTrue, fórmulas relativas, estilos diferenciais, classificação Superior/Inferior, testes de média acima/abaixo, valores duplicados e únicos, períodos de datas relativas, escalas de duas e três cores, barras de dados e conjuntos de ícones para qualquer célula
Alterado
- As exportações HTML e PDF representam agora preenchimentos condicionais correspondentes, ênfase e cor da fonte, formatos numéricos, escalas de cor, barras de dados direcionais positivas e negativas, eixos explícitos, glifos de famílias de ícones, valores ocultos e cores de tema com resolução de tinta
- Os domínios de formatos condicionais grandes reutilizam agora fórmulas relativas compiladas sem alocação de árvore sintática 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 banda de linha para evitar analisar regras não relacionadas
Corrigido
- As regras condicionais clássicas carregam agora os tipos de expressão corretamente e avaliam de forma consistente a inversão entre limites, os predicados de texto não sensíveis a maiúsculas e minúsculas, as células em branco e os predicados de erro
Versão 2.208.0
Alterado
- O motor de armazenamento de células compactado escreve agora payloads nativos etiquetados de cadeia, booleano, erro e vazio, itera as células por ordem de linha principal e codifica com comprimento de execução as células consecutivas de tipo igual, para um menor uso de memória e um sequencial de saída mais rápido
- As cadeias partilhadas do livro clássico mantêm agora os bytes dos caracteres numa só alocação e criam os valores de cadeia descodificados de forma preguiçosa (lazy), reduzindo a sobrecarga de alocação para tabelas grandes de cadeias únicas
Adicionado
- As tabelas pivot podem agora calcular uma matriz de resultados completa a partir de registos da cache, com agrupamento de chaves de linha e coluna e as 11 funções de agregação suportadas
- Os gráficos do livro clássico expõem agora informação tipada de séries, eixos, legenda e grupo de gráficos para fluxos de conversão e inspeção
Versão 2.207.0
Adicionado
TXLSPivotCache.RefreshFromSourceconstrói uma cache pivot a partir de um intervalo de folha de cálculo de origem: lê a linha de cabeçalho para dar nome aos campos, destila os valores distintos de cada linha de dados no domínio de itens partilhados por campo, fixa o tipo de campo a partir do primeiro valor não vazio e regista o índice do item partilhado para cada par (registo, campo) — pelo que uma tabela pivot pode ser criada programaticamente a partir de um intervalo de dados em vez de depender dorefreshOnLoaddo Excel. Um leitor de valores baseado em chamada (callback) mantém a unidade pivot livre de uma dependência direta da folha de cálculo
Versão 2.206.0
Adicionado
- O novo
TlxCellMMU(unidadelxCellMMU) implementa um motor de armazenamento de células compactado, por ordem de linha principal, com codificação por comprimento de execução de sequências de células de tipo igual e vazias, e um código de tipo de byte etiquetado que funciona também como seletor de largura de dados — pelo que uma coluna de inteiros pequenos custa um byte por célula em vez de oito. O motor codifica os números na menor largura que preserva o valor (inteiros escalonados int8 / int16 / int32 / 2 decimais / 4 decimais / IEEE double), armazena de forma compacta células de índice de cadeia, booleanas, de erro e vazias, e expõe uma APIGetValue/SetNumber/SetStringmais um iterador para a frente. Este é o back-end de nova geração, atrás de um indicador de funcionalidade, para a APITXLSXCellsexistente, visando uma redução de 10–25× no conjunto de trabalho em folhas densas
Versão 2.205.0
Adicionado
TXLSCustomChart.GetChartInfodescodifica agora um resumo semântico a partir do fluxo de registos BIFF de gráfico em bruto — família de tipo de gráfico (barras, linhas, circular, área, dispersão, radar, rosca, superfície, bolhas), número de séries e presença de legenda — para 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 de destino correta. O armazenamento de passagem de bytes que garante a fidelidade de ida e volta mantém-se inalterado
Versão 2.204.0
Alterado
- A tabela de cadeias partilhadas clássica de
.xlsescreve agora as cadeias só ASCII na codificação Latin-1 comprimida ([MS-XLS] §2.5.294fHighByte=0, um byte por caractere) em vez de usar sempre UTF-16, reduzindo aproximadamente para metade o tamanho da SST — e, por isso, do ficheiro.xls— para livros ricos em ASCII
Versão 2.203.0
Adicionado
- O novo
TlxCompoundFilelê e escreve o formato de contentor Compound File Binary (OLE2) diretamente em Pascal puro, sem dependência deole32.dll/ COMIStorage— abrindo caminho ao manuseamento de.xlsem memória e multiplataforma. O leitor cobre o esquema v3 que o HotXLS encontra no terreno (cabeçalho + DIFAT no cabeçalho + percurso da cadeia FAT + MiniFAT e o mini-fluxo para fluxos com menos de 4096 bytes + a árvore de diretório); o gravador emite um contentor v3 mínimo mas válido, suficiente para o resultado do HotXLS
Versão 2.202.0
Adicionado
- O estado de ordenação do filtro automático tem agora um modelo tipado (
TXLSXSortStatecom filhosTXLSXSortCondition) que cobre ordenação por valor / cor de célula / cor de fonte / ícone, método de ordenação (nenhum / traço / pinYin), sensibilidade a maiúsculas e minúsculas, ordenação de colunas e listas personalizadas por condição — para que as aplicações possam construir estados de ordenação programaticamente em vez de editar XML em bruto, enquanto a passagem deSortStateXmlopaca legada continua a prevalecer para ficheiros não da autoria do HotXLS - Os filtros dinâmicos são agora lidos e escritos como um
TXLSXDynamicFilterTypetipado (média e desvio-padrão acima/abaixo, hoje/ontem/amanhã, esta/última/próxima semana, mês, trimestre e ano, ano até à data, T1–T4, M1–M12) com limitesval/maxValopcionais — abrir um livro que usa um filtro dinâmico deixou de o eliminar ao guardar
Versão 2.201.0
Adicionado
- Os gráficos de superfície e superfície 3D (
xlsxChartSurface/xlsxChartSurface3D) passam agora a ser tipos de gráfico de primeira classe — escritos, lidos e com ida e volta como as outras famílias de gráficos - A API de criação de autoformas abrange um subconjunto prático da lista de geometrias predefinidas de OOXML — triângulos, losangos, paralelogramos, hexágonos, octógonos, setas, chevrons, balões de chamada, nós de fluxograma, estrelas, corações, sol, lua, parênteses e chavetas — cada um mapeado para o token
prstcorreto e para o identificador de forma[MS-ODRAW], pelo que as formas criadas são representadas corretamente no Excel (a lista completa de 187 predefinições já era preservada em ida e volta através da passagem por âncora em bruto)
Versão 2.200.0
Corrigido
- Abrir um livro cujo filtro automático usa um filtro de cor ou um filtro de ícone deixou de eliminar esse filtro ao guardar —
colorFiltereiconFiltersão agora lidos para colunas tipadas (TXLSXAutoFilterColumn.SetColorFilter/SetIconFilter) e reemitidos textualmente, em vez de se perderem como elementos filho 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 dada célula, cobrindo comparações de valor de célula, expressões de fórmula, regras de texto contém/inicia/termina, em branco e de erro — a base para consultar que células uma regra realça atualmente e para representar resultados de FC fora do Excel
Alterado
FACTe os auxiliares internos de fatorial usam agora uma tabela pré-computada de 0! a 170! em vez de recompilar um produto O(n) em cada chamada, acelerandoFACT, coeficientes multinomiais e os caminhos de distribuição de Poisson/Binomial/qui-quadrado
Versão 2.198.0
Alterado
- Guardar uma folha de cálculo agrupa agora as células em linhas com uma única passagem de contagem e depois preenchimento, em vez de fazer crescer o índice de cada linha com uma realocação por célula, eliminando uma cópia oculta O(células × células por linha) em folhas grandes
- O gráfico de dependências de fórmulas indexa agora os seus intervalos de referência por (folha, linha), pelo que a sementeção de uma célula suja faz uma pesquisa binária na banda candidata em vez de analisar todas as fórmulas em cada célula alterada — quanto maior o livro e mais folhas tiver, maior o ganho de velocidade no recálculo
- A travessia de células por ordem de linha principal, ordenada por colunas, é agora exposta como
TXLSXWorksheet.BuildRowMajorCellOrder, para que guardar, área de transferência, filtro automático e outros consumidores ordenados por linha partilhem uma única travessia em vez de a derivarem de novo
Versão 2.197.0
Corrigido
- Os gráficos de radar, de ações e de circular de circular/barras de circular deixaram de perder-se quando um livro
.xlsxque os contém é aberto e guardado de novo — o leitor de gráficos reconhece agora os elementos contentoresc:radarChart,c:stockChartec:ofPieChartque já escrevia, restaurando a cobertura simétrica de leitura/escrita SUBTOTALcom códigos de função 101–111 exclui agora os valores em linhas ocultas, eAGGREGATEhonra agora os seus códigos de opção de ignorar linhas ocultas (2, 3, 6, 7), correspondendo ao Excel em vez de tratar as variantes de incluir ocultas e ignorar ocultas de forma idêntica- Chamar uma função incorporada de aridade fixa com mais argumentos do que os declarados (por exemplo
=SIN(1,2)) levanta agora#VALUE!centralmente em vez de ser aceite pelo despachante
Versão 2.196.0
Corrigido
- A inserção e eliminação de linhas e colunas particiona agora os formatos condicionais de valor de célula e de expressão, bem como as validações de dados, quando as áreas de destino editadas exigem âncoras de fórmulas relativas diferentes, preservando as definições das regras, atribuindo prioridades de formato condicional exclusivas e mantendo os domínios de formato condicional agregados intactos
Versão 2.195.2
Alterado
- A exportação PDF extrai agora subconjuntos da fonte TrueType incorporada através da API
CreateFontPackagedefontsub.dlldo Windows, mantendo apenas os glifos que o documento representou efetivamente em vez de incorporar o.ttfcompleto — reduzindo tipicamente o PDF em 8–20× para folhas ricas em Unicode; recua para a incorporação completa quando a extração de subconjuntos não está disponível
Versão 2.195.1
Corrigido
- Inserir ou eliminar linhas e colunas no motor clássico de
.xlsreescreve agora todas as referências de fórmula afetadas (fórmulas de célula e nomes definidos) para corresponder à semântica do Excel — as referências abaixo de uma inserção deslocam-se, as referências totalmente dentro de uma eliminação tornam-se#REF!e as áreas parcialmente sobrepostas encolhem — em vez de deixar coordenadas obsoletas
Versão 2.195.0
Alterado
- Eliminar colunas de tabela converte agora todos os tokens de referência estruturada afetados em
#REF!nas fórmulas da folha de cálculo, fórmulas de tabela, nomes definidos e séries de gráficos, preservando as referências não relacionadas e os literais de cadeia
Corrigido
- Eliminar uma tabela inteira deixou de deixar referências estruturadas qualificadas a apontar para uma tabela que já não existe
- As validações de dados clonadas retêm agora o seu modo de entrada IME
Versão 2.194.0
Alterado
- As edições de linhas e colunas mantêm agora os identificadores de colunas de tabela Excel, os nomes, as fórmulas calculadas, as fórmulas de totais, as colunas de filtro, os intervalos de filtro e as condições de ordenação alinhados com a tabela editada
Corrigido
- As fórmulas de formato condicional e de validação de dados reajustam agora as referências relativas e mistas quando a eliminação remove a sua primeira área de destino
- Os estados de ordenação da folha de cálculo e da tabela escrevem agora atributos válidos e descartam as condições cujos intervalos foram eliminados
Versão 2.193.0
Alterado
- As edições de linhas e colunas atualizam agora as fórmulas de nomes definidos complexas e de âmbito cruzado, os intervalos de dados de gráficos de bolhas e os limiares de formatos condicionais visuais baseados em fórmulas
- Os gráficos de bolhas e de dispersão restauram agora os seus intervalos de séries de eixo X, eixo Y e tamanho de bolha quando reabertos
Corrigido
- Os alvos de formato condicional e de validação de dados com várias áreas deslocam agora cada área sobrevivente de forma independente em vez de deixar a lista de alvos completa inalterada
- As âncoras de caixas de texto e de WordArt deslocam-se ou redimensionam-se agora com as linhas e colunas inseridas e eliminadas
Versão 2.192.0
Adicionado
- As leituras diretas em fluxo contínuo e a travessia por cursor de linha podem optar por cadeias avançadas estruturadas com formatação completa de execuções, execuções fonéticas e propriedades fonéticas, mantendo o armazenamento limitado de cadeias partilhadas
TXLSDirectWriter.WriteRichStringescreve texto formatado e fonético como cadeias inline ou cadeias partilhadas deduplicadas
Alterado
- A deduplicação de cadeias partilhadas avançadas distingue agora a formatação de execuções e os metadados fonéticos, mantendo a normalização de cadeias comuns no seu caminho rápido existente
Corrigido
- O texto fonético nas cadeias inline deixou de ser incluído no valor de célula apresentado
Versão 2.191.0
Adicionado
TXLSXRange.SetDynamicArrayFormulacria agora fórmulas de matriz dinâmica nativas com a cadeia de metadados XLDAPR completa do Excel
Alterado
- As raízes de matriz dinâmica partilham agora um registo de metadados do livro deduplicado e as cópias de folha de cálculo ou intervalo entre livros remapeiam esse registo para o livro de destino
- Os metadados de matriz dinâmica suportados continuam disponíveis quando a preservação de partes de pacote não suportadas está desativada, enquanto os metadados de valor não relacionados continuam a ser removidos
Corrigido
- As células de transbordamento (spill) de matriz dinâmica deixaram de ser modeladas como seguidoras CSE legadas, e substituir ou limpar a raiz deixou de deixar índices de metadados obsoletos
- Remover a raiz de matriz dinâmica final remove agora a parte de metadados não utilizada, o relacionamento do livro e a entrada de tipo de conteúdo
Versão 2.190.0
Alterado
- As leituras diretas em fluxo contínuo e a travessia por cursor de linha expandem agora os seguidores de fórmulas partilhadas em fórmulas completas relativas à célula, mantendo o comportamento de projeção e memória limitada
Corrigido
- Os livros com matrizes dinâmicas preservam agora os índices de metadados de célula e de valor, os atributos de recálculo de fórmulas, os relacionamentos de partes de metadados e os prefixos de funções futuras inalterados durante os ciclos de abertura e gravação
- A desativação da preservação de partes não suportadas deixou de deixar índices de metadados de folha de cálculo pendurados depois de a parte de metadados ser removida
Versão 2.189.0
Adicionado
- Abrir livros XLSX expande agora os seguidores de fórmulas partilhadas em fórmulas completas por célula, com referências relativas, absolutas, mistas, de intervalo e qualificadas por folha corretas
Corrigido
- Os seguidores de fórmulas partilhadas de fecho automático (self-closing) deixaram de capturar XML de valor ou fórmula posterior, e os seus resultados em cache sobrevivem aos ciclos de abertura e gravação
- As fórmulas de matriz CSE retêm agora a sua âncora e os relacionamentos de seguidores através de edições de estrutura de linhas ou colunas, cópias de intervalo completo, duplicação de folhas de cálculo e cópias de folhas entre livros
- Atribuir uma fórmula normal ou limpar uma célula remove agora a adesão obsoleta a matriz CSE, para que o cálculo não possa ser redirecionado para uma âncora de matriz antiga
- Copiar apenas parte de uma matriz CSE deixou de criar referências de seguidor penduradas no destino
- As cópias de intervalo capturam agora as origens sobrepostas e deslocam as referências de fórmula relativas, impedindo que as células de origem ou as âncoras de matriz sejam substituídas antes de serem copiadas
- As edições de linhas ou colunas 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 cadeias partilhadas descodificadas e migra automaticamente tabelas maiores para armazenamento temporário indexado de eliminação ao fechar, com uma cache de valores de tamanho fixoTXLSRowCursor.SharedStringMemoryLimitexpõe o mesmo controlo de armazenamento limitado de cadeias partilhadas para travessia de linha só para a frente
Alterado
- A análise direta de cadeias partilhadas preserva agora valores só com espaços em branco, CDATA, entidades XML, caracteres não BMP, itens vazios e a ordem das execuções de texto formatado (rich text), excluindo o texto de guia fonético do valor apresentado
Corrigido
- Abrir livros XLSX retém agora todos os itens de cadeia partilhada por ordem de documento, evitando que texto duplicado ou cadeias avançadas com formatação diferente façam colapsar índices de células posteriores
- Guardar livros XLSX deduplica agora as cadeias avançadas por limites de execução e propriedades de formatação em vez de só por texto visível, preservando formatação distinta para células com o mesmo valor apresentado
Versão 2.187.0
Adicionado
TXLSDirectReader.FirstRoweLastRowrestringem as leituras em fluxo contínuo a um intervalo de linhas baseado em 1 e param a análise da folha de cálculo após o intervalo pedidoTXLSDirectReader.IncludeColumneClearColumnProjectionfornecem projeção de coluna em tempo constante que salta as células não selecionadas antes da descodificação de valores e do despacho de chamadas
Versão 2.186.0
Adicionado
TXLSDirectWriter.UseSharedStringspode deduplicar texto repetido numa parte de cadeias partilhadas OOXML com contagens totais e únicas exatas, reduzindo o tamanho do pacote para dados ricos em repetiçõesTSimpleDomReaderfornece uma árvore XML compacta de passagem única para consultas de acesso aleatório a metadados do livro e partes do pacote, com pesquisa de QName e nome local sensível a maiúsculas e minúsculas
Alterado
- A leitura direta de XLSX usa agora despacho de elemento exato assistido por hash, recolha de atributos em passagem única e procura de coluna da linha atual em tempo constante, preservando o comportamento de memória em fluxo contínuo
- A geração de XML de cadeias partilhadas usa agora uma memória intermédia de crescimento linear para evitar cópias repetidas de cadeias completas em tabelas grandes de cadeias distintas
Corrigido
- A exportação CSV de fórmulas deixou de adicionar um segundo sinal de igual quando o texto da fórmula já inclui um
- A exportação PDF de XLSX deixou de truncar texto de célula usando uma estimativa de contagem de caracteres antes da composição
- Os hashes de nome do leitor XML acompanham agora instruções de processamento, atributos e regressos ao elemento proprietário sem expor estado de elemento obsoleto
Versão 2.185.1
Corrigido
- Inserir ou eliminar linhas e colunas ajusta agora as referências de fórmula locais e entre folhas exatamente uma vez, preservando os nomes de funções e os literais de texto
Versão 2.185.0
Adicionado
TXLSPDFExportfornece agora seleção de saídaFirstPageeLastPagebaseada em um, umPageCountlógico completo e seis sobrecargas deCalculatePageCountpara intervalos clássicos e XLSX, folhas de cálculo e livros, sem construir objetos de página PDFTXLSXWorkbook.SaveWorkbookAsHTMLpublica as folhas de cálculo visíveis num documento HTML navegável, com âncoras estáveis por folha, títulos e nomes de folha com escape e uma opção para incluir folhas ocultas ou muito ocultasTDataToXLS.BeforeRecordpode saltar registos antes da saída de linha eBeforeValuepode transformar ou suprimir valores de campo com contexto de conjunto de dados, de detalhe, de campo de origem e de coluna de exportaçãoTXLSWorkbookViewerexpõe comentários e hiperligações das células selecionadas, eleva um evento de hiperligação controlado pela aplicação, pinta indicadores de comentário e fontes, preenchimentos e alinhamento XLSX, e normaliza a seleção e a representação em intervalos intercalados (merged)
Alterado
- O exemplo ConversionWorkbench pode agora produzir saída PDF e publica todas as folhas de cálculo XLSX visíveis para destinos HTML, enquanto o exemplo WorkbookViewer demonstra navegação de células intercaladas, comentários e ativação de hiperligações
Versão 2.184.0
Adicionado
- Os intervalos XLS clássico e XLSX podem copiar texto tabular Unicode e HTML com estilo para a área de transferência do Windows através de
CopyToClipboard, preservando fórmulas, células intercaladas (merged), ligações, formatação de apresentação, bem como tabulações embutidas, quebras de linha e aspas com escape seguro TXLSXWorkbookpreserva agora partes de pacote personalizadas alcançáveis a partir de relacionamentos desconhecidos na raiz do pacote, do livro, da folha de cálculo ou do desenho, incluindo o tratamento de colisão de identificadores de relacionamento, tipos de conteúdo, relacionamentos filho, escolha de compressão e bytes exatos do payload;PreserveUnsupportedParts,UnsupportedPartCount,UnsupportedPartByteseClearUnsupportedPartsexpõem controlo e diagnóstico- As gravações de XLS clássico expõem chamadas de início, trabalho e fim com cancelamento através de
OnProgressEx, enquantoIXLSWorkbookProgressfornece diagnóstico estruturado com códigos estáveis, gravidade, operação, contexto de folha, valores de retorno nativos e detalhes de exceção TXLSXWorkbookexpõe agora as mesmas superfícies estruturadasDiagnostics,LastDiagnosticeOnDiagnosticpara gravação, abertura, recálculo, cancelamento e relato de exceções- Os módulos VBA analisados suportam agora a edição de
SourceCodee a escrita do fluxo de módulo comprimido atualizado de volta através de XLS clássico, armazenamento VBA autónomo e gravações OOXML com macros ativadas, preservando prefixos de fluxo e conteúdo de projeto não tocado - As folhas de cálculo clássicas e as coleções de formas expõem agora controlos de formulário tipados
TXLSCheckBox,TXLSComboBoxeTXLSListBox, com auxiliares de criação, etiquetas, inspeção do tipo de controlo, âncoras de célula, eliminação e descoberta ao abrir/guardar TXLSXRange.ApplyFormatPatchpode copiar seletivamente componentes de fonte, preenchimento, limite, formato numérico, alinhamento e proteção, com mosaico do padrão de origem, preservando os valores de destino e a formatação não selecionadaTDataToXLSpode exportar recursivamente conjuntos de dados mestre-detalhe ligados através deReadDetailTableseIndentDetailTables, preservando ligações de dados ativas, acrescentando cada tabela de detalhe abaixo do seu registo mestre e herdando opções de campo, título e formatação em todos os níveisTXLSXWorksheet.AddWordArtcria texto DrawingML ancorado à célula com deformação predefinida, mais cores de texto e contorno configuráveis, e o caminho de preservação de âncora de desenho em bruto mantém a forma WordArt completa nos ciclos posteriores de abrir/guardarTXLSWorkbookVieweradiciona um visualizador de folha de cálculo VCL para objetos de livro clássicos e modernos, com carregamento de ficheiros XLS, XLSX, XLSM, modelos e ODS, texto de célula formatado, estilos clássicos, dimensionamento de linhas e colunas, cabeçalhos, representação de grelha e seleção, barras de deslocamento, seleção com rato, navegação por teclado, posicionamento de células, comutação de folhas e eventos de seleção ou de folha- Os novos exemplos Delphi
FeatureShowcaseeWorkbookViewerdemonstram impressão PDF com estilo, títulos de impressão, quebras manuais, controlos de formulário clássicos, patches de formato seletivos, WordArt, diagnóstico, criação de visualizador em tempo de execução, carregamento de ficheiros, navegação de células, comutação de folhas e eventos do visualizador, com guias em inglês correspondentes e tópicos de referência para programadores
Alterado
- A exportação PDF de livros, folhas de cálculo e intervalos clássicos XLS e XLSX modernos escreve agora todas as folhas de cálculo visíveis num só documento, salta folhas ocultas e de gráfico, representa preenchimentos sólidos, cores de fonte, tamanhos de fonte, ênfase a negrito e itálico, alinhamento horizontal e vertical, limites de célula explícitos e opcionalmente a grelha da folha de cálculo, segue a área de impressão, o tamanho do papel, a orientação, as margens, o zoom, o ajustar à largura, as larguras das colunas, as alturas reais das linhas, 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 folha, data e hora, pagina intervalos largos e altos em ambos os eixos, emite sintaxe numérica PDF independente da região e incorpora uma fonte TrueType elegível mais um mapa ToUnicode para texto fora de WinAnsi
- As chamadas de progresso estendido de XLSX recebem agora estados de início, trabalho e fim fiéis para gravação, abertura e recálculo, enquanto a chamada legada continua só com trabalho e todas as operações repostas do estado de cancelamento anterior
- A serialização de XLS clássico propaga agora as falhas de folha de cálculo, gráfico, extensão de estilo, VBA, fluxo de controlo, armazenamento e commit de saída em vez de reportar sucesso, e as gravações de ficheiro preparam o ficheiro composto completo antes de substituir atomicamente o destino
- As gravações de ficheiros XLSX e ODS constroem agora um pacote temporário irmão completo e substituem atomicamente o destino apenas após a finalização com sucesso, deixando os ficheiros existentes inalterados após cancelamento ou falha
Versão 2.183.0
Adicionado
TXLSDirectWritersuporta agora identificadores de estilo de célula ao nível do pacote reutilizáveis e clonagem de estilos sem armazenar as linhas da folha de cálculo; o mesmo índice de estilo pode ser aplicado a qualquer número de células ou reutilizado entre folhas de cálculo- Os estilos de célula diretos fornecem 30 capacidades de formatação que abrangem nome da fonte, tamanho, cor BGR, negrito, itálico, rasurado, contorno, sombra, cinco modos de sublinhado, 19 padrões de preenchimento com cores de primeiro e segundo plano, cinco margens de limite coloridas de forma independente com 14 estilos de linha e direções diagonais, formatos numéricos incorporados ou personalizados, alinhamento horizontal e vertical, moldar, ajustar para caber, avanço, rotação de texto, prefixos de aspas e proteção bloqueado/oculto
- Estão disponíveis sobrecargas com estilo para cadeias, números, booleanos, datas, fórmulas, erros e todos os tipos de resultado de fórmula em cache, permitindo aos exportadores de grande volume selecionar um estilo pré-compilado por índice de número inteiro durante escritas sequenciais
Alterado
- O gravador direto deduplica componentes iguais de fonte, preenchimento, limite e formato numérico ao compilar
styles.xml, preservando os índices de estilo de célula estáveis já escritos nos fluxos da folha de cálculo - As tabelas de estilo do gravador direto geradas incluem agora os preenchimentos predefinidos
noneegray125padrão antes dos preenchimentos personalizados, para uma compatibilidade OOXML mais estrita
Versão 2.182.0
Adicionado
TXLSDirectWriterescreve agora formatação condicional mantendo o 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/inicia/termina, regras de valor e percentagem superior ou inferior, regras de média acima ou abaixo, valores duplicados e únicos, 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 base de conjuntos de ícones- As regras de formato condicional diretas suportam prioridades explícitas, avaliação stop-if-true, opções de desvio-padrão e igualdade da média, substituição de limiares de ícones, apresentação só de ícones e invertida, visibilidade do valor das barras de dados, cores BGR e estilos diferenciais de preenchimento, cor de fonte, negrito e itálico
Alterado
- O gravador direto deduplica estilos diferenciais equivalentes entre folhas de cálculo e armazena apenas regras e estilos de formato condicional, pelo que o uso de memória escala com a contagem de regras e não com o número de linhas da folha
- Os tipos de limiares mínimo e máximo automáticos das barras de dados são normalizados para os tokens
minemaxpadrão no elemento OOXML de base, para uma ampla compatibilidade com folhas de cálculo
Versão 2.181.0
Adicionado
TXLSDirectWriterescreve agora proteção de folha de cálculo e de livro sem armazenar os dados da folha, incluindo 15 permissões de folha de cálculo detalhadas, verificadores legados de palavra-passe, metadados modernos de hash, intervalos protegidos editáveis com palavras-passe ou descritores de segurança opcionais, bloqueios de estrutura e de janela do livro, atribuição de verificador em bruto e limpeza de proteção
Corrigido
- As âncoras de desenho não suportadas retêm agora todos os elementos de fecho quando reconstruídas para saída de ida e volta, pelo que os desenhos só de forma permanecem bem formados após abrir e guardar
- As permissões de proteção de folhas de cálculo XLSX seguem agora a definição OOXML do indicador locked, pelo que as ações permitidas escrevem
0, as proibidas escrevem1e os atributos omitidos reabrem com as predefinições do esquema - As palavras-passe legadas de folha de cálculo, intervalo protegido e livro XLSX usam agora o algoritmo de verificador de 16 bits compatível com o Excel, com conversão ANSI e o limite de 15 bytes
Versão 2.180.0
Adicionado
- O modelo de folha de cálculo XLSX faz agora a ida e volta dos elementos Gestor de Cenários What-If (
<scenarios>) e Consolidação de Dados (<dataConsolidate>). As novas propriedadesScenariosXmleConsolidateXmlde XML em bruto emTXLSXWorksheettransportam o conteúdo interno textualmente — o gravador emite os elementos contentores, o leitor analisa os filhos de cenário/consolidação de dados de volta. Os ficheiros de modelação financeira que definem cenários ou definições de consolidação deixaram de os perder na ida e volta.
Versão 2.179.0
Adicionado
- A nova função auxiliar
XlsxBuildNumFmtconstrói códigos de formato numérico OOXML a partir de propriedades semânticas —Decimals,Thousands(separador),NegativeRed(negativos a vermelho),CurrencySymbolePercent. Os programas chamadores deixaram de precisar de escrever manualmente cadeias de formato como"$#,##0.00;[Red]-$#,##0.00"— o construtor produz-as a partir de parâmetros simples. Concebido para uso comCell.NumberFormatouWorkbook.NumberFormats.Add.
Versão 2.178.0
Adicionado
- O modelo de folha de cálculo XLSX faz agora a ida e volta do nome de código VBA (
<sheetPr codeName="..."/>), essencial para a interoperação VBA, onde o projeto VBA referencia folhas de cálculo pelo nome de código. Nova propriedadeCodeNameemTXLSXWorksheet. - Os comentários suportam agora um alternador de visibilidade
AlwaysShowemTXLSXComment— quando Verdadeiro, o balão de comentário está sempre visível (o alternador "Mostrar/Ocultar Comentário" por comentário do Excel), não apenas ao pairar. - A validação de dados faz agora a ida e volta do atributo de modo IME (
imeMode) emTXLSXDataValidation. A enumeração de 11 valores controla o comportamento do método de entrada CJK ao introduzir numa célula (noControl / off / on / hiragana / fullKatakana / etc.). Essencial para ficheiros de região japonesa/coreana/chinesa. - O modelo de folha de cálculo ganha uma propriedade
PaneStatepara o atributo de estado do painel em<pane>, para além do processamento de modo congelado existente — suporta os estadosfrozenSplit(congelado e depois deslocável) esplit.
Versão 2.177.0
Adicionado
- Três funções de folha de cálculo previamente registadas mas não implementadas têm agora despacho completo:
DOLLAR(texto formatado como moeda),FIXED(texto com casas decimais fixas, com supressão opcional de vírgulas) eAREAS(contagem de áreas numa referência). Anteriormente estas estavam registadas emInitFuncHashmas não tinham nenhum caso no motor de cálculo — avaliar=DOLLAR(...)devolvia silenciosamente resultados errados. - O modelo de folha de cálculo XLSX faz agora a ida e volta das escalas de zoom por tipo de vista (
zoomScaleNormal/zoomScalePageLayoutView/zoomScaleSheetLayoutView), cor das linhas de grelha (sheetView color) e indicadores de apresentação da vista de folha (showFormulas/showZeros). Novas propriedades emTXLSXWorksheet:ZoomNormal,ZoomPageLayout,ZoomSheetLayout,GridColor,ShowFormulas,ShowZeros. - A direção do resumo de contorno faz agora a ida e volta. As novas propriedades
SummaryBelow,SummaryRighteShowOutlineSymbolsemTXLSXWorksheetcontrolam se as linhas/colunas de resumo aparecem abaixo/à direita do detalhe e se os símbolos de contorno estão visíveis. O gravador emite<outlinePr>dentro de<sheetPr>; o leitor analisa-o de volta. - O calcPr do livro transporta agora os atributos
forceFullCalcecalcCompletedjuntamente com o trio existentecalcId/fullCalcOnLoad/calcMode/iterate.
Versão 2.176.0
Adicionado
- O motor de fórmulas XLSX resolve agora as referências estruturadas a tabelas antes da compilação. Um novo método
ResolveStructuredRefsemTXLSXWorkbookanalisa o texto da fórmula à procura de padrõesTableName[ColumnSpec]e substitui-os por referências de intervalo A1 concretas, usando a coleçãoTXLSXTabledo livro. As especificações suportadas 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 decorre automaticamente dentro deGetCompiledFormula— as fórmulas existentes não são afetadas, já que os identificadores que não são de tabela são deixados textuais. Anteriormente as referências estruturadas faziam a compilação da fórmula falhar.
Versão 2.175.0
Adicionado
- O motor de fórmulas suporta agora 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 compila-a convertendo primeiro para notação A1, usando a linha/coluna da célula da fórmula. Uma função autónomaR1C1ToA1realiza a conversão — deteta os marcadoresR/Cautónomos (não parte de um nome de função como ROUND), analisa os desvios entre parêntesis retos opcionais e produz a referência A1 equivalente. Os literais de cadeia e os identificadores são saltados. Anteriormente só se podiam compilar fórmulas no estilo A1.
Versão 2.174.0
Adicionado
- A saída AutoFilter de
TXLSDirectWritersuporta agora colunas de filtro de folha de cálculo e de tabela, filtros de valor, filtros de vazio, filtros de grupo de datas, filtros de comparação personalizados, filtros dinâmicos, filtros de máximo/mínimo, indicadores de botão de filtro, estados de ordenação, condições de ordenação, escape de XML e supressão de duplicados do intervalo de filtro de folha/tabela ao fazer o fluxo de ficheiros XLSX
Versão 2.173.0
Adicionado
- A saída de tabelas de
TXLSDirectWritersuporta agora comentários de tabela, contagens da linha de totais, etiquetas da linha de totais por coluna, funções da linha de totais por coluna, fórmulas de coluna calculada, fórmulas da linha de totais e escape de XML para metadados de colunas de tabela ao fazer o fluxo de ficheiros XLSX
Versão 2.172.0
Adicionado
TXLSDirectWriterescreve agora partes de tabela Excel ao fazer o fluxo de ficheiros XLSX, incluindo relacionamentos de tabela de folha de cálculo, tipos de conteúdo de parte de tabela, intervalos de tabela, nomes de colunas, indicadores de linha de cabeçalho e de linha de totais e indicadores de apresentação de estilo de tabela incorporado, sem construir um modelo de objetos de livro completo
Versão 2.171.0
Adicionado
TXLSDirectWriterescreve agora validações de dados de folha de cálculo ao fazer o fluxo de ficheiros XLSX, incluindo lista, número inteiro, decimal, data, hora, comprimento de texto, fórmula personalizada,sqrefarbitrário, prompt, alerta de erro, permitir vazio, menu pendente e mensagens de entrada/erro, sem construir um modelo de objetos de livro completo
Versão 2.170.0
Adicionado
TXLSDirectWriterescreve agora nomes definidos do livro e de folha local ao fazer o fluxo de ficheiros 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 folha com aspas, escape de XML e semântica de substituição para definidores repetidos de nomes de impressão, sem construir um modelo de objetos de livro completo
Versão 2.169.0
Adicionado
TXLSDirectWriterescreve agora hiperligações de folha de cálculo ao fazer o fluxo de ficheiros XLSX, incluindo relacionamentos externos de URL, mailto e de ficheiro, localizações internas de folha, texto apresentado, descrições, intervalos de hiperligação de célula única ou de várias células, normalização de URLwww.em bruto, escape de XML e alvos de relacionamento codificados por percentagem, sem construir um modelo de objetos de livro completo
Versão 2.168.0
Adicionado
TXLSDirectWriterescreve agora metadados de impressão e de vista de folha ao fazer o fluxo de ficheiros XLSX, incluindo alternadores de apresentação de linhas de grelha e de cabeçalhos de linha/coluna, margens de página, texto de cabeçalho/rodapé ímpar, linhas de grelha e títulos de impressão, centragem 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 objetos de livro completo
Versão 2.167.0
Adicionado
TXLSDirectWriterescreve agora metadados de esquema de folha de cálculo ao fazer o fluxo de ficheiros XLSX, incluindo tamanhos predefinidos de coluna e linha, larguras de coluna personalizadas, linhas e colunas ocultas, intervalos intercalados (merged), intervalos de AutoFilter, painéis congelados, cores do separador de folha e vistas de folha da direita para a esquerda, sem construir um modelo de objetos de livro completo
Versão 2.166.0
Adicionado
- Os fluxos de trabalho XLSX em fluxo contínuo incluem agora listagem de nomes de folha sem análises de folha de cálculo, seleção de folha por cursor de linha baseada em nome, fluxo de datas numéricas em bruto, reutilização do gravador direto, escrita de células de erro e gravadores de resultados de fórmula em cache para valores numéricos, de cadeia, booleanos, de data e de erro
Versão 2.165.0
Corrigido
TXLSDirectReader.ReadStreamrestaura agora a posição do fluxo do programa chamador após a análise direta, correspondendo ao contrato de fluxo documentado e permitindo às aplicações reutilizar o mesmo fluxo após uma passagem de leitura direta
Versão 2.164.0
Adicionado
- As exportações de conjunto de dados de
TDataToXLSsuportam agora listas de cadeiasIncludeFieldseExcludeFields. As aplicações podem criar listas de permissão dos campos exportados, omitir colunas sensíveis e manter cabeçalhos, linhas de dados, larguras de colunas e chamadas de exportação alinhadas com o conjunto de campos selecionado
Versão 2.163.0
Adicionado
- A exportação CSV ganha configuração de aspas de texto nos motores XLS e XLSX.
TXLSWorkbookexpõe agoraCSVEmitFormulaseCSVQuoteAllStrings, eTXLSXWorkbookadicionaCSVQuoteAllStrings. Quando ativado, a exportação de fórmulas escreve o texto da fórmula e os campos de cadeia são colocados entre aspas, enquanto os campos numéricos, de data, booleanos, Nulos e Vazios mantêm as regras normais de aspas
Versão 2.162.0
Adicionado
- O motor XLSX ganha um sistema de eventos de progresso anulável. Uma nova chamada
OnProgressExemTXLSXWorkbookdispara juntamente com aOnProgressexistente, com três melhorias: (1) um parâmetroTXLSXProgressState(ppsBegin/ppsWork/ppsEnd) que delimita cada fase, para que as interfaces saibam quando uma operação começa e termina; (2) um parâmetro varAbort: Booleanque deixa a chamada cancelar a operação atual a meio do fluxo — os ciclos de leitura/escrita/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 chamada dupla. O indicadorFAbortedé repostos no início de cada operação de topo (Open / SaveAs / Recalculate).
Versão 2.161.0
Adicionado
- O modelo de gráfico XLSX suporta agora quatro novos elementos de gráfico para uma maior compatibilidade com o Excel. Tabela de dados do gráfico (
c:dTable):TXLSXChartganha alternadoresShowDataTable+ShowDataTableKeys— quando ativados, o gravador emite o elemento da tabela de dados dentro da área de desenho, para que o Excel represente os dados de origem como uma grelha abaixo do eixo do gráfico. Barras cima/baixo + linhas máximas/mínimas (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). Controlos de vista 3D:TXLSXChartganhaRotation3DX/Rotation3DY/Elevation3D/Perspective3D/RightAngleAxes3D— o gravador emitec:view3Dao nível do gráfico quando qualquer propriedade 3D difere da predefinição. Anteriormente nenhum destes elementos era emitido, pelo que gráficos construídos com tabelas de dados, elementos de gráfico de ações ou vistas 3D perdiam-nos na ida e volta.
Versão 2.160.0
Adicionado
- As referências de fórmula ajustam-se agora automaticamente quando linhas ou colunas são inseridas ou eliminadas no motor XLSX. O método
ShiftSheetGeometry— chamado porInsertRows/DeleteRows/InsertCols/DeleteCols— percorre agora todas as células de fórmula sobreviventes e reescreve as suas referências A1 para refletir a alteração estrutural. Um novo analisador de textoXlsxAdjustFormulaRowColRefsdeteta referências de célula única (A1,$B$2) e referências de intervalo (A1:B3), desloca os seus componentes de linha/coluna para além do ponto de inserção e converte as referências eliminadas em#REF!. Tanto as referências relativas como as absolutas são deslocadas (correspondendo ao comportamento do Excel). Anteriormente as fórmulas ficavam silenciosamente a apontar para as células erradas após uma edição estrutural.
Versão 2.159.0
Adicionado
- O estado de ordenação do filtro automático faz agora a ida e volta pelo motor XLSX.
TXLSXWorksheetganha uma propriedadeSortStateXmlque transporta o XML interno em bruto do elemento<sortState>de OOXML (direção de ordenação de coluna, sensibilidade a maiúsculas e minúsculas, método de ordenação e cada<sortCondition>com o seu indicador 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 ignorado à leitura e nunca escrito. - As definições fonéticas/ruby CJK fazem agora a 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 ignorado à leitura — os ficheiros do mercado japonês perdiam as suas definições de auxílio de leitura furigana.
Versão 2.158.0
Adicionado
- O motor XLSX faz agora a ida e volta da tabela de estilos de célula com nome (
<cellStyles>). Uma nova classeTXLSXNamedStyle+ coleçãoTXLSXNamedStylesemTXLSXWorkbooktransporta 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 analisa-os de volta. Anteriormente o gravador codificava fixamente uma única entrada"Normal"e o leitor descartava todos os estilos com nome, pelo que ficheiros com estilos "Good"/"Bad"/"Total"/com nome personalizado perdiam esses nomes na ida e volta.
Versão 2.157.0
Adicionado
- O motor XLSX faz agora a ida e volta do 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 ao abrir — crítico para livros produzidos por um motor não Excel) eCalcMode(auto / manual / autoNoTable). O gravador emite os atributos correspondentes em<calcPr>; o leitor analisa-os de volta. Anteriormente sóiterate/iterateCount/iterateDeltaeram tratados e o resto era silenciosamente ignorado.
Versão 2.156.0
Adicionado
- O avaliador de fórmulas implementa agora 37 funções de folha de cálculo que estavam previamente registadas (ptg atribuído em InitFuncHash) mas sem implementação de despacho — 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), Amortização (SLN,SYD,DB,DDB,VDB), Estatística Descritiva (AVEDEV,DEVSQ,KURT,SKEW,GEOMEAN,HARMEAN,TRIMMEAN,FREQUENCY), Matriz em Pares (SUMXMY2,SUMX2MY2,SUMX2PY2) e Combinatória/Matemática (COMBIN,PERMUT,FACT,QUOTIENT,ROMAN,DEGREES,RADIANS,STANDARDIZE). As funções de regressão usam um resolvedor de mínimos quadrados; as funções de amortização implementam os métodos de linha reta, soma dos dígitos dos anos e saldos decrescentes; as funções de estatística descritiva calculam o desvio absoluto médio, curtose, assimetria, médias geométrica/harmónica/recortada; e as funções em pares calculam a soma das diferenças quadráticas entre dois intervalos do mesmo tamanho. Um novo auxiliarCollectRangeValuesemTXLSCalculatorextrai valores numéricos dos argumentos de intervalo para as funções estatísticas.
Versão 2.155.0
Adicionado
- O avaliador de fórmulas suporta agora mais cinco nomes de compatibilidade estatísticos e de engenharia:
ERFC,ERFC.PRECISE,BINOM.INV,CHI.INV.RTeF.TEST.ERFCcomplementa a série existente de funções de erro,BINOM.INVpesquisa o limiar da CDF binomial,CHI.INV.RTé um alias do inverso da qui-quadrado da cauda direita eF.TESTdevolve o valor p de duas caudas da variância das amostras
Versão 2.154.0
Adicionado
- O avaliador de fórmulas resolve agora referências entre livros através de uma nova chamada
OnGetExternalValueemTXLSCalculator. Quando uma referência de intervalo 3D aponta para um livro externo ([1]Sheet1!A1), o avaliador faz o reencaminhamento através da chamada em vez de devolver#REF!. O motor XLSX liga esta chamada aGetExternalCellValue, que mapeia o índice SupBook + o índice da folha para a cache<sheetDataSet>doTXLSXExternalLinkcorrespondente e descodifica o valor da célula em cache pelo seu atributo de tipo OOXML (numérico / booleano / cadeia / erro). Anteriormente as fórmulas entre livros devolviam#REF!incondicionalmente; a infraestrutura de chamada permite agora a qualquer motor (BIFF8, XLSX ou um anfitrião de cálculo personalizado) fornecer valores externos. - O avaliador de fórmulas realiza agora difusão de matriz (broadcasting) 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 a todos os elementos do operando matriz. O novo auxiliarApplyArrayBinaryOptrata da validação de forma, da difusão escalar e da propagação da divisão por zero. A aritmética escalar legada não muda — o caminho de matriz só ativa quando pelo menos um operando é uma matriz variante. - O avaliador de fórmulas reconhece agora a função
TABLE(DataTable de Análise What-If). 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 é registada com um ptg sintético (ftabTABLE = 4232) para fazer a ida e volta pela codificação de fórmulas BIFF8 e, no tempo de avaliação, devolve um valor de marcador de posição (0) — os resultados reais são pré-computados pelo Excel e guardados como valores de célula em cache, pelo que o HotXLS não reavalia a lógica de substituição.
Versão 2.153.0
Adicionado
- O modelo tipado de PivotTable transporta agora as propriedades tipadas do eixo de página (Hier / Caption / Name), o âmbito de ordenação automática e os ganchos de ida e volta de XML em bruto para
<formats>e<extLst>necessários para uma maior compatibilidade com o Excel.TXLSPivotFieldganhaPageHier/PageCaption/PageName(F16 — nome de hierarquia OLAP + legenda do eixo de página + nome de apresentação) eAutoSortScope(F20 — referência de intervalo A1 que fixa as células que o Excel usa para ordenar automaticamente os itens do campo);TXLSPivotTableganhaFormatsXml/ExtLstXml(F17 — ida e volta de XML interno em bruto para o bloco de sobreposições de FC / formato numérico<formats>e o bloco de segmentação de dados / cronograma / x14<extLst>, emitido textualmente quando definido, pelo que a ida e volta é 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 da sentinela de fecho. - O rastreio de fórmulas regista agora instantâneos da pilha de operandos por passo, permitindo um verdadeiro depurador passo a passo de "Avaliar Fórmula".
TXLSFormulaStepganhaStepKind(push / reduce / function),StackBefore/StackAfter(instantâneos separados por vírgulas da pilha de operandos no momento em que cada passo começou / terminou) eTokenStart/TokenEnd(intervalo de caracteres baseado em 1 que fixa o passo à fórmula de origem).TXLSFormulaTracerganhaTraceReversed(devolve os mesmos passos por ordem inversa de avaliação — útil para uma interface de retrocesso que percorre do resultado final até aos operandos originais) e uma propriedadeStepCount. Anteriormente o rastreio só registava Depth / Source / Expression / Value sem estado da pilha. - A exportação HTML incorpora agora imagens por célula através de uma nova chamada
OnCellImageemTXLSHTMLExporte de uma nova opçãoxhImages. Quando a opção está definida e a chamada ligada, o exportador pede ao implementador o fragmento<img>de cada célula (normalmente um URI de dados Base64) e acrescenta-o após o texto da célula. Isto desacopla o exportador do armazenamento de imagens BIFF8 do motor XLS (que vive no registo MsoDrawing por folha), pelo que o exportador não tem de analisar as âncoras sozinho. A exportação HTML do motor XLSX já incorporava imagens; isto fecha a lacuna para o motor XLS. - A importação RTF aplica agora as propriedades de caractere (negrito / itálico / sublinhado / rasurado / tamanho) das palavras de controlo RTF à fonte da célula de destino.
TXLSRTFImportacompanha\b/\i/\ul/\strike/\fsao longo do documento e impinge a formatação da execução dominante no XF da célula no momento do commit. Uma nova propriedadeImportCharFormat(predefinição Verdadeiro) alterna o comportamento; defina como Falso para restaurar a importação legada só de texto. As células com várias execuções ficam reduzidas a um único XF (vence a última execução ativa), já que a API de células do motor XLS é ao nível da célula, não por fragmento — mas isto é muito melhor do que perder toda a formatação, que era o que o importador legado fazia. - A nova classe
TXLSHTMLImportanalisa tabelas HTML para células da folha de cálculo. Percorre a primeira<table>na origem, emitindo uma linha de folha de cálculo por<tr>e uma célula por<td>/<th>. Honracolspan/rowspan(intercalação ao estilo Excel), retira etiquetas dentro de uma célula (reduzindo a formatação aninhada a texto simples), descodifica as cinco entidades de caracteres padrão (&/</>/"/'/ ) e as formas numéricas&#NNN;/&#xNN;e coage cadeias numéricas limpas para Double, de modo a que as tabelas importadas se mantenham computáveis. Concebida para a saída que o próprio HotXLS produz (SaveAsHTML) mais tabelas HTML de qualidade geral de copiar-colar; não é um analisador HTML5 completo.
Versão 2.152.0
Adicionado
- As tabelas XLSX retêm agora metadados de totais ao nível da coluna e fórmulas de tabela.
TXLSXTableexpõeColumnTotalsRowFunctions[],ColumnTotalsRowLabels[],ColumnCalculatedColumnFormulas[]eColumnTotalsRowFormulas[];SaveAsemite o XML de coluna de tabela correspondentetotalsRowFunction,totalsRowLabel,calculatedColumnFormulaetotalsRowFormula,Openlê-os de volta e os clones de tabela preservam-nos
Versão 2.151.0
Adicionado
- O modelo tipado de PivotTable transporta agora a coleção de filtros por campo, o alternador de seleção múltipla, a superfície discretePr + groupItems do fieldGroup e o modelo de itens calculados / membros calculados necessários para uma maior compatibilidade de PivotTable.
TXLSPivotFieldganha uma coleção tipadaTXLSPivotFilters(cada entrada transportaFilterTypepela enumeraçãoST_FilterTypede OOXML de 80 membros — famílias de contagem / percentagem / soma / legenda / valor / data — maisValue1/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<pivotField multipleItemSelectionAllowed="1">correspondentes, o bloco<filters><filter .../>por campo, o elemento<fieldGroup><discretePr>...</discretePr><groupItems>...</groupItems></fieldGroup>, o bloco<calculatedItems>por campo e o bloco<calculatedMembers>ao nível da tabela — pelo que os pivots construídos programaticamente com filtros / seleção múltipla / agrupamento / itens calculados fazem a ida e volta.
Versão 2.150.0
Adicionado
- Os nomes definidos mantêm agora o texto da sua fórmula válido quando a folha de cálculo que referenciam é eliminada ou renomeada. Eliminar uma folha reescreve todos os qualificadores
SheetN!dentro da fórmula de um nome definido para#REF!(correspondendo ao comportamento do Excel); renomear uma folha reescreve o qualificador para o novo nome. Anteriormente o texto da fórmula continuava a apontar para um nome de folha inexistente, que o Excel sinalizava como uma ligação quebrada ao reabrir. - O modelo tipado de PivotTable transporta agora a ordem de ordenação e os alternadores de esquema ao nível do campo, mais os atributos de esquema / apresentação ao nível da tabela necessários para uma maior compatibilidade de esquema de PivotTable.
TXLSPivotFieldganhaSortType(manual / ascendente / descendente),Compact,Outline,SubtotalTop,DragToRow/DragToCol/DragToPage/DragToData,ShowAll,InsertBlankRow,NumFmtId;TXLSPivotTableganhaCompact/CompactData/Outline/OutlineData/Indent/ShowEmptyRow/ShowEmptyCol/ShowHeaders/ShowDrill/EnableDrill/FieldListSortAscending/GridDropZonesmaisRowHeaderCaption/ColHeaderCaption/ErrorCaption/MissingCaption/ShowError/ShowMissinge o par de esquema 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=.../>, pelo que os pivots construídos programaticamente transportam o esquema definido pelo utilizador em vez das predefinições do Excel. - Um novo método
FormulaIsVolatileemTXLSWorkbookreporta se uma fórmula forçaria um recálculo em todas as passagens de cálculo — ou seja, se chama uma função volátil (NOW / RAND / TODAY / OFFSET / INDIRECT) ou transporta uma referência não resolúvel. A sonda partilha o mesmo extrator de dependências que o motor de recálculo usa, pelo que a resposta corresponde ao queRecalculaterealmente faz. Os programas chamadores podem usá-lo para sinalizar células para uma interface de verificação, para povoar um conjunto volátil da cadeia de cálculo num livro novo, ou para saltar o cache do resultado de uma fórmula acabada de introduzir.
Versão 2.149.0
Adicionado
- As caches de PivotTable podem agora ser atualizadas a partir do seu intervalo de origem programaticamente. Um novo método
RefreshPivotCache(ACacheId)emTXLSXWorkbookvolta a analisar o intervalo de origem da cache, reconstrói o domínio de itens partilhados por campo (voltando a deduplicar valores e a rederivar os limites por tipo) e reescreve os índices de itens por registo. Anteriormente o HotXLS dependia do indicadorrefreshOnLoad="1"codificado fixo e deferia todo o trabalho de atualização para o Excel na próxima abertura; os pipelines programáticos podem agora atualizar no processo.
Versão 2.148.0
Adicionado
InsertColsno motor XLSX herda agora a largura da coluna do vizinho à esquerda, correspondendo ao comportamento predefinido do Excel para "inserir coluna". Anteriormente a coluna inserida picking up a largura predefinida do livro, produzindo uma lacuna de fidelidade visível após uma reabertura.- O motor XLSX ganha auxiliares convenientes de colapsar contornos
ToggleColGrouped/ToggleRowGroupedemTXLSXWorksheet, que percorrem a árvore de contorno e colapsam ou expandem o grupo num dado nível. Os indicadores de colapsar em si já faziam a ida e volta; isto adiciona a API conveniente em falta de percorrer a árvore.
Versão 2.147.0
Adicionado
- A exportação HTML emite agora âncoras
<a name>nas células que são alvos de hiperligação interna, para que as hiperligações#SubAddressse resolvam corretamente quando o leitor as clica. Anteriormente as ligações eram emitidas mas os alvos não tinham âncoras, pelo que os saltos internos resolviam para nada. - A exportação CSV ganhou uma propriedade
CSVEmitFormulasemTXLSXWorkbook. Quando Verdadeiro, as células de fórmula exportam o seu texto de fórmula (=SUM(A1:A2)) em vez do valor calculado — útil para depuração e para pipelines que reimportam para um motor diferente. - Os URLs de hiperligação externa são agora codificados por percentagem ao escrever (
XlsxEncodeHyperlinkUrl): espaço, parêntesis angulares, aspas, chavetas, barras verticais, barras invertidas, acentos circunflexos e acentos graves são codificados como%XXno atributo<Relationship Target="..."/>, para que o ficheiro abra corretamente em qualquer navegador. As sequências codificadas por percentagem existentes (%20) são preservadas tal como estão. - A informação de estilo de PivotTable transporta agora a superfície completa de
pivotTableStyleInfo:StyleName,ShowRowHeaders,ShowColHeaders,ShowRowStripes,ShowColStripes,ShowLastColumnemTXLSPivotTable. O gravador XLSX emite o elemento correspondente, pelo que os pivots construídos programaticamente transportam o estilo de bandas escolhido pelo utilizador em vez da predefinição codificada fixa. - 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. Devolve a contagem de discrepâncias (0 = todos os valores em cache correspondem ao cálculo recente do motor; as fórmulas voláteis são excluídas). Útil para QA ao transplantar livros entre motores ou validar que um gravador não corrompeu os valores em cache.
Versão 2.146.0
Adicionado
- O motor XLSX suporta agora o cálculo iterativo de referências circulares (o modo de cálculo iterativo do Excel). Um novo trio de propriedades
Iterate/IterateCount/IterateDeltaemTXLSXWorkbookcontrola o comportamento: quandoIterate=Truee um ciclo de referência é detetado duranteRecalculate, o motor reavalia as células membros do ciclo atéIterateCountvezes (predefinição 100) ou até a alteração de cada célula ser< IterateDelta(predefinição 0,001), em vez de devolver#REF!. As definições fazem a ida e volta pelo elemento<calcPr iterate="1" iterateCount="N" iterateDelta="X"/>de OOXML. Os modelos financeiros com referências circulares intencionais (juro sobre juro, alocações circulares) convergem agora em vez de darem erro. - Os campos da cache de PivotTable transportam agora um modelo de agrupamento para agrupamento de intervalo numérico e de 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|..."/>, pelo que os pivots construídos programaticamente com campos agrupados correspondem à saída do Excel. - A exportação HTML emite agora notas finais de comentários. Quando
xhCommentsestá nas opções de exportação, cada célula comentada obtém uma ligação sobrescrita[n], e o texto completo do comentário (autor + corpo) é listado como uma secção de nota final após a tabela, com uma âncora de regresso à célula. Anteriormente os comentários só estavam disponíveis através do atributotitle=da célula, que é invisível quando impresso ou copiado para a área de transferência.
Versão 2.145.0
Adicionado
- Os literais de erro de fórmula BIFF8 (token
tErr) descodificam-se agora num item de sintaxeSA_ERRORtipado em vez de fazerem falhar a análise da fórmula. Uma célula que guarda=#N/A(ou qualquer uma das sete constantes de erro do Excel) anteriormente fazia com que toda a fórmula fosse ignorada à leitura; o byte de erro faz agora a ida e volta por ler → avaliar → escrever e reconstrói-se para a sua forma de texto (#NULL!,#DIV/0!,#VALUE!,#REF!,#NAME?,#NUM!,#N/A) através de um novo auxiliarXlsErrorToString. - O token BIFF8
tIsect $0F(operador de interseção implícita) descodifica-se agora no tradutor de fórmulas binárias, construindo o mesmo nóSA_ISECTque o analisador de texto produz para@. Anteriormente uma fórmula binária que contivessetIsectnão conseguia ser analisada. - A formatação condicional de barras de dados emite agora o bloco de extensão
x14do Excel 2010+ noextLstda folha de cálculo quando o modelo transporta qualquer campo x14 não predefinido (cor de preenchimento negativo, gradiente desativado, cor do eixo, direção, limite). Um novoBuildDataBarExtXmlconstrói o elementoextde<x14:conditionalFormattings>com a prioridade correspondente, par cfvo, preenchimento + cores negativas + do eixo e os atributos de gradiente/limite/direção/negativeBarColorSameAsPositive.
Versão 2.144.0
Adicionado
- O motor XLSX pode agora escrever livros encriptados Agile (
TXLSXWorkbook.SaveAsEncryptedAgile), fechando uma lacuna de compatibilidade de leitura/escrita de alto valor. Agile é o que o Excel 2010+ escreve por predefinição para ficheiros .xlsx protegidos por palavra-passe; o HotXLS conseguia anteriormente ler Agile mas só escrever Encriptação Padrão (AES-128). O novo pipeline de escrita espelha o caminho de descodificação existente: hash de palavra-passe SHA-512 com uma contagem de rotação (spin count) de 100000 iterações, encriptação de pacote por segmento AES-256-CBC, uma chave intermédia gerada aleatoriamente encapsulada pelas três chaves de bloco fixadas pela especificação e um XML de descritor<encryption>completo que transporta os blobs de verificador + chaves encriptados. A saída é fiel ao byte daquilo que o Excel produz e faz a ida e volta de forma limpa porXlsLoadAgileEncryptedFile(verificado por teste: palavra-passe correta descodifica, palavra-passe errada rejeitada). - Novos primitivos criptográficos sustentam o caminho de escrita Agile:
XlsHMACSHA512(RFC 2104, necessário para o elementodataIntegrity),XlsBase64Encode(codificador RFC 4648 que espelha o descodificador existente) eAESEncryptCBC(encriptação AES-CBC para qualquer tamanho de chave 128/192/256, o inverso doAESDecryptCBCexistente). A unidade AES importa agoraaes_encrypt_key192/aes_encrypt_key256do objeto Gladman (anteriormente só estava disponível a encriptação de 128 bits).
Versão 2.143.0
Adicionado
- O avaliador de fórmulas analisa e avalia agora 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(com ligação mais forte do que^, mais fraca do que%) e um novo avaliadorIntersectRangesresolve ambos os operandos como intervalos e devolve o valor da única célula cruzante — a regra de interseção implícita do Excel. O serializador de tokens BIFF emitetIsect $0Fpara que o operador faça a ida e volta por XLS e o caminho de reconstrução do texto da fórmula emite a forma de espaço implícito. Anteriormente tais fórmulas não conseguiam ser analisadas. - Um codificador Base64 padrão (
XlsBase64Encode) está agora disponível, espelhando oXlsBase64Decodeexistente. Este é o pré-requisito para o caminho de escrita de encriptação Agile, que emite saltValue / encryptedVerifierHashInput / encryptedKeyValue / encryptedHmacValue como valores de atributos Base64. - O evento
OnProgressdo livro dispara agora também durante o recálculo completo (Recalculate), com uma nova fasexlsxProgressCalculating. Anteriormente o evento só disparava durante a leitura e a escrita, pelo que recálculos completos longos não davam qualquer sinal de vida à interface. O evento dispara aproximadamente a cada 4% das células para evitar inundações. - As propriedades de documento estendidas (
docProps/app.xml) fazem agora a ida e volta de mais três campos que o Excel escreve para documentos protegidos por palavra-passe / baseados em modelo:Manager,TemplateeDocSecurity(um campo de bits: 1=protegido por palavra-passe, 2=só de leitura recomendado, 4=só de leitura forçado, 8=bloqueado para anotação).
Versão 2.142.0
Adicionado
- O modelo tipado de PivotTable transporta agora a superfície de metadados, origem, campo calculado, "mostrar valores como" e limites de itens partilhados que a ronda anterior de análise sinalizou como lacunas.
TXLSPivotCacheganhaRefreshOnLoad/RefreshedBy/RefreshedDate/MissingItemsLimit/CreatedVersion/RefreshedVersion/MinRefreshableVersion/EnableRefresh/BackgroundQuery/SaveDatamais uma forma tipada de origem de folha de cálculo (SourceName/SourceRelId/SourceIsNamedRange);TXLSPivotCacheFieldganhaFormula/DatabaseField/MemberPropertyField(campos calculados) e os limites de itens partilhados (ContainsBlank/ContainsInteger/ContainsString/ContainsNumber/ContainsDate/MinValue/MaxValue/MinDate/MaxDate/HasBounds);TXLSPivotDataFieldganhaShowDataAs/BaseField/BaseItempara as transformações "mostrar valores como" (percentagem de / diferença / total acumulado / índice). O gravador XLSX (BuildPivotCacheDefinitionXml/BuildPivotTableXml) honra todos estes, pelo que um pivot construído programaticamente (AddPivotTable) emite umpivotCacheDefinition+pivotTableDefinitionmais rico — refreshOnLoad / trio de versão / refreshedBy / origem de intervalo com nome / fórmula de cacheField calculada / limites de sharedItems / subtotal de dataField + showDataAs. As tabelas pivot lidas de um ficheiro continuam a fazer a ida e volta do seu XML em bruto textualmente. - O comportamento da âncora de imagem faz agora a ida e volta através de uma nova propriedade
AnchorTypeemTXLSXImage(xaTwoCell= mover e redimensionar com as células,xaOneCell= mover mas não redimensionar,xaAbsolute= não mover nem redimensionar). O gravador escolhe o elemento de âncora (xdr:oneCellAnchor/xdr:twoCellAnchor editAs=.../xdr:absoluteAnchor) para corresponder; o leitor analisa o nome do elemento + o atributoeditAsde volta. Mapeia para o diálogo do Excel botão direito → Tamanho e Propriedades → Propriedades. - O cabeçalho/rodapé faz agora a ida e volta da diferenciação par/primeira página.
TXLSXWorksheetganhaEvenHeaderText/EvenFooterText/FirstHeaderText/FirstFooterTextmais os quatro alternadores de<headerFooter>(DifferentOddEven,DifferentFirst,ScaleWithDoc,AlignWithMargins). Os ficheiros onde o utilizador ativou "Páginas pares e ímpares diferentes" ou "Primeira página diferente" deixaram de perder as secções de página par/primeira na ida e volta. - A configuração de página faz agora a ida e volta dos atributos
<pageSetup>estendidos que o Excel escreve para configurações de impressão não predefinidas:Copies,FirstPageNumber+UseFirstPageNumber,HorizontalDpi,VerticalDpi,PrintErrors(apresentado/vazio/traço/NA),UsePrinterDefaults. - O
<sheetFormatPr>faz agora a ida e volta decustomHeight,zeroHeight,outlineLevelRoweoutlineLevelCol, pelo que os ficheiros onde o utilizador definiu uma altura de linha predefinida fixada pelo utilizador, linhas predefinidas ocultas ou um nível de contorno predefinido deixaram de perder esse comportamento. - A formatação condicional de barras de dados faz a ida e volta do atributo
gradientpadrão (preenchimento em gradiente vs. sólido), eTXLSDataBarSpecganha os campos de extensãox14do Excel 2010+ (NegativeBarColor,NegativeBarColorSameAsPositive,GradientFill,AxisColorcom tema/tinta,Direction,Border) no modelo, para que os consumidores da API os possam definir. - Os balões de comentário fazem a ida e volta do desenho VML textualmente. O leitor captura
xl/drawings/vmlDrawingN.vmltal como está e o gravador reprodu-lo ao guardar (em vez do modelo de balão amarelo incorporado), pelo que a posição / tamanho / cor de preenchimento / visibilidade definidos pelo utilizador de cada balão sobrevivem. - Os corpos dos comentários fazem a ida e volta da formatação por execução.
TXLSXCommentganha um payload preguiçoso (lazy)RichText: TXLSXRichText(reutilizando o modelo de execução de cadeias partilhadas); o gravador emite um<r><rPr>...</rPr><t>...</t></r>por execução quando o RichText transporta formatação e o leitor analisa<b/>,<i/>,<sz val=N/>,<color rgb=.../>de volta, pelo que negrito / itálico / tamanho / cor sobrevivem. - O avaliador de fórmulas implementa agora
SUBTOTAL(todos os onze agregadores: AVERAGE / COUNT / COUNTA / MAX / MIN / PRODUCT / STDEV / STDEVP / SUM / VAR / VARP, mais as variantes 101–111 de ignorar ocultas) eAGGREGATE(dezanove agregadores com os indicadores de opção 0–7 que selecionam o salto de erro/ocultas, incluindo a família LARGE / SMALL / MEDIAN / PERCENTILE / QUARTILE com o seu argumentok). Ambas caíam anteriormente para o caminho de função não suportada;SUBTOTALestava registada mas não tinha implementação,AGGREGATEnão estava registada de todo. - As funções de folha de cálculo
CELLeINFOsão agora avaliadas:CELLsuportaaddress,col,row,type,contents,filename,formate osinfo_types de estado da interface (color,parentheses,prefix,protect,width) devolvem predefinições neutras;INFOsuportaosversion,system,recalc,memavail,numfile,release,origin. Ambas estavam registadas mas caíam para#NAME?. - A formatação condicional faz agora a ida e volta dos atributos
cfRulestopIfTrue,stdDev,equalAverageetimePeriod, mais a família completa de dez membros detimePeriod(ontem / hoje / amanhã / últimos7Dias / semanaPassada / estaSemana / próximaSemana / mêsPassado / esteMês / próximoMês). Estes eram silenciosamente ignorados à leitura; o Excel escreve-os rotineiramente nas regras de média acima e de banda de datas e ignorá-los mudava a forma como a regra era reavaliada ao reabrir. - A exportação CSV ganhou uma propriedade
TXLSCsvEncodingemTXLSCSVSavercom três modos:ceSystemAnsi(predefinição legada),ceUtf16(o modo Unicode histórico) eceUtf8que escreve um ficheiro UTF-8 com a marca de ordem de bytes EF BB BF — a predefinição moderna amigável ao Excel que reabre sem o assistente de importação de texto em qualquer região. - A importação CSV ganhou uma propriedade
LocaleTolerantNumbersemTXLSCSVLoader. Quando ativado, um campo numérico que falha ao analisar com.como separador decimal é repetido com,(e vice-versa), pelo que um3,14europeu importa como o número 3,14 num máquina dos EUA. O modo estrito (a predefinição) não muda, pelo que texto com zeros à esquerda, códigos postais e outros tokens com vírgula se mantêm como texto.
Corrigido
- A inferência de número em modo estrito do motor XLSX deixou de coagir campos de texto com vírgula (por exemplo
3,14) para números através doTryStrToFloatdo Delphi, que tolera a vírgula como separador de milhares mesmo quandoThousandSeparatorestá definido como#0. Tais campos mantêm-se agora como texto a menos que a nova opçãoLocaleTolerantNumbersesteja ativada.
Versão 2.140.0
Alterado
- O motor XLSX compacta agora os seus seis conjuntos de estilo por atributo (Fonts / Fills / Borders / NumberFormats / Alignments / Protections) antes de cada gravação: uma nova passagem
CompactStylePoolsanalisa os índices de estilo de todas as células e descarta entradas do conjunto que já não são referenciadas por nenhuma célula — as entradas que se acumulam quando as células são limpas, eliminadas ou reestilizadas depois de a entrada do conjunto ter sido adicionada pela primeira vez. Os conjuntos compactados produzem uma tabela<cellXfs>mais pequena no ficheiro de saída (tipicamente 30–70% mais pequena para documentos que passaram por vários ciclos de edição), correspondendo à compactação que o motor XLS já faz através deCreateAllReferredList
Versão 2.139.0
Adicionado
- As formas da camada de desenho, os conectores, as formas de grupo e as molduras gráficas que não sejam gráficos fazem agora a ida e volta textuais: quando o leitor XLSX encontra uma âncora
<xdr:sp>,<xdr:cxnSp>,<xdr:grpSp>ou<xdr:graphicFrame>que não seja de gráfico que o modelo tipado (imagens / gráficos / caixas de texto) não cobre, captura o XML completo da âncora e reprodu-lo inalterado ao guardar — para que os desenhos criados no Excel (setas, balões de chamada, formas agrupadas, molduras de smart art) sobrevivam a um ciclo de ler→escrever sem perda. Cada folha de cálculo expõeRawDrawingAnchorCount/RawDrawingAnchor(i)para inspeção
Versão 2.138.0
Adicionado
- Os valores de célula em cache das ligações externas fazem agora a ida e volta no motor XLSX: um novo modelo
TXLSXExternalCell/TXLSXExternalRow/TXLSXExternalSheetDatapendura-se em cadaTXLSXExternalLinkatravés deAddSheetData/AddRow/AddCell, o gravador emite o bloco<sheetDataSet>correspondente dentro deexternalLinkN.xmle a reabertura restaura todos os valores em cache.FindCachedCell(sheetIdx, row, col)procura o último valor conhecido de uma célula referenciada externamente — os dados que o próprio Excel apresenta quando o livro remoto está offline
Versão 2.137.0
Adicionado
- O indicador
quotePrefixdo cellXf de OOXML — o mecanismo do Excel para marcar texto guardado como literal, de modo a que sobreviva à coação numérica (códigos importados de CSV como00123, números de conta longos, tudo o que o utilizador prefixou com um apóstrofo) — faz agora a ida e volta no motor XLSX:TXLSXAlignmentganha uma propriedadeQuotePrefix, a deduplicação do conjunto de alinhamento contabiliza-a, o gravador emitequotePrefix="1"no<xf>correspondente e a reabertura restaura-a quer o cellXf transportasse um filho<alignment/>quer fosse um<xf quotePrefix="1"/>de fecho automático (self-closing) em bruto
Versão 2.136.0
Added
- Os eixos dos gráficos são agora totalmente programáveis: um novo modelo
TXLSXChartAxisnoCategoryAxiseValueAxisde cada gráfico expõeLogBase(escala logarítmica, por ex. 10 para logaritmo de base 10),Orientation(normal / invertido),MajorGridlines/MinorGridlines,MinValue/MaxValue(NaN = automático),MajorUnit/MinorUnit,CrossesAt,TickLblPoseDispUnits(unidades de apresentação: centenas / milhares / milhões / mil milhões / biliões). Todos assumem por predefinição o comportamento automático do Excel, pelo que 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>apenas quando o autor da chamada define um valor não predefinido, e reabrir um tal gráfico restabelece todas as definições
Versão 2.135.0
Added
- As barras de erro dos gráficos são agora programáveis e fazem a viagem de ida e volta no mecanismo XLSX: cada
TXLSXChartSeriesganhaAddErrorBar(dir)que devolve umTXLSXChartErrBarcomValueType(fixo / percentagem / stdDev / stdErr / personalizado),Value,PlusValue/MinusValue(personalizado) eNoEndCap; armazena-se um slot de barra de erro por direção (X / Y), o gravador emite o bloco<c:errBars>correspondente, e a reabertura restabelece a direção, o tipo e a magnitude, de modo que os gráficos científicos / de engenharia mantenham os seus indicadores de incerteza
Versão 2.134.0
Added
- As etiquetas de dados dos gráficos são agora programáveis e fazem a viagem de ida e volta no mecanismo XLSX: cada
TXLSXChartSeriesganha as propriedadesShowValue,ShowCategoryName,ShowSeriesName,ShowLegendKey,ShowPercent,ShowBubbleSizeeSeparatorque emitem o bloco<c:dLbls>correspondente com os seus elementos<c:show*/>; reabrir um tal gráfico restabelece os comutadores, de modo que as definições de 'mostrar valor' / 'mostrar percentagem' sobrevivem a um ciclo de gravar-editar-gravar
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 registo 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 registos 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 registos 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 encriptado agora libera fluxos de ficheiros compostos de maneira determinística, impedindo que ficheiros temporários permaneçam bloqueados após operações de gravação, carregamento, VBA ou pacotes encriptados
- 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, folhas de cálculo de gráfico, ficheiros 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 folhas de cálculo de gráfico XLS agora aceite nomes de folha de cálculo 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 registos 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 livros 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 registo 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 guarda do livro
- 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 folha de cálculo agora rejeita caracteres inválidos de nome de folha de cálculo do Excel ao renomear folhas de cálculo
- 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 livros BIFF agora tolera cores malformadas de guias de folhas de cálculo, 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 livros agora limpa caminhos de configuração de armazenamento e ficheiros com falha de maneira mais consistente, evitando vazamento de funcionalidades em entradas malformadas ou aberturas com falha de armazenamentos baseados em fluxo
Versão 2.132.4
Fixed
- O tratamento de ficheiros ZIP agora finaliza o pacote atual antes de reutilizar o mesmo objeto de ficheiro para outro pacote, e a abertura de ficheiros baseada em ficheiro físico agora permite leitores compartilhados simultâneos
Versão 2.132.3
Fixed
- A gravação de pacotes de livros 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 gravação de livros agora liberam fluxos e armazenamentos de maneira confiável após erros, impedindo que ficheiros 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 um livro encriptado usa um esquema de encriptação não suportado: anteriormente afirmava que a Encriptação Á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 encriptado, em vez de declarar que livros encriptados não são suportados
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 beneficia — as alocações removidas eram as que serializavam as threads de trabalho —, com livros de várias folhas de cálculo 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 folha de cálculo que o HotXLS não modela — entradas
nade uma folha de cálculo que não sejam sparklines, gravadas pelo Excel para funcionalidades como formatação condicional x14 ou segmentadores de dados — agora são preservados na íntegra quando um livro é aberto e gravada de volta ao guardar, de modo que abrir e guardar novamente um ficheiro não remove mais essas extensões. Os blocos capturados são visíveis apenas para leitura por meio deWorksheet.RawWorksheetExtse acompanham a folha de cálculo quando ela é copiada para outro livro
Versão 2.130.0
Added
- Os livros guardados 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 o livro são emitidos juntos e sobrevivem às viagens de ida e volta de abertura/gravação
Versão 2.129.0
Added
- O novo método
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 folha de cálculo 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 ficheiros
Versão 2.128.0
Added
- Carregamento multithread de XLSX: a abertura de um livro agora analisa o XML de cada folha de cálculo — o custo dominante em ficheiros grandes — em threads de trabalho, de modo que livros de várias folhas de cálculo abrem mais rápido em máquinas de vários núcleos. As partes da folha de cálculo são extraídas do pacote antecipadamente e cada thread de trabalho acessa apenas sua própria folha de cálculo, portanto, o livro carregado é idêntica ao resultado serial
- O novo método
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 folha de cálculo na thread de chamada, agora conforme cada folha de cálculo é despachada para análise, em vez de estritamente entre as folhas de cálculo
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 (folhas de cálculo financeiras, cascatas de relatórios), editar uma entrada recalcula apenas suas fórmulas dependentes em vez de todo o livro - 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, livros externos) — o motor 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 folhas de cálculo, 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 os livros que nunca o chamam se comportam exatamente como antes
Versão 2.126.0
Added
- Sparklines no motor XLSX: as folhas de cálculo 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 guardar→abrir: guardar emite o bloco de extensão
extLstda folha de cálculo ([MS-XLSX] §2.3.6) para que o Excel 2010 e versões posteriores renderizem as sparklines, e abrir tal livro — seja ele gravado pelo HotXLS ou pelo Excel — reconstrói cada grupo, opção e intervalo para que persistam nos ciclos de edição. Copiar uma folha de cálculo para outro livro 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),XIRReXNPV(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 folha de cálculo constroem uma árvore de respostas pai→filho ancorada em uma célula, registram automaticamente cada autor em uma nova lista dePersonsem nível de livro e emitem a parte dedicadaxl/threadedComments/threadedCommentN.xmlpor folha de cálculo mais o ficheiro com escopo de livroxl/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 folhas de cálculo 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 palavra-passe que o Excel 2010 e posteriores aplicam por padrão:
OpenEncryptedagora analisa o descritor de encriptação XML, deriva as chaves com hash de contagem de rotações SHA-512, verifica a palavra-passe e decodifica o pacote segmentado AES-CBC (AES-128/192/256), para que livros protegidos por palavra-passe 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 palavra-passe incorreta gera o mesmo erro claro em todos os esquemas
Fixed
- Guardar um livro
.xlsxcujo XML de folha de cálculo 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 gravação 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 is now constant-time: the folha de cálculo célula coleção carries a hash index over (linha, coluna), replacing the previous linear scan — so populating, reading back, or loading a large sheet scales linearly with the célula count instead of quadratically; filling 100,000 cells now takes well under a second where it previously took minutes
- The speedup applies across the engine:
Cells[r, c],HasCell, livro loading, saving, cross-livro copies, auto-fit, and every helper that touches cells by position all benefit; linha and coluna insertion or deletion rebuilds the index in a single pass
Versão 2.116.0
Adicionado
- PDF export in the classic XLS engine: new
SaveAsPDFmethods on the folha de cálculo and livro render the used intervalo (or a caller-supplied intervalo throughTXLSPDFExport) as a paginated grid — célula display text through the number formato, gridlines, coluna widths derived from the Excel widths and scaled to fit the page, and automatic multi-page pagination - Output is a self-contained PDF 1.4 ficheiro with no external dependencies, using the built-in Helvetica font with WinAnsi text encoding; portrait or landscape A4 orientation, page margin, and font size are configurable on the exporter
- This is a data-presentation export alongside HTML and RTF: it reproduces tabular content and layout for reports and document handoff rather than full per-célula styling
Versão 2.115.0
Adicionado
- Criação de gráfico com uma única chamada a partir de um intervalo de dados no mecanismo XLSX: o novo
AddChartFromRangeconstrói um gráfico completo e deriva as suas séries automaticamente a partir de um bloco de dados retangular — o equivalente a "inserir gráfico a partir da seleção" do Excel — com um esquema de séries em colunas ou séries transpostas em linhas - Named shortcuts
AddColumnChart,AddBarChart,AddLineChart,AddPieChart, andAddAreaChartpick a chart type by name over the same one-call flow, reading series names from the header linha and category labels from the first coluna - Atualização: Series references are qualified with the source sheet's quoted name, so a generated chart keeps working when placed on any sheet and survives save and reload
Versão 2.114.0
Adicionado
- RTF import in the classic XLS engine, the inverse of the existing
SaveAsRTFexport: newOpenRTFmethods on the folha de cálculo and livro read an RTF document's table into folha de cálculo cells —\celladvances the coluna,\rowadvances the linha — starting at A1 - Atualização: Recupera dados tabulares de ficheiros produzidos por
SaveAsRTF, Word ou WordPad: o texto numérico é armazenado como números, pelo que as fórmulas continuam a funcionar, as sequências de escape hex (\'hh) e Unicode (\uN) descodificam-se corretamente, e os grupos de cabeçalho (tabela de tipos de letra, tabela de cores, folha de estilos, info) são ignorados - Documents with no table fall back to paragraph mode, importing each
\paras the next linha in coluna A
Versão 2.113.0
Adicionado
- Leitura de livros
.xlsxencriptados:OpenEncrypteddesencripta agora pacotes com Encriptação Padrão ECMA-376 (AES-128), completando a viagem de ida e volta com oSaveAsEncryptedexistente — lê o contentor de ficheiro composto, deriva a chave a partir da palavra-passe, verifica-a e carrega o livro recuperado - A wrong palavra-passe raises a clear "palavra-passe is incorrect" error, and
OpenEncryptedon a plain unencrypted.xlsxcontinues to load it directly, so callers can route every ficheiro through one entry point
Alterado
- Atualização: The unsupported-encryption message now names ECMA-376 Agile Encryption specifically as the remaining unsupported scheme, since Standard Encryption reading and writing are both available
Versão 2.112.0
Adicionado
- New
TaggedTextproperty on XLSX cells converts between rich text and lightweight markup:<b>,<i>,<u>,<s>,<sub>,<sup>,<color=#RRGGBB>,<font=Name>, and<size=N>, with</>/&escapes — so multi-formato célula content can be produced from a template String instead of assembling run objects by hand - A escrita de markup constrói a lista de execuções e mantém
Valuecomo o texto simples concatenado; o markup sem etiquetas armazena uma cadeia simples sem payload rico; a leitura serializa os atributos de cada execução como conjuntos de etiquetas completos; as etiquetas desconhecidas passam como texto literal
Corrigido
- A rich-text run consisting entirely of whitespace (for example a single styled space between words) now survives save and reload; previously the space was dropped when the ficheiro was reopened
Versão 2.111.0
Adicionado
- O novo evento
OnProgressno livro XLSX relata o progresso de carregamento e gravação: dispara uma vez por folha de cálculo à medida que é analisada duranteOpenou emitida duranteSaveAs, transportando a fase (leitura ou escrita), o número atual de folha em base 1 e o total — para que as aplicações possam conduzir uma barra de progresso em operações longas de várias folhas com um custo de chamada de retorno negligenciável
Versão 2.110.0
Adicionado
- New
TXLSRowCursordataset-style linha cursor for.xlsx/.xlsmfiles:Open,SelectSheet, thenFindFirst/FindNextwalk a folha de cálculo one linha at a time with only the current linha's cells in memory — a pull-driven alternative toTXLSDirectReader's callbacks for sequentially processing multi-million-linha sheets - Each linha exposes its 1-based folha de cálculo linha number, the populated cells in document order (typed valor, fórmula text, style index), and a
ValueByCollookup that returnsNullfor columns not populated on that linha; rows with no populated cells are skipped - Sheet names and count are available after
Open(ficheiro and stream overloads), with shared strings and date-formato detection handled the same way as the streaming reader
Versão 2.109.0
Adicionado
- New
TXLSXCellFormat"formato brush" for the XLSX engine: describe font, fill, border, alignment, number formato, and protection once, then stamp any number of targets withApply(single célula),ApplyRange,ApplyRows,ApplyCols, orApplySheet - Only the aspects actually touched are applied — a brush that sets just
Font.Boldleaves the targets' fills, borders, and number formats untouched — so brushes compose with existing formatting like Excel's formato painter - Each apply resolves the touched aspects into the livro style pools once and then writes only pool indices per célula, so formatting large ranges costs one pool lookup per aspect rather than per célula;
ApplyRangematerializes missing cells while the linha/coluna/sheet forms stamp existing cells only
Versão 2.108.0
Adicionado
- Texto de apresentação booleano localizável: as novas variáveis
XLSBooleanTrueText/XLSBooleanFalseTextcontrolam como os valores de células booleanas são apresentados sempre que se produz texto de apresentação —FormattedText, exportação HTML e medição de ajuste automático — para que as aplicações localizadas possam mostrar, por exemplo, WAHR/FALSCH ou VRAI/FAUX
Alterado
- Booleano cells now display as
TRUE/FALSEby default, matching Excel's grid, instead of the runtime'sTrue/Falsecapitalization
Versão 2.107.0
Adicionado
- New
OnPasswordevent on the classic XLS livro: whenOpenmeets an encrypted livro and the supplied palavra-passe is missing or wrong, the event asks the application for a palavra-passe and retries the open (up to three attempts) — so interactive tools can prompt the user instead of pre-loading passwords or inspecting error codes - The event receives the current palavra-passe by reference and a
Retryflag; leavingRetryatFalsegives up and returns the original palavra-passe error
Versão 2.106.0
Adicionado
- A nova classe
TXLSFileMonitorvigia um ficheiro de livro no disco e disparaOnFileChangedquando outro processo — tipicamente o Excel — o grava por cima, pelo que as aplicações podem recarregar e reatualizar a sua vista automaticamente - Atualização: Baseado em sondagem (hora da última escrita mais tamanho,
IntervalMsconfigurável, 1 s por predefinição), de modo que funciona igualmente em discos locais e partilhas de rede sem um ciclo de mensagens;SynchronizeEventescolhe entre entrega na thread principal para processadores de UI (predefinição) e entrega direta na thread de observação para código de consola ou serviço - A ficheiro that briefly disappears during a save cycle does not fire a false event; the change is reported once the new content is in place
Versão 2.105.0
Adicionado
- Ajuste automático limitado no mecanismo XLS clássico, correspondendo aos limites que o mecanismo XLSX já oferece: as novas sobrecargas
AutoFit(Columns, AMin, AMax),ColumnsAutoFit(AMinWidth, AMaxWidth)eRowsAutoFit(AMinHeight, AMaxHeight)limitam cada largura de coluna ajustada (unidades de largura do Excel) ou altura de linha (pontos) ao intervalo dado — 0 deixa um lado ilimitado, e uma coluna ou linha totalmente vazia continua a receber o mínimo solicitado
Versão 2.104.0
Adicionado
- New Só de leitura
FormattedTextproperty Devolve célula's display text — the stored valor rendered through its number formato, the way Excel shows it in the grid — covering thousands separators, decimals, percentages, date and time masks, multi-section positive/negative/zero masks, and Booleano formats - Available in both engines: on
IXLSRangein the classic XLS engine (multi-célula ranges render their anchor célula) and onTXLSXCellin the XLSX engine (rich-text cells return their concatenated run text)
Versão 2.103.0
Adicionado
- A nova função
DetectExcelContentFormat(sobrecargas de nome de ficheiro e fluxo) identifica o contentor de um livro a partir dos seus bytes iniciais em vez da extensão do ficheiro — reportando um ficheiro composto BIFF/OLE, um pacote OOXML.xlsx, um pacote OpenDocument.odsou texto delimitado simples — para que as aplicações possam encaminhar ficheiros renomeados ou sem extensão para o carregador correto
Alterado
- Atualização:
TXLSWorkbook.Opendeteta agora a assinatura de conteúdo e rejeita pacotes baseados em ZIP (um.xlsxou.odsrenomeado para.xls) com uma mensagem clara a indicar o carregador correto, em vez de falhar com um código de erro opaco TXLSXWorkbook.Opennow recognizes OLE compound-ficheiro content (a legacy.xlsrenamed to.xlsx, or an encrypted package) and reports what the ficheiro actually is, instead of surfacing a ZIP parser error
Versão 2.102.0
Adicionado
- Cross-livro folha de cálculo copy in the classic XLS (BIFF8) engine now brings the livro-level defined names a fórmula uses over to the destination — the same thing Excel does when a sheet moves between workbooks: a name the destination already has is bound as-is (no duplicate is created), a missing name is registered with its original definition and visibility so the fórmula recompiles against it, and a name whose definition cannot resolve in the destination (for example, it points at a sheet that does not exist there) leaves the fórmula on its computed valor as before
Versão 2.101.0
Adicionado
- Cross-livro folha de cálculo copy in the classic XLS (BIFF8) engine now re-points formulas at the source livro as an external link when the destination has no sheet of the referenced name and the source has been saved to a ficheiro: the copied célula stays a live fórmula (its references switch to the [SourceBook]Sheet form), the source's computed valor is kept as the cached result so reads keep working until the link is refreshed, and the external livro reference round-trips through save and reload; formulas carrying defined-name references, and copies from unsaved source workbooks, keep the computed valor as before
Versão 2.100.0
Adicionado
- Array formulas now survive folha de cálculo copies in the classic XLS (BIFF8) engine: each array intervalo is rebuilt as a whole in the copy — within the same livro and across workbooks alike — with the root fórmula recompiled against the destination's sheet names; an array the destination cannot recompile keeps its computed values instead
Corrigido
- Copying a intervalo that contains array-fórmula cells between classic XLS worksheets no longer risks a crash on the spill cells (which carry no fórmula tree of their own); such cells now transfer their computed valor
Versão 2.99.0
Adicionado
- Chart sheets can now be copied between classic XLS (BIFF8) workbooks: the chart record stream is cloned into the destination, series category / valor / name references are recompiled against the destination's sheet names (a series whose sheet has no same-name counterpart falls back to an empty reference so the ficheiro still opens), chart font references migrate by valor into the destination font table, and the page setup, tab color, zoom, and visibility of the chart sheet come along; this removes the last documented limitation of the cross-livro folha de cálculo copy
Versão 2.98.0
Adicionado
- Cross-livro folha de cálculo copy in the classic XLS (BIFF8) engine now preserves rich-text formatting inside cells: each formatting run's font is migrated by valor into the destination livro's font table and the run is rewritten to point at it, so mixed-font strings keep their appearance instead of falling back to plain text; phonetic (Far-East) auxiliary data travels with the String as well
Corrigido
- Fonts referenced only by rich-text runs (and not by any célula formato) are no longer dropped from the FONT table when saving a classic XLS livro, and the runs now follow the same font reordering as célula formats on save, so rich-text strings keep the correct fonts after a save/reload cycle
Versão 2.97.0
Adicionado
- Cross-livro folha de cálculo copy in the classic XLS (BIFF8) engine now also clones embedded pictures: the image bytes migrate into the destination livro's picture store (identical images are shared rather than duplicated), and each picture frame keeps its célula anchor, size, visibility, and transparent color; a new CrossWorkbookCopyXls sample project demonstrates the classic-engine copy end to end
Alterado
- Classic XLS cross-livro copy limitations are now documented: chart sheets are not copied (AddCopy returns nil for them), and a fórmula whose sheet reference has no same-name sheet in the destination keeps the source's computed valor instead of becoming an external reference
Versão 2.96.0
Adicionado
- Cross-livro folha de cálculo copy in the classic XLS (BIFF8) engine now also clones conditional formats (célula-is and expression rules, data bars, color scales, icon sets, and their differential styles), data validations (list, numeric, date, text-length, and custom rules with prompt and error boxes), the AutoFilter definition with its per-coluna criteria (the dropdown buttons are rebuilt in the copy), and tables (ids and names are re-issued so they stay unique in the destination livro); rule formulas are recompiled against the destination's sheet names, matching the behavior of célula formulas
Versão 2.95.0
Adicionado
- Classic XLS (BIFF8) worksheets can now be copied from one livro into another: TXLSWorksheets.AddCopy adds a new sheet to the destination livro and copies the source sheet's célula values, formulas (re-encoded as text so the destination recompiles them against its own sheet names, keeping same-name 3D references live), merged cells, comments, hyperlinks, linha heights, coluna widths, outline levels, frozen panes, sheet protection, page setup, manual page breaks, tab color, and view settings; célula, linha, and coluna formats are migrated by valor into the destination livro's formato table, so a styled source produces an independently styled copy
- Cross-livro formato migration in the classic XLS engine now carries the full-precision RGB and theme colors alongside each formato entry, so fills, fonts, and borders keep their exact colors instead of falling back to palette approximations; this also applies to intervalo-level paste between workbooks
Versão 2.94.0
Adicionado
- Cross-livro folha de cálculo copy now clones conditional formats (with their differential styles and the dataBar / colorScale / iconSet visual payloads), tables, data validations, and charts (with every series); each sub-objeto deep-copies its own state into the destination folha de cálculo
- Cross-livro fórmula references are rewritten: a reference whose sheet name exists in the destination resolves as-is, otherwise it becomes an external reference back to the source livro (which is registered as an external link) or #REF! when the source has no ficheiro identity; the rewrite applies to célula formulas, conditional-formato rules, data-validation formulas, and chart series ranges alike
Versão 2.93.0
Adicionado
- A folha de cálculo can now be copied from one livro into another: TXLSXSheets.AddCopy adds a new sheet to the destination livro and copies the source sheet's cells, formulas, merged ranges, coluna/linha sizing, hidden/collapsed/outline flags, freeze panes, view state, protection, page setup, AutoFilter intervalo, and tab colour onto it; the six per-célula style indices are remapped into the destination livro's own Font/Fill/Border/NumberFormat/Alignment/Protection pools via valor-equality lookup, so a styled source produces an independently-styled copy rather than indices pointing at the wrong pool
- The six per-attribute style pools (Fonts, Fills, Borders, NumberFormats, Alignments, Protections) each expose a 1-based LookupOrAdd that deduplicates by valor; a new CrossWorkbookCopy sample project demonstrates the cross-livro copy with style preservation
Versão 2.92.0
Adicionado
- XLSX workbooks now support pivot tables: TXLSXWorksheet.AddPivotTable scans a flat source intervalo, auto-builds a pivot cache, and Devolve typed pivot table for linha / coluna / page / data-axis wiring, mirroring the long-standing BIFF8 (XLS) engine API so the same code targets either formato; PivotSetDataFieldFormat assigns a number formato to each aggregated valor field
- Excel-created pivot tables round-trip without loss through Open then Save: the XLSX engine preserves each pivot cache definition, cache records, and pivot table part verbatim and replays the original bytes on save, so re-saving a livro never drops or alters its pivots even when they use features the typed model does not expose
Versão 2.91.0
Adicionado
- Um AutoFiltro de folha de cálculo pode agora ser aplicado aos dados para que o livro guardado abra com as linhas não correspondentes já ocultas, espelhando o que o Excel faz quando um valor é escolhido a partir do menu suspenso do filtro
- As imagens embutidas expõem a sua geometria em unidades reais (centímetros, polegadas, pontos) juntamente com os valores EMU, e podem ser redimensionadas por um fator de escala com bloqueio opcional do rácio de aspeto
- As margens de configuração de página podem ser definidas diretamente em centímetros, como uma conveniência métrica sobre as margens baseadas em polegadas
- As folhas de cálculo XLSX protegidas expõem agora quinze opções de permissão granulares (formatar células, inserir/eliminar linhas e colunas, ordenar, AutoFiltro, selecionar células bloqueadas/desbloqueadas, e muito mais) através de uma nova propriedade AllowOption, correspondendo à lista de caixas de seleção Rever > Proteger Folha do Excel; as definições por ação são preservadas através do ficheiro
- As folhas de cálculo XLSX podem agora ser duplicadas (TXLSXSheets.Duplicate): uma nova folha é adicionada e as células de origem, intervalos unidos, dimensionamento de colunas/linhas, painéis congelados, estado de visualização, proteção, configuração de página e cor do separador são copiados para a mesma, espelhando o clique com o botão direito do rato > Mover ou Copiar > Criar uma cópia do Excel
- Vinte e dois novos projetos de exemplo abrangem capacidades que a biblioteca suporta: encriptação de livros, comentários de células, hiperligações, nomes definidos, avaliação de AutoFiltro, imagens embutidas, um modelo de fatura, formatação condicional XLSX avançada, células unidas, estrutura de linhas/colunas, painéis congelados, esquema de múltiplas folhas, fórmulas de matriz, copiar/mover intervalo, localizar/substituir, sistemas de datas, rich text, CSV avançado, opções de exportação HTML, formatos de número personalizados, linhas/colunas ocultas e proteção de folhas de cálculo
Versão 2.90.29
Alterado
- O leitor direto de streaming agora conta cada célula preenchida mesmo quando nenhum manipulador por célula está anexado, pelo que uma simples chamada ReadFile pode ser usada para dimensionar uma folha de cálculo rapidamente; a contagem devolvida e a propriedade CellCount reportam o número de células preenchidas analisadas
Versão 2.90.28
Adicionado
- As fórmulas podem agora ser avaliadas passo a passo, o equivalente ao comando Avaliar Fórmula do Excel: um novo rastreador reduz uma expressão um subpasso de cada vez, começando pelo mais interno, e reporta cada redução com a sua subexpressão de origem, a mesma subexpressão após os seus operandos serem substituídos pelos seus valores e o valor resultante, para que as aplicações 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 motor de cálculo da folha de cálculo para que cada etapa concorde com um recálculo completo
Versão 2.90.27
Adicionado
- Os livros XLSX podem agora ser produzidos célula a célula através de um novo gravador direto de streaming que emite cada folha de cálculo diretamente no pacote à medida que as linhas chegam, sem construir uma árvore completa de células na memória, pelo que ficheiros muito grandes podem ser gerados com uma utilização de memória quase constante; o gravador lida com strings embutidas, números, booleanos, datas e fórmulas em várias folhas e interage perfeitamente com o leitor direto de streaming
Versão 2.90.26
Adicionado
- Os livros XLSX podem agora ser analisados célula a célula através de um novo leitor direto de streaming que gera eventos por célula e por folha sem construir uma árvore completa de células na memória, mantendo a utilização de memória quase constante para ficheiros muito grandes; cada célula reportada transporta o seu valor, tipo (número, string, booleano, data ou erro), texto da fórmula e índice de estilo, com deteção opcional de data e suporte para interrupção antecipada
Versão 2.90.25
Adicionado
- As folhas de cálculo XLS clássicas agora podem adicionar hiperligações a partir de referências de células no estilo A1, preservando a normalização de URL, os subendereços de destino de livro, o texto de apresentação e as dicas de ecrã
Versão 2.90.24
Adicionado
- As quebras de página do Classic XLS podem agora ser adicionadas a partir de posições de linha ou coluna baseadas em 1 e referências de célula ao estilo A1 através de sobrecargas da coleção de quebras de página e auxiliares de folha de cálculo
Versão 2.90.23
Adicionado
- As folhas de cálculo e coleções de formas do Classic XLS podem agora criar objetos de desenho de retângulo, oval, linha e formas automáticas tipificadas a partir de cadeias de caracteres de intervalo ao estilo A1
Versão 2.90.22
Adicionado
- As coleções de formas do Classic XLS podem agora criar caixas de texto a partir de cadeias de caracteres de intervalo ao estilo A1 através de uma sobrecarga AddTextBox
Versão 2.90.21
Adicionado
- As caixas de texto do Classic XLS podem agora ser reposicionadas a partir de cadeias de caracteres de intervalo ao estilo A1 através de uma nova sobrecarga SetArea
Versão 2.90.20
Adicionado
- As caixas de texto da folha de cálculo do Classic XLS podem agora ser criadas a partir de cadeias de caracteres de intervalo ao estilo A1 através de uma sobrecarga AddTextBox
Versão 2.90.19
Adicionado
- As folhas de cálculo do Classic XLS podem agora 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 folhas de cálculo do Classic XLS podem agora criar comentários de célula diretamente das coordenadas de linha e coluna através de novas sobrecargas AddComment
Versão 2.90.17
Adicionado
- Os nomes definidos do Classic XLS podem agora ser criados a partir de um nome de folha de cálculo e coordenadas de linha/coluna através de novas sobrecargas Names.Add
Versão 2.90.16
Adicionado
- A inserção de imagens do Classic XLS pode agora posicionar imagens de ficheiros e TBitmap numa célula de folha de cálculo fornecida sem alterar a seleção atual
Versão 2.90.15
Adicionado
- As colunas do Filtro Automático do Classic XLS podem agora ser encontradas por índice de campo através da coleção AutoFilterColumns
Versão 2.90.14
Adicionado
- Os nomes definidos do Classic XLS podem agora ser localizados por célula de folha de cálculo através de novas sobrecargas FindByCell na coleção Names
Versão 2.90.13
Adicionado
- Os intervalos do Classic XLS suportam agora a criação de um comentário com texto e autor numa única chamada AddComment
Versão 2.90.12
Adicionado
- Os comentários do Classic XLS expõem agora uma propriedade Author para definir e ler o autor do comentário guardado através da API tipificada
Versão 2.90.11
Corrigido
- A cópia de intervalos do Classic XLS preserva agora os autores dos comentários copiados em conjunto com o texto do comentário
Versão 2.90.10
Corrigido
- O AddHyperlink do Classic XLS armazena agora os destinos das células do livro de cálculo como subendereços internos em vez de caminhos de ficheiros externos
Versão 2.90.9
Corrigido
- A cópia de intervalos do Classic XLS preserva agora as hiperligações das células no destino, incluindo endereço, dica de ecrã e texto apresentado
Versão 2.90.8
Corrigido
- As hiperligações do XLS e XLSX normalizam agora endereços www simples para URLs http absolutos antes de guardar, preservando o texto apresentado
Versão 2.90.7
Corrigido
- O ApplyAutoFilter do Classic XLS ignora agora os índices de campo fora do intervalo antes de reconstruir o intervalo de filtro, preservando os critérios existentes em vez de os limpar
Versão 2.90.6
Corrigido
- As séries de gráficos do Classic XLS rejeitam agora autorreferências da folha de gráfico sem diferenciar maiúsculas de minúsculas, prevenindo fontes de dados Area3D inválidas quando a capitalização do nome da folha difere
Versão 2.90.5
Corrigido
- As folhas de gráfico do Classic XLS utilizam agora a proteção normal de nome de folha de cálculo ao aplicar nomes de folha de gráfico personalizados, prevenindo nomes duplicados que diferem apenas em maiúsculas e minúsculas
Versão 2.90.4
Corrigido
- As tabelas dinâmicas do Classic XLS correspondem agora aos nomes das folhas de cálculo de origem sem diferenciar maiúsculas de minúsculas ao criar ou reutilizar caches de tabela dinâmica
Versão 2.90.3
Corrigido
- A mudança de nome da folha de cálculo do Classic XLS rejeita agora duplicados sem diferenciar maiúsculas de minúsculas, mantendo o comportamento de pesquisa inequívoco após uma mudança de nome
Versão 2.90.2
Corrigido
- A pesquisa de nome de folha de cálculo do Classic XLS não diferencia agora maiúsculas de minúsculas em SheetByName, TryGetSheetByName, Index e IDByName
Versão 2.90.1
Corrigido
- A pesquisa de nome definido do Classic XLS não diferencia agora maiúsculas de minúsculas, pelo que os nomes resolvidos através da coleção Names do livro de cálculo comportam-se de forma consistente após guardar e reabrir
Versão 2.90.0
Alterado
- ALTERAÇÃO INCOMPATÍVEL — a coleção de folhas de cálculo XLSX passou a ser baseada em 1.
Workbook.Sheets[i],Sheets.IndexByNamee a propriedade inteiraActiveSheetcontam agora a partir de 1 para coincidir com o motor XLS, pelo que a primeira folha de cálculo éSheets[1]em vez deSheets[0]; os auxiliares posicionaisActiveIndex,Activate,Movee o argumento de índice de folha deSaveAsCSV/SaveAsHTML/SaveAsRTFmantêm-se baseados em 0 - ALTERAÇÃO INCOMPATÍVEL — FreezePanes recebe primeiro a linha em ambos os motores. Os motores XLS e XLSX partilham agora
FreezePanes(ARow, ACol); o método XLSXFreezePane(ACol, ARow)e a sobrecarga de dois argumentos invertida do XLS foram removidos, pelo que uma chamada que congelasse N colunas e M linhas tem de trocar os dois argumentos - ALTERAÇÃO INCOMPATÍVEL — as classes de folha de cálculo XLS perderam o prefixo I enganoso.
IXLSWorksheeteIXLSWorkSheetspassam a chamar-seTXLSWorksheeteTXLSWorksheets(eram sempre classes, nunca interfaces); as interfaces genuínasIXLSWorkbookeIXLSRangenão sofrem alterações - ALTERAÇÃO INCOMPATÍVEL — o enum de operador de validação de dados XLS foi renomeado. Os membros de
TXLSDvOperatorpassam dexlsDv...paraxlsDvOp...(por exemploxlsDvOpBetween), deixando de partilhar um prefixo com o enum de tipo de validação e alinhando-se com os nomesxlsxDvOp...do XLSX
Versão 2.89.46
Corrigido
- Os temas personalizados sobrevivem a uma ida e volta XLSX. Abrir um livro que contém o seu próprio tema e guardá-lo novamente preserva esse tema em vez de o substituir pelo tema Office incorporado, pelo que as cores baseadas em tema já não são silenciosamente sobrescritas
- As regiões fundidas sobrepostas são rejeitadas. A fusão de um intervalo de células que interseta uma região fundida existente é agora recusada em vez de escrever entradas sobrepostas que levam o Excel a reportar o ficheiro guardado como corrompido
- Uma data escrita como valor de célula é apresentada como data. Atribuir uma data ou hora a uma célula que ainda está no formato de número Geral aplica agora um formato de data predefinido, pelo que é apresentada como data no Excel em vez de como número de série bruto; um formato de número definido pelo utilizador fica sem alterações
Segurança
- Fórmulas profundamente aninhadas já não podem esgotar a pilha. O leitor de fórmulas .xls limita a profundidade de aninhamento dos tokens de fórmula, pelo que um livro malformado ou malicioso com aninhamento extremo é rejeitado em vez de arriscar uma falha
Versão 2.89.45
Corrigido
- Nomes de entradas ZIP assinalados como UTF-8 são lidos corretamente. Quando um arquivo marca o nome de um membro como UTF-8 (bit 11 de propósito geral), o nome é descodificado como UTF-8 em vez da página de códigos local do arquivo
- Células de erro literal em .xls são preservadas. Uma célula guardada diretamente como um valor de erro (um registo BOOLERR com o sinalizador de erro definido) mantém o seu código de erro em vez de ser lida como em branco
- A encriptação de um pacote com mais de 2 GB falha de forma limpa. A encriptação padrão rejeita um payload sobredimensionado em vez de exceder a capacidade da sua aritmética de tamanho de 32 bits
Versão 2.89.44
Corrigido
- A exportação de fórmulas ODS mantém os nomes definidos intactos. Um nome definido que se assemelha a uma referência de célula (por exemplo,
TaxRate2) já não é reescrito como um endereço de célula ODF inválido, e a análise de_xlnm.Print_Titlesjá não divide um nome de folha que contenha uma vírgula - A importação ODS é segura além da última coluna. Uma linha cujas células repetidas de texto formatado se estendem além da última coluna da folha de cálculo já não reutiliza um protótipo de texto formatado libertado
Versão 2.89.43
Corrigido
- A exportação RTF preserva texto não ASCII. O texto da célula é escrito com sequências de escape Unicode
\ue o cabeçalho declara uma página de códigos, pelo que os carateres CJK / cirílicos / acentuados são exportados intactos em vez de serem convertidos em "?" sob a página de códigos do escritor - O frame de navegação HTML de várias páginas escapa os nomes das folhas. Os nomes das folhas na página de índice / frameset são escapados em HTML e os carateres não ASCII tornam-se referências numéricas de carateres, de modo a que um separador nomeado com carateres de marcação ou letras não ASCII seja renderizado corretamente
Versão 2.89.42
Corrigido
- Números em notação científica em fórmulas são analisados. Um literal como
1E3ou2.5E-3dentro de uma fórmula é agora processado como um único número em vez de um número seguido por um nome isolado - A função SEARCH é segura para Unicode. A função SEARCH (insensível a maiúsculas e minúsculas) já não converte maiúsculas/minúsculas através da página de códigos ANSI, pelo que correspondências de find-text / within-text não ASCII ocorrem na posição correta do caráter
Versão 2.89.41
Corrigido
- O sistema de datas de 1904 é aplicado a datas de células XLSX. Ler ou escrever um livro que utilize a base de datas de 1904 do Mac desloca agora os números de série de data em 1462 dias, pelo que as datas nesses livros correspondem às do Excel em vez de estarem cerca de quatro anos desfasadas
Versão 2.89.40
Corrigido
- As datas em ficheiros XLSX de terceiros são carregadas como datas. Uma célula cujo estilo utilize qualquer formato de número de data/hora predefinido ou personalizado — e não apenas o estilo de data próprio do HotXLS — é agora lida como um valor de data em vez de um número de série em bruto, incluindo os formatos de data/hora da região CJK
Versão 2.89.39
Corrigido
- Os formatos de número de data são detetados com maior precisão. Um código de formato é reconhecido como data/hora apenas por tokens de data não escapados fora de literais de texto e secções de parênteses retos, pelo que um literal como
#,##0 "MM"já não é tratado como uma data e códigos de uma única letra comom/djá não passam despercebidos - Arquivos ZIP com um comentário grande leem o seu registo de fim de diretório corretamente. O registo de fim do diretório central é analisado a partir do buffer de varrimento apenas quando está totalmente capturado e, caso contrário, é lido novamente a partir do ficheiro, corrigindo uma possível leitura incorreta quando um comentário divide o registo através da janela de varrimento
Versão 2.89.38
Corrigido
- O XLSX encriptado escrito com a Encriptação Padrão abre agora no Excel. O pacote encriptado é cifrado com AES-128 em modo ECB, conforme o formato exige, em vez de CBC, que deixava tudo após o primeiro bloco ilegível
- A desencriptação RC4 de BIFF8 (.xls) protegido por palavra-passe foi corrigida. O fluxo de chave é agora regerado e consumido em sincronia com a posição do fluxo, pelo que uma palavra-passe correta desencripta o corpo do livro em vez de produzir células ilegíveis
Versão 2.89.37
Corrigido
- Eliminar uma folha de cálculo mantém os nomes definidos consistentes. A remoção de uma folha descarta agora os nomes definidos do livro com âmbito definido para a mesma e desloca os nomes com âmbito de folhas posteriores uma posição abaixo, de forma a que um livro guardado já não aponte um nome com âmbito de folha (como uma área de impressão ou título de impressão) para a folha de cálculo errada
Versão 2.89.36
Corrigido
- A leitura de ficheiros .xls danificados é mais robusta. Os registos numéricos/em branco de várias células e a paleta de cores já não leem além do limite quando os seus campos de comprimento estão corrompidos, e o leitor do livro é libertado em vez de sofrer uma fuga de memória quando a abertura de um ficheiro gera um erro
- A inserção de imagens já não sofre fugas de memória em caso de falha. O carregamento de uma imagem corrompida ou ilegível (BMP / WMF / EMF / JPEG / PNG) liberta o seu fluxo temporário e bitmap em vez de originar uma fuga de memória
- Registos de estilo duplicados são evitados ao guardar. Um estilo cuja primeira correspondência seja a primeiríssima entrada da tabela é agora partilhado corretamente em vez de ser escrito duas vezes durante a otimização de estilos BIFF
- A exportação HTML escapa nomes de tipos de letra, pelo que um nome de tipo de letra que contenha
&,<,>ou"já não quebra o atributo de estilo de célula exportado
Versão 2.89.35
Corrigido
- Várias funções da folha de cálculo correspondem agora ao Excel.
EXPdevolve o seu resultado em vez de um erro de "não suportado",WEEKDAYcom um único argumento numera o domingo como 1,MODmantém o sinal e a parte fracionária do divisor, eLEFT/RIGHT/MIDdevolvem#VALUE!para comprimentos negativos ou contagem incorreta de argumentos - Referências numéricas de carateres não ASCII em XLSX são agora lidas corretamente. Entidades XML numéricas, tais como
中em strings partilhadas, texto de células e atributos, descodificam para o caráter completo em vez de um único byte truncado - Regras de texto de formatação condicional sobrevivem a aspas duplas. O texto que contém
"em regras de containsText / beginsWith / endsWith é escapado para que o livro guardado permaneça válido - Edições de intervalo de formatação condicional já não deixam um intervalo solto. Limpar ou mover uma coluna para fora de uma área de formatação condicional já não produz um intervalo fantasma sobreposto
- As cores indexadas dos separadores das folhas lidas a partir de .xls utilizam a entrada de paleta correta, e as datas com formatação numérica dentro de registos de várias células (MULRK) mantêm a sua deteção de data sob o sistema de datas de 1904
- Os critérios de AutoFiltro de percentagem superior/inferior são preservados. O carregamento de um filtro "N por cento superior" ou "N por cento inferior" a partir de .xls já não o reduz a uma contagem simples de itens
- As hiperligações mailto: são reconhecidas como URLs, e as Dicas de Ecrã (tooltips) das hiperligações são escritas de forma a serem preservadas em vez de serem descartadas
- A exportação HTML emite tamanhos de tipo de letra válidos em regiões com separador decimal de vírgula, pelo que os tipos de letra das células exportadas já não revertem para a predefinição do navegador
- A leitura de ficheiros malformados ou truncados é mais robusta. Desenhos OfficeArt corrompidos, índices de estilo / cor / paleta / tema fora de intervalo e JPEGs não baseline já não causam falhas nem produzem tamanhos sem sentido, e foi corrigida uma fuga de memória de strings partilhadas ao carregar texto formatado
Versão 2.89.34
Adicionado
- As caixas de texto das folhas de cálculo XLSX são mais fáceis de gerir.
TXLSXWorksheetadicionaIndexOfTextBoxAt,FindTextBoxAt,DeleteTextBox,DeleteTextBoxAt,DeleteTextBoxesInRangeeClearTextBoxes, permitindo aos invocadores localizar e remover caixas de texto de desenho autónomas por célula de ancoragem ou por intervalo de interseção - As quebras de página manuais do XLSX podem ser localizadas e removidas por intervalo.
TXLSXWorksheetadicionaIndexOfRowBreak,IndexOfColBreak,RemoveRowBreaksInRangeeRemoveColBreaksInRangepara a manutenção direta de quebras de página de linha / coluna
Corrigido
- As folhas de cálculo XLSX que contêm apenas caixas de texto escrevem agora a relação de desenho. Uma folha de cálculo que tenha caixas de texto de desenho autónomas, mas sem imagens, gráficos, comentários, hiperligações ou tabelas, emite agora a relação de desenho
xl/worksheets/_rels/sheetN.xml.relscorrespondente para que o pacote guardado resolva a sua referência<drawing r:id="...">
Versão 2.89.33
Alterado
- As demonstrações do workbench do C++Builder correspondem agora às funcionalidades de revisão do Delphi. O exemplo WorkbookAudit de C++Builder deriva a mesma gravidade, ação recomendada e evidência de revisão que a versão Delphi na sua lista de livros e nos relatórios JSON, CSV e HTML, e o exemplo ConversionWorkbench de C++Builder regista o formato de origem, ação e nota de revisão por tarefa de conversão, incluindo as contagens de ações agregadas no relatório HTML
Versão 2.89.32
Alterado
- A demonstração do ConversionWorkbench é agora executada sem supervisão a partir da linha de comandos. A chamada de
ConversionWorkbench.exe <folder> [/targets=xlsx,csv,html] [/persheet] [/skip] [/quiet]analisa a pasta, converte cada origem nos formatos de destino solicitados, escreve os relatórios de conversão e termina;/quietmantém a janela oculta para que as conversões possam ser executadas a partir de scripts e tarefas agendadas - As conversões em lote permanecem interativas. Uma barra de progresso acompanha a lista de tarefas (origens selecionadas multiplicadas pelos destinos selecionados), um botão Cancelar interrompe o lote com relatórios que abrangem as tarefas concluídas, e um duplo clique numa linha de resultados abre o ficheiro produzido (ou a pasta de saída para conjuntos CSV por folha)
- As opções do workbench persistem entre sessões. A pasta, formatos de destino, delimitador, opções de HTML, seleções de ODS, CSV por folha, ignorar existentes e escolhas de streaming são guardados num ficheiro INI junto ao executável; a palavra-passe de encriptação não é deliberadamente persistida
Versão 2.89.31
Alterado
- A demonstração do WorkbookAudit é agora executada sem supervisão a partir da linha de comandos. A chamada de
WorkbookAudit.exe <folder> [/r] [/quiet]analisa a pasta (opcionalmente com subpastas), audita cada livro, exporta os relatórios JSON, CSV e HTML e termina;/quietmantém a janela oculta para que a auditoria possa ser executada a partir de scripts e tarefas agendadas - Os lotes grandes permanecem interativos. Uma barra de progresso acompanha o lote, um botão Cancelar interrompe-o (os ficheiros restantes são marcados como Cancelados), e a seleção de um livro preenche agora um painel de detalhe por folha com detalhes de estrutura, fórmulas, referências e proteção
- A escolha da pasta de auditoria e subpastas persiste. As opções são guardadas num ficheiro INI junto ao executável e restauradas no arranque seguinte
Versão 2.89.30
Alterado
- A demonstração do WorkbookAudit obtém agora a gravidade de revisão e as ações recomendadas. A lista principal mais os relatórios JSON, CSV e HTML incluem a gravidade, ação recomendada e evidência de revisão para que as auditorias em lote possam encaminhar livros encriptados, com macros ativadas, ligações externas, protegidos, com excesso de estilos ou muitas fórmulas sem ler todas as linhas da folha
- A demonstração do ConversionWorkbench escreve agora um livro de registo de revisão de conversões. Each task records source format, action, and review note, and the HTML report aggregates action counts for accepted outputs, per-sheet CSV sets, reused files, unsupported target choices, source repairs, retry candidates, and manual-review outcomes
Versão 2.89.29
Adicionado
- Os livros XLS clássicos leem agora as propriedades do documento ao abrir. A abertura de um ficheiro ou fluxo .xls existente preenche
Title,Subject,Author,Keywords,Comments,CompanyeManagera partir da informação de resumo do ficheiro, correspondendo ao comportamento de propriedade do documento do modelo XLSX; as propriedades guardadas pelo próprio Excel, incluindo texto não latino guardado em páginas de códigos ANSI localizadas, são descodificadas corretamente
Versão 2.89.28
Alterado
- A demonstração do ConversionWorkbench ganha quatro opções orientadas para lotes. Os exemplos Delphi e C++Builder podem agora dividir cada folha de cálculo no seu próprio ficheiro CSV (
<name>.<sheet>.csv, tanto para origens XLS clássicas como para modelos XLSX), escrever saídas XLSX protegidas por palavra-passe através deSaveAsEncrypted(incluindo o caminho de ponte XLS clássico), ignorar conversões cujas saídas já existam (comunicadas como ignoradas, sem nova execução) e ativar escritas de fluxo XLSX para livros grandes
Versão 2.89.27
Alterado
- A demonstração do WorkbookAudit analisa agora de forma mais profunda e assinala marcadores de risco. Os exemplos Delphi e C++Builder ganharam recursividade de subpastas com nomes de ficheiros relativos à pasta, deteção de XLSX protegido por palavra-passe através de
CanReadEncrypted(reportado como encriptado em vez de um erro genérico de abertura) e uma coluna Flags que expõe projetos VBA, referências externas, folhas ocultas, folhas protegidas e ficheiros encriptados num relance na lista e em todos os relatórios - Os relatórios de auditoria contêm metadados mais ricos. O relatório JSON agrupa o conjunto completo de propriedades do documento (título, assunto, autor, palavras-chave, empresa, gestor, descrição, categoria, criado, modificado, modificado pela última vez por) num objeto
docProps, e todos os três formatos de relatório adicionam contagens de imagens por folha; nomes definidos com âmbito de folha são agora recolhidos a par com nomes ao nível do livro para ficheiros XLS clássicos
Versão 2.89.26
Adicionado
- As demonstrações Delphi e C++Builder incluem agora um conversor em lote ConversionWorkbench. O novo exemplo recolhe origens XLS, XLSX, CSV e ODS de uma pasta, converte os ficheiros selecionados numa única execução para qualquer combinação de destinos XLSX, CSV, HTML, RTF, ODS e XLS, e encaminha cada origem através do modelo de objetos correspondente, incluindo a ponte
SaveXLSWorkbookAsXLSXpara XLS clássico e um caminho de duas etapas de XLS para ODS - As opções de conversão são expostas por formato. O formulário disponibiliza uma escolha de delimitador de CSV, opções de título e classe de tabela HTML e interruptores de inclusão de imagens e gráficos ODS; a direção não disponível de XLSX para XLS é reportada como não suportada em vez de falhar silenciosamente
- Cada execução escreve um relatório de conversão.
ConversionReport.csveConversionReport.htmlregistam o estado por tarefa, tempos e tamanho do ficheiro de saída junto aos ficheiros convertidos, e um gerador de exemplos cria entradas XLS, XLSX, CSV e ODS para que o workbench funcione de imediato
Versão 2.89.25
Adicionado
- As demonstrações Delphi e C++Builder incluem agora uma ferramenta de auditoria em lote WorkbookAudit. O novo exemplo analisa uma pasta de livros XLS e XLSX e resume a estrutura da folha de cálculo, a contagem de fórmulas com os nomes das funções em utilização, as referências de livros externos (entradas de hiperligações externas, referências de fórmulas entre parênteses retos e destinos de nomes definidos), hiperligações, utilização de estilos, intervalos unidos, comentários, tabelas, formatos condicionais, validações de dados, gráficos, intervalos de AutoFiltro, painéis congelados e o estado de proteção
- Os resultados da auditoria são exportados como relatórios JSON, CSV e HTML. Um único clique escreve
AuditReport.json,AuditReport.csveAuditReport.htmlao lado dos ficheiros auditados, cobrindo metadados ao nível do livro, conjuntos de estilos, nomes definidos e linhas de detalhes por folha - A demonstração de auditoria é autónoma. Um gerador de exemplos cria livros XLS clássicos e XLSX com fórmulas, hiperligações externas, folhas ocultas, hiperligações, comentários, tabelas, gráficos e folhas protegidas, para que todo o fluxo de auditoria funcione de imediato
Versão 2.89.24
Corrigido
- A exportação de XLSX para CSV escreve agora resultados calculados de fórmulas.
TXLSXWorkbook.SaveAsCSVavalia células de fórmulas através do motor de fórmulas do livro antes de escrever o texto CSV ou TSV, pelo que as células com apenas fórmulas exportam os seus valores apresentados em vez do texto das fórmulas
Versão 2.89.23
Adicionado
- A exportação OpenDocument pode agora ser ajustada com opções. Um novo objeto de opções de exportação permite que o
.odsguardado exclua gráficos ou imagens incorporadas e substitua a string do gerador registada nos metadados do documento, através de novas sobrecargas de SaveAsODS que aceitam as opções - O conteúdo excluído não deixa qualquer rasto. Desativar gráficos ou imagens remove conjuntamente as suas pastas de objetos, molduras de desenho e entradas de manifesto, pelo que o pacote guardado nunca contém uma referência órfã
Versão 2.89.22
Adicionado
- Os ficheiros OpenDocument abrem agora através da chamada regular open. Passar um ficheiro ou fluxo
.odspara o método geral open deteta o pacote OpenDocument e carrega-o automaticamente, pelo que já não é necessário saber antecipadamente se um ficheiro é.xlsxou.ods - Foi adicionado um atalho SaveAsODS. Guardar em OpenDocument já não requer a passagem do valor do formato de ficheiro, refletindo a forma como outros formatos são guardados
- O formato carregado pode ser consultado. Uma propriedade SourceFormat indica se o livro que foi aberto provém de um ficheiro OpenXML ou OpenDocument
Versão 2.89.21
Corrigido
- Os segmentos sobrescritos e subscritos são mantidos quando o texto formatado é guardado em
.xlsx. Um segmento marcado como sobrescrito ou subscrito dentro de uma célula com estilo escreve agora a sua posição vertical na string partilhada e volta a lê-la, pelo que o texto elevado ou rebaixado sobrevive a uma viagem de ida e volta.xlsxem vez de cair para a linha de base - O sobrescrito e o subscrito são transferidos entre formatos. O texto formatado lido de um ficheiro
.odsmantém os seus segmentos sobrescritos e subscritos quando o livro é guardado novamente como.xlsxe reaberto
Versão 2.89.20
Adicionado
- A exportação e importação ODS suportam agora formatações condicionais de escala de cores e barras de dados. Uma escala de duas ou três cores e uma barra de dados são escritas com os seus pontos de valor e cores e lidas novamente, alargando as regras de comparação existentes para que estes formatos gráficos sobrevivam a uma viagem de ida e volta
.ods - As formatações condicionais baseadas em fórmulas são suportadas. Uma regra conduzida por uma fórmula é escrita como uma condição de fórmula verdadeira com a sua expressão traduzida para a sintaxe OpenDocument, e lida novamente para uma regra de fórmula, juntamente com as regras de valor de célula existentes
Versão 2.89.19
Adicionado
- A exportação e importação ODS suportam agora mensagens de introdução de validação de dados. O título e o texto da mensagem apresentados quando uma célula validada é selecionada são escritos juntamente com o alerta de erro existente e lidos novamente, pelo que a mensagem de introdução sobrevive a uma viagem de ida e volta
.ods - A cor do separador da folha é preservada. A cor de um separador de folha é escrita e lida a partir do ficheiro
.ods, e a importação aceita tanto o atributo de extensão comum como o atributo padrão de cor do separador do OpenDocument
Versão 2.89.18
Adicionado
- A exportação e importação ODS suportam agora grupos de linhas e colunas. Os grupos de contornos são escritos como elementos aninhados de grupos de linhas e colunas e lidos novamente, pelo que as linhas e colunas agrupadas mantêm o seu nível de contorno através de uma viagem de ida e volta
.ods, incluindo vários níveis de aninhamento - Os grupos contraídos permanecem contraídos. Um grupo cujas linhas ou colunas estão contraídas é marcado como não apresentado ao guardar e restaurado ao carregar, e o agrupamento coexiste com linhas ocultas, quebras de página e dimensionamento de linhas ou colunas sem interferir
Versão 2.89.17
Adicionado
- A exportação e importação ODS suportam agora a área de impressão. O intervalo de impressão de uma folha é escrito e lido a partir do ficheiro
.ods, de forma a que uma área de impressão definida sobreviva a uma gravação e recarregamento - As quebras de página manuais são preservadas. As quebras de página de linha e coluna são escritas como marcadores de quebra-antes nas linhas e colunas afetadas e lidas de volta no carregamento, pelo que a paginação manual é totalmente preservada através de
.ods
Versão 2.89.16
Adicionado
- A exportação e importação ODS suportam agora cabeçalhos e rodapés. Guardar para
.odsescreve o cabeçalho e rodapé de cada folha com as suas regiões esquerda, central e direita, e abrir um ficheiro.odslê-os de volta, para que os campos de número de página, contagem de páginas, data, hora e nome da folha, além de texto literal, sobrevivam à viagem de ida e volta - Cada folha mantém o seu próprio cabeçalho e rodapé. Um livro cujas folhas contêm cabeçalhos ou rodapés diferentes escreve agora um estilo de página separado por folha, pelo que cada folha é recarregada com o seu próprio cabeçalho e rodapé em vez de partilhar os da primeira folha
Versão 2.89.15
Adicionado
- A exportação e importação ODS suportam agora a rotação de texto. Uma célula cujo texto esteja rodado mantém o seu ângulo através de uma gravação e recarregamento
.ods, com os ângulos no sentido dos ponteiros do relógio e no sentido contrário mapeados corretamente entre as convenções da folha de cálculo e do OpenDocument - O avanço da célula é preservado. O nível de avanço de uma célula é escrito como uma margem esquerda ao guardar e lido novamente no carregamento, pelo que as células com avanço mantêm a sua profundidade através de uma viagem de ida e volta
.ods
Versão 2.89.14
Adicionado
- A exportação ODS escreve agora texto formatado. Guardar uma célula cujo texto misture vários segmentos de formatação para
.odsemite um span de texto por segmento com o seu próprio estilo automático de família de texto, para que o nome do tipo de letra, tamanho, negrito, itálico, sublinhado, rasurado, cor e sobrescrito ou subscrito sobrevivam à gravação em vez de serem reduzidos a um único formato - Estilos de segmentos idênticos são partilhados. Os segmentos que contêm a mesma formatação reutilizam uma única entrada de estilo automático em vez de emitirem um duplicado por segmento, e uma célula simples continua a ser escrita como um único parágrafo sem span
Versão 2.89.13
Adicionado
- A importação ODS mantém agora a formatação de texto formatado. Abrir um ficheiro
.odsno qual uma célula misture vários spans de texto com formatações diferentes preserva cada segmento em vez de reduzir a célula a texto simples, para que o nome do tipo de letra, tamanho, negrito, itálico, sublinhado, rasurado, cor e sobrescrito ou subscrito sejam mantidos por segmento - Células simples permanecem simples. Uma célula com um único segmento sem formatação, e qualquer célula numérica, de data ou de fórmula, é mantida como um valor comum em vez de ser promovida a texto formatado
Versão 2.89.12
Adicionado
- A importação ODS lê agora gráficos. Abrir um ficheiro
.odsanalisa cada objeto de gráfico incorporado referenciado a partir de uma folha de cálculo, pelo que gráficos de colunas, barras, linhas, circular, área, anel, dispersão, bolhas e radar são restaurados na folha que os possui, completando o ciclo com a exportação de gráficos - Os intervalos de séries de gráficos são restaurados. Cada série contém o seu intervalo de valores e o seu intervalo de categorias, quando presente, convertidos de volta a partir da grafia de intervalo de células do OpenDocument, para que o gráfico aponte para os mesmos dados da folha de cálculo
- Um gráfico danificado ou em falta é ignorado com segurança. Uma moldura de desenho cujo objeto de gráfico esteja ausente ou não seja um gráfico já não aborta o carregamento, e qualquer imagem alternativa na mesma moldura continua a ser importada
Versão 2.89.11
Adicionado
- A exportação ODS escreve agora imagens incorporadas. Guardar para
.odsarmazena cada imagem da folha de cálculo na pastaPictures/do pacote, referencia-a a partir de uma moldura de desenho dentro da sua célula de ancoragem e regista-a no manifesto, para que as imagens colocadas num livro sejam transportadas para o ficheiro guardado - O tamanho da imagem é preservado. Cada imagem grava a sua largura e altura em centímetros, pelo que uma imagem guardada em
.odse reaberta mantém o mesmo tamanho no ecrã - Imagens numa célula unida permanecem ancoradas. Uma imagem cuja ancoragem se encontre dentro de um intervalo unido é alojada pela célula superior esquerda do intervalo, e uma imagem ancorada fora da grelha da folha é ignorada em vez de ser escrita como uma entrada sem moldura de desenho
Versão 2.89.10
Corrigido
- O nível de erro da validação de dados ODS sobrevive agora ao ciclo de gravação e leitura. Guardar uma validação cujo alerta seja um aviso ou informação já não o exporta sem o seu tipo de alerta, pelo que a reabertura do ficheiro
.odsmantém o nível original em vez de o reduzir silenciosamente para um alerta de paragem
Versão 2.89.9
Adicionado
- A exportação ODS escreve agora gráficos. Guardar para
.odsserializa cada gráfico da folha de cálculo no seu próprio subdocumento de gráfico incorporado dentro do pacote, pelo que gráficos de colunas, barras, linhas, circular, área, anel, dispersão, bolhas e radar são transportados para o ficheiro guardado - Os gráficos são referenciados a partir da sua folha. A folha que possui um gráfico liga-se ao objeto de gráfico incorporado através de uma moldura de desenho, e cada objeto de gráfico é registado no manifesto do pacote para que o LibreOffice abra o documento sem reportar que o mesmo está danificado
- Os intervalos de séries são traduzidos. Cada série de gráfico contém o seu intervalo de valores e o seu intervalo de categorias, quando presente, convertidos para a grafia de intervalo de células do OpenDocument, de forma a que o gráfico aponte para os mesmos dados da folha de cálculo
Versão 2.89.8
Adicionado
- A importação ODS lê agora imagens incorporadas. Abrir um ficheiro
.odsextrai imagens guardadas na pastaPictures/do pacote, reconhecendo imagens PNG, JPEG, GIF e BMP pelo seu conteúdo, para que um desenho ancorado numa célula seja reaberto como uma imagem da folha de cálculo - O posicionamento da imagem é preservado. Cada imagem importada mantém a célula de ancoragem da moldura de desenho que a contém, e a sua largura e altura são convertidas a partir das dimensões armazenadas na moldura
- Imagens em falta são ignoradas de forma segura. Uma moldura de desenho cujo imagem referenciada esteja ausente do pacote é ignorada sem erro, pelo que um documento parcial continua a abrir
Versão 2.89.7
Adicionado
- A exportação ODS escreve agora painéis congelados. Guardar para
.odsregista as colunas e linhas congeladas de cada folha congelada nas definições de visualização do pacote, para que uma folha dividida com um cabeçalho congelado seja reaberta congelada no LibreOffice e através deOpenODS - A exportação ODS escreve agora a configuração da página. O esquema de página no pacote guardado contém o tamanho do papel, orientação (vertical ou horizontal) e as margens superior, inferior, esquerda e direita a partir da configuração de página da folha de cálculo, revertendo para A4 vertical quando não existe configuração de página
Versão 2.89.6
Adicionado
- A importação ODS lê agora painéis congelados. Abrir um ficheiro
.odsrestaura as colunas e linhas congeladas registadas nas definições de visualização do pacote, para que uma folha dividida com um cabeçalho congelado seja reaberta congelada - A importação ODS lê agora intervalos de AutoFiltro. Um intervalo filtrado guardado no pacote como um intervalo de base de dados é lido de volta para a sua folha, pelo que os intervalos de AutoFiltro escritos por
SaveAssão lidos de volta porOpenODS
Versão 2.89.5
Adicionado
- A importação ODS lê agora formatações condicionais. Abrir um ficheiro
.odsimporta regras de comparação de valores de células (maior do que, menor do que, igual, diferente, maior ou igual, menor ou igual, entre e não entre), cada uma aplicada às células de destino - Regras de intervalo mantêm ambos os limites. Uma regra entre ou não entre recupera ambos os seus valores limite, pelo que os limites inferior e superior sobrevivem à importação
- Regras de comparação fazem o ciclo completo. As formatações condicionais de valor de célula escritas para
.odsreabrem com o seu operador, limites e intervalo de destino intactos, pelo que as regras guardadas porSaveAssão lidas de volta porOpenODS
Versão 2.89.4
Adicionado
- A importação ODS lê agora validações de dados. Abrir um ficheiro
.odsimporta validações de conteúdo de células: intervalos numéricos (entre e não entre), listas pendentes, verificações de comprimento de texto e comparações escalares, cada uma aplicada às células que a referenciam - Detalhes de validação são preservados. O sinalizador de permitir célula vazia e o alerta de erro (o seu estilo de paragem, aviso ou informação e o seu texto de mensagem) são transferidos para o modelo do livro
- Membros da lista sobrevivem ao ciclo completo. Uma lista pendente escrita para
.odsreabre com os seus membros intactos, pelo que as validações guardadas porSaveAssão lidas de volta porOpenODS
Versão 2.89.3
Adicionado
- A exportação ODS escreve agora elementos estruturais. Guardar para
.odstransporta intervalos nomeados, hiperligações de células, linhas e colunas ocultas, intervalos de AutoFiltro, formatações condicionais e validações de dados para o pacote - Intervalos nomeados e hiperligações realizam o ciclo completo. Os nomes com âmbito do livro mantêm o seu endereço, as ligações de células externas e internas mantêm o seu destino, texto de apresentação e dica de ecrã, e as linhas e colunas ocultas voltam a abrir ocultas
- AutoFiltro, formatações condicionais e validações são emitidos. Um intervalo filtrado é escrito com os seus botões de filtro, regras condicionais de comparação de valores e validações de dados de conteúdo de células são escritas para que consumidores como o LibreOffice as mantenham
Versão 2.89.2
Adicionado
- A importação ODS lê agora estilos de células completos. Abrir um ficheiro
.odsimporta o nome do tipo de letra, tamanho do tipo de letra, negrito, itálico, sublinhado e rasurado das células com estilo, juntamente com os valores em cache e formatos numéricos já suportados - A cor do tipo de letra, o preenchimento de fundo e os limites são importados. Cores explícitas de tipo de letra mapeiam para RGB opaco, uma cor de fundo torna-se num preenchimento sólido e os quatro limites da célula (superior, inferior, esquerdo, direito) contêm o seu estilo de linha e cor
- O alinhamento é importado. O alinhamento horizontal e vertical do texto e a opção de moldar texto são aplicados à célula
- A herança do estilo pai é respeitada. Os estilos leem os seus valores através da cadeia de estilos pai do ODS, pelo que um estilo filho substitui o seu pai atributo por atributo enquanto herda tudo o que este deixe por definir
- Fecha o ciclo de escrita/leitura. Os estilos de células escritos por
SaveAspara.odssão lidos novamente porOpenODS, preservando o tipo de letra, cor, preenchimento, limites e alinhamento
Versão 2.89.1
Adicionado
- A exportação ODS escreve agora estilos de células completos. Guardar em
.odstransporta o nome do tipo de letra, tamanho do tipo de letra, negrito, itálico, sublinhado, rasurado e cor do tipo de letra para o pacote, de modo que as células estilizadas mantenham o seu aspeto quando reabertas - Os preenchimentos de fundo e os limites das células são escritos. As cores de fundo sólidas e as quatro arestas das células (superior, inferior, esquerda, direita) são emitidas com a sua largura, estilo de linha e cor
- O alinhamento e a quebra de texto são preservados. O alinhamento horizontal e o alinhamento de texto mais a opção de moldar texto são transferidos para os estilos de células ODS
- Os estilos combinam-se com formatos de número. Um único estilo de célula pode emparelhar o seu tipo de letra, preenchimento e limites com um formato de número, e as combinações de estilos idênticas são partilhadas para que o pacote permaneça compacto
Versão 2.89.0
Adicionado
- Exportação de OpenDocument Spreadsheet (.ods). O
SaveAsaceita agoraxlsxOpenDocumentSpreadsheete escreve um pacote ODF válido diretamente, sem passar por um intermediário XLSX - Os valores das células tipados são escritos. O texto, números, booleanos e datas são emitidos com os seus tipos de valor ODF para que os valores mantenham o seu significado quando reabertos
- Os formatos de número são preservados. Os formatos comuns (casas decimais, agrupamento de milhares, moeda, percentagem, científico e datas ISO) são escritos como estilos de dados ODF e referenciados pelas células que os utilizam
- A estrutura da folha é transferida. As folhas de cálculo, larguras de coluna e intervalos de células fundidas são escritos no pacote
- Ciclo completo através do HotXLS. Um pacote escrito por
SaveAspode ser lido de volta comOpenODS, preservando valores, formatos de número, larguras de coluna e uniões
Versão 2.88.249
Adicionado
- As funções de intervalo de confiança são agora calculadas no motor de fórmulas.
CONFIDENCE.NORMutiliza o quantil normal eCONFIDENCE.To quantil t de Student para devolver a meia largura do intervalo de confiança de uma média - Os nomes estatísticos modernos estão disponíveis.
PERCENTILE.INC,PERCENTILE.EXC,QUARTILE.INC,QUARTILE.EXC,RANK.AVG,COVARIANCE.PeCOVARIANCE.Savaliam os percentis e quartis inclusivos e exclusivos, a classificação de empates por média, e a covariância populacional e amostral - Aliases para as formas herdadas.
MODE.SNGLeRANK.EQmapeiam para osMODEeRANKexistentes
Versão 2.88.248
Adicionado
- A função de distribuição binomial é agora calculada no motor de fórmulas.
BINOM.DISTavalia a massa de probabilidade e a distribuição cumulativa, utilizando a função beta incompleta regularizada para a forma cumulativa - A função de distribuição de Poisson é agora calculada no motor de fórmulas.
POISSON.DISTavalia a massa de probabilidade e a distribuição cumulativa, utilizando a função gama incompleta superior para a forma cumulativa - Avaliação estável. Ambas as massas utilizam uma forma fatorial log-gama para permanecerem precisas com contagens grandes, e parâmetros inválidos devolvem
#NUM!
Versão 2.88.247
Adicionado
- As funções de distribuição beta são agora calculadas no motor de fórmulas.
BETA.DISTeBETA.INVavaliam a distribuição cumulativa, densidade de probabilidade e inversa ao longo de um intervalo opcional[A, B] - As funções de distribuição t de Student estão disponíveis.
T.DIST,T.DIST.RT,T.DIST.2T,T.INVeT.INV.2Tcobrem a cauda esquerda, cauda direita, probabilidade bicaudal e as suas inversas - As funções de distribuição F estão disponíveis.
F.DIST,F.DIST.RT,F.INVeF.INV.RTavaliam a distribuição cumulativa, cauda direita e inversas - Núcleo de avaliação partilhado. Todas as três famílias utilizam a função beta incompleta regularizada com avaliação por fração contínua, as inversas são resolvidas por bisseção, e parâmetros inválidos devolvem
#NUM!
Versão 2.88.246
Adicionado
- As funções de distribuição gama e qui-quadrado são agora calculadas no motor de fórmulas.
GAMMA.DIST,GAMMA.INV,CHISQ.DIST,CHISQ.DIST.RT,CHISQ.INVeCHISQ.INV.RTavaliam a distribuição cumulativa, densidade de probabilidade, cauda direita e as suas inversas em tempo real através deCalculate - O log-gama de alta precisão está disponível.
GAMMALN.PRECISEdevolve o logaritmo natural da função gama - Avaliação precisa e robusta. Os valores cumulativos utilizam expansões em série e em fração contínua da função gama incompleta regularizada, as inversas são resolvidas por bisseção, e parâmetros inválidos devolvem
#NUM!
Versão 2.88.245
Adicionado
- As funções de distribuição contínua são agora calculadas no motor de fórmulas.
EXPON.DIST,WEIBULL.DIST,LOGNORM.DISTeLOGNORM.INVavaliam a distribuição cumulativa, densidade de probabilidade e inversa em tempo real através deCalculate - Avaliação em forma fechada. As distribuições exponencial e Weibull utilizam as suas fórmulas analíticas, enquanto a distribuição lognormal reutiliza a CDF normal e a sua inversa; parâmetros inválidos devolvem
#NUM!
Versão 2.88.244
Corrigido
- A distribuição normal inversa é agora precisa nas caudas.
NORMSINV,NORM.S.INVeNORM.INVutilizavam um logaritmo de base 10 nos ramos das caudas (probabilidades abaixo de cerca de 0,024 ou acima de cerca de 0,976), onde o algoritmo requer o logaritmo natural; os resultados estão agora corretos em todo o intervalo de probabilidade
Versão 2.88.243
Adicionado
- As funções de distribuição normal com os nomes modernos separados por pontos são agora calculadas no motor de fórmulas.
NORM.DIST,NORM.INV,NORM.S.DISTeNORM.S.INVavaliam a distribuição cumulativa, densidade de probabilidade e as suas inversas em tempo real através deCalculate - Aliases estatísticos separados por pontos.
STDEV.S,STDEV.P,VAR.SeVAR.Psão reconhecidos como os nomes do Excel 2010+ para o desvio padrão e variância amostrais e populacionais - Nomes de funções separados por pontos são analisados corretamente. O analisador de fórmulas trata agora um nome como
NORM.S.DISTcomo uma única função, pelo que estas funções funcionam emCalculatee realizam o ciclo completo através do prefixo OOXML_xlfn.
Versão 2.88.242
Adicionado
- As funções de engenharia de números complexos são agora calculadas no motor de fórmulas.
COMPLEXcria um número complexo como texto e a famíliaIM*lê e opera sobre o mesmo, avaliando todos em tempo real através deCalculate - Partes e aritmética.
IMREAL,IMAGINARY,IMABS,IMARGUMENTeIMCONJUGATEexpõem os componentes, enquantoIMSUM,IMSUB,IMPRODUCTeIMDIVrealizam aritmética complexa - Funções transcendentais.
IMPOWER,IMSQRT,IMEXPeIMLNsão avaliadas através da forma polar, e o sufixo imaginário pode seriouj
Versão 2.88.241
Adicionado
- As funções de matriz dinâmica
XLOOKUPeFILTERsão agora calculadas no motor de fórmulas. Ambas avaliam em tempo real através deCalculate, trazendo pesquisa e filtragem modernas para fórmulas de folhas de cálculo e avaliações ad-hoc XLOOKUPcom modos de correspondência e pesquisa. São suportadas correspondências exata (predefinição), por carateres universais e aproximada (elemento seguinte menor / seguinte maior), juntamente com pesquisa do primeiro ao último ou do último ao primeiro e um resultado opcionalif_not_foundFILTERcom resultados transbordados. As linhas cujo vetor de inclusão seja TRUE são mantidas e transbordadas para o intervalo de destino viaSetArrayFormula, com um valor opcionalif_emptyquando nada corresponde
Versão 2.88.240
Adicionado
- As funções matemáticas
GCD,LCM,MROUND,QUOTIENTeMULTINOMIALsão agora calculadas no motor de fórmulas. Estas avaliam em tempo real através deCalculate, cobrindo o máximo divisor comum, mínimo múltiplo comum, arredondamento para um múltiplo, divisão inteira e o coeficiente multinomial - Conversão de base e numeração romana.
BASEcodifica um número em qualquer base de 2 a 36 com preenchimento opcional de zeros,DECIMALanalisa essa string de volta para um número, eARABICconverte um número romano no seu valor
Versão 2.88.239
Adicionado
- As funções de agregação
PRODUCTeSUMSQsão agora calculadas no motor de fórmulas.PRODUCTmultiplica os seus argumentos numéricos eSUMSQsoma os seus quadrados, avaliando ambas em tempo real através deCalculate - Variância e desvio padrão da variante A.
VARA,VARPA,STDEVAeSTDEVPAcalculam a dispersão amostral e populacional enquanto contam texto como 0 e TRUE como 1, ao contrário das formas simples que ignoram valores não numéricos
Versão 2.88.238
Adicionado
- As funções de agregação estatística são agora calculadas no motor de fórmulas.
VAR,VARP,STDEV,STDEVP,MODE,COUNTBLANKeAVERAGEAavaliam em tempo real através deCalculate - Variância e desvio padrão.
VAReSTDEVutilizam a fórmula amostral, enquantoVARPeSTDEVPutilizam a fórmula populacional, tanto sobre intervalos como argumentos inline - Valor mais frequente.
MODEdevolve o número que ocorre com mais frequência, e reporta#N/Aquando nenhum valor se repete - Contagem de células vazias.
COUNTBLANKconta as células vazias num intervalo, incluindo células contendo um resultado de texto vazio - Média sensível a texto.
AVERAGEAcalcula a média dos valores contando o texto como zero e o TRUE lógico como um, pelo que difere deAVERAGE, que ignora texto
Versão 2.88.237
Adicionado
- As funções bit a bit são agora calculadas no motor de fórmulas.
BITAND,BITOR,BITXOR,BITLSHIFTeBITRSHIFTavaliam em tempo real através deCalculate - AND, OR e XOR bit a bit.
BITAND,BITOReBITXORcombinam dois números inteiros não negativos bit a bit - Deslocamento de bits em ambas as direções.
BITLSHIFTdesloca os bits de um número para a esquerda eBITRSHIFTdesloca-os para a direita; uma quantidade de deslocamento negativa inverte a direção - Limites compatíveis com o Excel. Os operandos têm de ser números inteiros de 0 até 2^48-1 e a quantidade de deslocamento está limitada a 53 posições; valores fora destes limites devolvem
#NUM! - Ciclo completo com o prefixo OOXML. Quando guardadas em XLSX, estas funções do Excel 2013 são escritas com o prefixo
_xlfn.e reabertas de forma limpa, pelo que continuam a ser apresentadas e recalculadas corretamente
Versão 2.88.236
Adicionado
- As funções de engenharia de conversão de base são agora calculadas no motor de fórmulas.
DEC2BIN,DEC2OCT,DEC2HEX,BIN2DEC,OCT2DEC,HEX2DEC,HEX2BIN,BIN2HEX,HEX2OCT,OCT2HEX,BIN2OCTeOCT2BINavaliam em tempo real através deCalculate - Conversões entre binário, octal, decimal e hexadecimal. Os números convertem-se em qualquer direção entre as quatro bases, incluindo os pares de bases cruzadas, como hexadecimal para binário
- Valores assinados através de complemento para dois. Os números negativos são representados no formato padrão de complemento para dois de 10 dígitos, de modo a que os valores realizem o ciclo completo corretamente nas conversões
- Saída de largura fixa opcional. As conversões para uma base de texto aceitam um argumento opcional places que preenche o resultado com zeros à esquerda para obter uma largura fixa
- Validação de intervalo e de entrada. Valores fora do intervalo representável, ou texto contendo dígitos que não sejam válidos para a base de origem, devolvem
#NUM!
Versão 2.88.235
Adicionado
- As funções de data de dias úteis são agora calculadas no motor de fórmulas.
WORKDAYeNETWORKDAYSavaliam em tempo real através deCalculate - Avanço de data sensível a fins de semana.
WORKDAYdevolve a data um determinado número de dias úteis antes ou depois de uma data de início, ignorando sábados e domingos; uma contagem negativa recua e uma contagem de zero devolve a data de início - Contagem de dias úteis.
NETWORKDAYSconta os dias úteis inteiros entre duas datas, incluindo ambos os limites, e devolve uma contagem negativa quando a data de início é posterior à data de fim - Listas de feriados opcionais. Ambas as funções aceitam um argumento opcional holiday, fornecido como uma única data ou um intervalo de células, e excluem essas datas do cálculo de dias úteis
Versão 2.88.234
Adicionado
- As funções de data e hora são agora calculadas no motor de fórmulas.
EDATE,EOMONTH,DATEDIF,YEARFRAC,DAYS,WEEKNUMeISOWEEKNUMavaliam em tempo real através deCalculate - Aritmética de meses com ajuste ao fim do mês.
EDATEdesloca uma data por um número inteiro de meses eEOMONTHdevolve o último dia do mês deslocado; ambos ajustam para o mês mais curto, por exemplo, o dia 31 deslocado para fevereiro - Unidades de intervalo
DATEDIF. São suportadas as unidades de contagem total"Y","M"e"D", além das unidades de resto"YM","YD"e"MD" - Bases de contagem de dias
YEARFRAC. Todas as cinco bases estão implementadas: US 30/360, real/real, real/360, real/365 e Europeia 30/360 - Numeração de semanas.
WEEKNUMsuporta as convenções de início ao domingo, início à segunda-feira e ISO (tipo de retorno 21), eISOWEEKNUMdevolve o número de semana ISO 8601
Versão 2.88.233
Adicionado
- As funções de base de dados são agora calculadas no motor de fórmulas.
DSUM,DCOUNT,DCOUNTA,DAVERAGE,DMIN,DMAX,DPRODUCT,DGET,DVAR,DVARP,DSTDEVeDSTDEVPavaliam em tempo real através deCalculatee são recalculadas quando um livro é reaberto - Correspondência padrão de tabelas de critérios. As condições colocadas abaixo dos cabeçalhos dos campos combinam-se como AND dentro de uma linha e OR entre linhas, suportam operadores de comparação como
>,<e>=, e permitem a correspondência de texto por carateres universais*/?; células de critérios vazias não adicionam restrições - Seletor de campo flexível. O campo agregado pode ser fornecido como o texto do cabeçalho de uma coluna, um índice de coluna baseado em 1, ou uma referência a uma célula de cabeçalho
- Pesquisa de registo único
DGET.DGETdevolve o valor do campo do registo correspondente, incluindo texto, e devolve#NUM!quando vários registos correspondem ou#VALUE!quando nenhum corresponde
Versão 2.88.232
Adicionado
OpenODSimporta agora proteção de folha ODS. As tabelas ODS comtable:protected="true"abrem agora como folhas de cálculo protegidas utilizando o estado existente de proteção de folha sem palavra-passe; as chaves de proteção ODS não são tratadas como hashes de palavra-passe XLSX herdadas
Versão 2.88.231
Adicionado
OpenODSimporta agora intervalos nomeados ODS. As entradastable:named-rangecomtable:cell-range-addresspreenchem agora osDefinedNamesdo livro, convertendo referências de folha/célula ODS, tais como$Sheet.$A$1:$Sheet.$B$2, em fórmulas de nomes definidos XLSX
Versão 2.88.230
Adicionado
OpenODSimporta agora estilos de proteção de células ODS. Os estilos de células de tabela que utilizamstyle:cell-protectmapeiam agoranone,formula-hidden,protectedehidden-and-protectedpara o estado de célula importadoLockedeFormulaHidden, incluindo valores herdados através destyle:parent-style-name
Versão 2.88.229
Adicionado
OpenODSimporta agora fórmulas ODS básicas. Células de fórmulas que utilizamof:=ouoooc:=mantêm agora os seus valores escalares em cache e importam uma fórmula XLSX normalizada com referências locais entre parênteses retos, tais como[.A1:.B1], e separadores de argumentos por ponto e vírgula convertidos para a sintaxe do Excel
Versão 2.88.228
Adicionado
OpenODSresolve agora estilos herdados de linhas e colunas ODS. Os estilos de linha e coluna de tabela que utilizamstyle:parent-style-nameherdam agora as definições de altura de linha, largura de coluna e visibilidade oculta do pai quando os pacotes ODS referenciam estilos filho a partir decontent.xml
Versão 2.88.227
Adicionado
OpenODSresolve agora estilos herdados de células de tabela ODS. Os estilos de células de tabela que utilizamstyle:parent-style-nameherdam agora os mapeamentos de estilo de dados pai durante a importação ODS, de modo a que os estilos filho mantenham os valores XLSXNumberFormatimportados, mesmo quando o estilo de dados é declarado no estilo pai
Versão 2.88.226
Adicionado
OpenODSpré-carrega agora estilos de linhas e colunas ODS guardados emstyles.xml. As propriedades de styles de linha e coluna de tabela destyles.xmlalimentam agora a importação de linhas/colunas ocultas e de altura de linha/largura de coluna quandocontent.xmlreferencia esses nomes de estilo
Versão 2.88.225
Adicionado
OpenODSutiliza agora estilos de dados ODS guardados emstyles.xml. Estilos de células de tabela nomeados e estilos de dados de número/data/hora destyles.xmlparticipam agora na resolução XLSXNumberFormatimportada, enquanto os estilos automáticoscontent.xmlainda os podem substituir
Versão 2.88.224
Adicionado
OpenODSimporta agora formatos numéricos de fração ODS. Os componentes ODSnumber:fractionmapeiam agora para formatos de fração XLSX tais como0 ?/??, preservando as definições de apresentação de frações durante a importação
Versão 2.88.223
Adicionado
OpenODSimporta agora formatos numéricos científicos ODS. Os componentes ODSnumber:scientific-numbermapeiam agora para formatos numéricos XLSX tais como0.000E+00, preservando as definições de apresentação em notação científica durante a importação
Versão 2.88.222
Adicionado
OpenODSpreserva agora literaisnumber:textnos estilos de dados numéricos ODS. Estilos de número, percentagem e moeda que colocamnumber:textantes ou depois denumber:numberimportam agora esses literais para o formato numérico XLSX, mantendo as etiquetas e sufixos de unidades tais comokg
Versão 2.88.221
Corrigido
OpenODSimporta agora durações de tempo negativas ODS. Valoresoffice:time-valuetais como-PT02H03M04Ssão agora importados como valores de série de tempo negativos em vez de serem ignorados
Versão 2.88.220
Corrigido
OpenODSresolve agora estilos de células padrão por coluna repetida. Uma célula ODS repetida que cruza limites de estilos padrão de colunas aplica agora o formato numérico padrão de coluna ou tabela de cada coluna de destino, em vez de reutilizar o formato da primeira coluna repetida
Versão 2.88.219
Adicionado
OpenODSpreserva agora frações de segundo em valores de data ODS. Carimbos de data/horaoffice:date-valuetais como2026-06-04T12:30:00.250mantêm agora a sua componente de milissegundos em vez de serem truncados para segundos inteiros
Versão 2.88.218
Adicionado
OpenODSimporta agora a visibilidade de folhas ODS. Tabelas ODS com valores ocultostable:visibilitytais comocollapsesão agora importadas como folhas de cálculo XLSX ocultas, em vez de se tornarem sempre em separadores visíveis
Versão 2.88.217
Adicionado
OpenODSaplica agora estilos de célula padrão ODS.table:default-cell-style-nameem tabelas, colunas e linhas participa agora na resolução do formato numérico para células sem umtable:style-namedireto, utilizando precedência de célula, linha, coluna e depois tabela
Versão 2.88.216
Adicionado
OpenODSimporta agora componentes de estilo de data e hora ODS. Estilos de dados de data e hora leem agora nós comunsnumber:year,number:month,number:day,number:hours,number:minutes,number:seconds,number:am-pmenumber:textpara que as células importadas mantenham a ordem dos componentes e separadores tais comodd/mm/yyyyouhh:mm
Versão 2.88.215
Adicionado
OpenODSimporta agora formatos numéricos de dígitos mínimos ODS. Estilos de dados de número, percentagem e moeda comnumber:min-integer-digitsenumber:min-decimal-placesmapeiam agora para strings XLSXNumberFormatcom zeros à esquerda e marcadores decimais opcionais no fim
Versão 2.88.214
Adicionado
OpenODSimporta agora formatos numéricos agrupados ODS. Estilos de dados de número, percentagem e moeda comnumber:grouping="true"mapeiam agora para strings XLSXNumberFormatcom separadores de agrupamento do estilo#,##0
Versão 2.88.213
Adicionado
OpenODSpreserva agora símbolos monetários ODS em formatos numéricos importados. Estilos de dados monetários comnumber:currency-symbolutilizam agora esse símbolo como o prefixo XLSXNumberFormat, pelo que formatos tais comoEUR#,##0.00já não são reduzidos a$#,##0.00
Versão 2.88.212
Adicionado
OpenODSrespeita agora as definições de casas decimais ODS em formatos numéricos básicos. Estilos de dados de número, percentagem e moeda comnumber:decimal-placesmapeiam agora para strings XLSXNumberFormatcorrespondentes, tais como0,0.0%ou$#,##0
Versão 2.88.211
Adicionado
OpenODSimporta agora valores escalares em cache ODS sem tipo. Células semoffice:value-typeutilizam agora os atributosoffice:value,office:boolean-value,office:date-value,office:time-valueeoffice:string-valuedisponíveis antes de reverterem para o conteúdo de texto
Versão 2.88.210
Adicionado
OpenODSpreserva agora os limites de parágrafos de texto ODS. Vários parágrafostext:psão importados com quebras de linha, enquanto controlos de espaços em brancotext:s,text:tabetext:line-breakpermanecem no texto da célula em vez de serem unificados
Versão 2.88.209
Adicionado
OpenODSimporta agora dimensões de linhas e colunas ODS. Estilos de coluna e linha de tabela ODS comstyle:column-width/style:row-heightsão mapeados paraColWidth/RowHeight, incluindo linhas e colunas repetidas
Versão 2.88.208
Adicionado
- Elementos visuais da janela do livro XLSX e controlos de geometria.
TXLSXWorkbookexpõe agoraMinimized,WindowHidden,ShowHorizontalScroll,ShowVerticalScroll,XWindow,YWindow,WindowWidtheWindowHeightpara a fachada XLSX.SaveAsescreve os atributos<workbookView>correspondentes,Openrealiza o ciclo completo destes, e os valores de geometria são limitados ao intervalo de 0..65535 compatível com OOXML
Versão 2.88.207
Adicionado
- Controlos de visualização do livro XLSX.
TXLSXWorkbookexpõe agoraShowSheetTabs,TabRatio,FirstSheeteAutoFilterDateGroupingpara que os invocadores possam controlar a barra de separadores do livro e o agrupamento de datas do AutoFiltro através da fachada XLSX.SaveAsescreve os atributos<workbookView>correspondentes,Openrealiza o ciclo completo destes,TabRatiolimita-os a 0..1000 eFirstSheetlimita-os a um índice de folha baseado em 0 existente
Versão 2.88.206
Adicionado
- Auxiliares AutoFit de XLSX limitados.
TXLSXWorksheet.AutoFitColumn,AutoFitColumns,AutoFitRow,AutoFitRowse os wrappersTXLSXRangeAutoFitColumns/AutoFitRowsaceitam agora limites opcionais mínimos e máximos de largura/altura, para que os invocadores possam ajustar o conteúdo mantendo os layouts dos relatórios dentro dos limites de desenho
Corrigido
- Nomes de tipos de letra de texto formatado XLSX HTML. A exportação HTML emite agora CSS
font-familyde texto formatado com nomes entre aspas duplas antes del escape HTML, correspondendo à saída"..."documentada para segmentos estilizados
Versão 2.88.205
Adicionado
- Formas de retângulo, oval e linha (XLS). A API de desenho de .xls ganha
Shapes.AddRectangle,Shapes.AddOvaleShapes.AddLine(além de umAddAutoShapegeral), de modo a que formas automáticas tipificadas possam ser criadas e ancoradas a um intervalo de células sem construir manualmente os registos OfficeArt. Cada uma devolve uma forma cuja formataçãoFilleLinepode ser definida; anteriormente, apenas imagens, caixas de texto e comentários podiam ser adicionados
Versão 2.88.204
Adicionado
- Gráficos de dispersão, bolhas e radar (XLSX).
AddChartaceita agoraxlsxChartScatter(dispersão XY),xlsxChartBubble(com um intervalo de tamanho de bolha por série) exlsxChartRadar, a par dos tipos existentes de colunas / barras / linhas / circular / área / anel. As séries de dispersão e bolhas traçam o intervalo de categorias como X e o intervalo de valores como Y; as bolhas adicionam umBubbleSizeRange
Versão 2.88.203
Adicionado
- Regras de validação de dados tipificadas com avisos e alertas (XLS). O motor clássico de .xls ganha
AddWholeNumberValidation,AddDecimalValidation,AddDateValidation,AddTimeValidation,AddTextLengthValidationeAddCustomValidation(anteriormente, apenas a validação de lista estava exposta). Cada um devolve a regra, que pode conter uma mensagem de introdução, um alerta de erro com um ícone de paragem / aviso / informação, e uma opção de permitir célula vazia viaSetPrompt/SetError/AllowBlank
Versão 2.88.202
Adicionado
- Mensagens de introdução e alertas de erro para validação de dados (XLSX). Uma regra de validação de dados pode agora conter uma caixa de mensagem de introdução (título e mensagem apresentados quando a célula é selecionada) e uma caixa de alerta de erro (título, mensagem e um ícone de paragem / aviso / informação apresentado em caso de introdução inválida), além do controlo da seta de lista pendente. Defina-os através de
SetPrompt,SetErrore das novas propriedadesPromptTitle/Prompt/ErrorTitle/ErrorMessage/ErrorStyle/ShowDropDown; anteriormente, apenas estavam disponíveis as opções de mostrar mensagem. Estes realizam o ciclo completo ao carregar
Versão 2.88.201
Adicionado
- Mais tipos de regras de formatação condicional (XLSX). O motor XLSX ganha regras de texto (contém, não contém, começa com, termina com), N primeiros/últimos (com uma percentagem opcional), acima e abaixo da média, valores duplicados e únicos, e vazios / não vazios / erros / sem erros — cada um através de um método
AddCondFormat*dedicado e cada um capaz de conter um realce através do seuStyle. Estas regras também realizam o ciclo completo ao carregar
Versão 2.88.200
Adicionado
- Formatação condicional baseada em fórmulas (XLSX). Uma nova regra de formatação condicional realça células através de uma fórmula arbitrária via
AddCondFormatExpression: a fórmula é avaliada por célula e as células onde a mesma seja verdadeira assumem o realce da regra
Alterado
- As formatações condicionais realçam agora células em .xlsx. As regras de formatação condicional de valores de células e de fórmulas contêm agora um estilo diferencial — cor de preenchimento, cor de tipo de letra e negrito / itálico / sublinhado — escrito na tabela de estilos do livro, para que o Excel pinte as células correspondentes. Anteriormente, as formatações condicionais XLSX eram guardadas sem qualquer realce
Versão 2.88.199
Adicionado
- Funções de fórmula TEXTJOIN e CONCAT. O calculador de fórmulas integrado avalia agora
TEXTJOIN(juntar valores de texto com um delimitador, opcionalmente ignorando células vazias) eCONCAT(juntar valores de texto sem delimitador), ambos expandindo os argumentos de intervalo coluna a coluna — ao contrário do mais antigoCONCATENATE. Os ficheiros.xlsxguardados escrevem estas funções do Excel 2016 com o prefixo_xlfn.para que o Excel as abra como funções reais, e a reabertura mostra o nome simples
Versão 2.88.198
Adicionado
- Funções de fórmula SUMIFS, COUNTIFS, AVERAGEIFS, MAXIFS e MINIFS. O calculador de fórmulas integrado avalia agora estas agregações de múltiplas condições, que totalizam, contam, calculam a média, ou obtêm o maior ou o menor valor das células que cumprem todos os critérios em um ou mais intervalos paralelos; os critérios aceitam operadores de comparação como
">=30"e carateres universais de texto. A função AVERAGEIFS sem células correspondentes devolve #DIV/0! e MAXIFS/MINIFS devolvem 0, como no Excel, e as mais recentes MAXIFS e MINIFS são escritas em.xlsxcom o prefixo_xlfn.do Excel
Versão 2.88.197
Adicionado
- Funções de fórmula IFS, SWITCH e IFNA. O calculador de fórmulas integrado avalia agora as funções lógicas modernas
IFS(o valor da primeira condição que seja verdadeira),SWITCH(corresponder uma expressão a uma lista de casos, com uma predefinição opcional), eIFNA(substituir um valor apenas quando o resultado for o erro #N/A). Dado que estas funções foram introduzidas após o conjunto original de funções .xls, a gravação em.xlsxescreve-as agora com o prefixo_xlfn.do Excel para que o Excel as abra como funções reais, e a reabertura desse ficheiro mostra novamente o nome simples da função
Versão 2.88.196
Adicionado
- Funções de fórmula INDEX e OFFSET. O calculador de fórmulas integrado avalia agora
INDEX(ler um valor pela sua posição de linha e coluna dentro de um intervalo) eOFFSET(read a value a set number of rows and columns from an anchor cell), ambos através deCalculate. Pesquisas bidirecionaisINDEX/MATCHe referências ancoradas aOFFSETcalculam-se agora corretamente, e uma posição fora do intervalo devolve o erro #REF! para corresponder ao Excel
Versão 2.88.195
Corrigido
- O HTML exportado mantém os limites e o sombreado da linha de cabeçalho. Quando uma célula utilizava um tipo de letra nomeado, a exportação XLSX para HTML escrevia o nome do tipo de letra entre aspas duplas dentro de um atributo de estilo entre aspas duplas, o que cortava o estilo de forma a que a célula perdia os seus limites, preenchimento e tamanho. Os nomes dos tipos de letra são agora colocados entre aspas simples, de modo que uma linha de cabeçalho com estilo é exportada com as suas linhas de grelha intactas — incluindo la linha que fecha o topo da tabela — juntamente com a sua cor de fundo
- A exportação RTF corresponde agora ao layout de HTML e Excel. A exportação XLSX para RTF ganhou limites de células, abrangência de células unidas e sombreado de preenchimento sólido, e agora reduz as larguras das colunas para caberem na página imprimível, de forma a que uma coluna larga com ajuste automático já não empurre a tabela para fora da página. Anteriormente, a tabela RTF não tinha limites, descartava títulos unidos e podia estender-se muito além da largura da página
Versão 2.88.194
Corrigido
- Voltar a guardar um livro .xls que contenha uma caixa de texto já não o corrompe. Anteriormente, abrir um ficheiro XLS com uma caixa de texto e guardá-lo novamente duplicava um registo interno de desenho, produzindo um livro que causava falhas no Excel quando o ficheiro era reaberto. Os dados de desenho da caixa de texto realizam agora o ciclo completo corretamente, pelo que o livro guardado novamente abre normalmente
Versão 2.88.193
Corrigido
- Ficheiros .xlsx protegidos por palavra-passe abrem agora no Excel. Guardar um livro com uma palavra-passe através de
SaveAsEncryptedproduzia anteriormente um pacote de Encriptação Padrão ECMA-376 cujo texto cifrado AES era gerado incorretamente, pelo que o Excel rejeitava o ficheiro mesmo com a palavra-passe correta. A encriptação AES-128 produz agora uma saída em conformidade com as normas, e o livro encriptado abre no Excel 2007 e posterior com a palavra-passe utilizada para o guardar
Alterado
- AES acelerado por hardware para encriptação XLSX. A cifra AES-128 por trás da Encriptação Padrão XLSX utiliza agora instruções de CPU AES-NI tanto em Windows de 32 bits como de 64 bits quando o processador as suporta, acelerando as gravações protegidas por palavra-passe. Os processadores sem AES-NI revertem automaticamente para a implementação de software portátil, pelo que o resultado é idêntico em todas as máquinas
Versão 2.88.192
Adicionado
- As fórmulas de matriz sobrevivem à gravação e reabertura de XLSX. Uma fórmula de matriz de várias células (CSE) definida com
SetArrayFormulaé agora guardada e recarregada a partir de ficheiros.xlsxcomo uma fórmula de matriz real, pelo que guardar um livro e reabri-lo mantém o intervalo de transbordo ancorado intacto e cada célula ainda é avaliada para o seu próprio elemento do resultado da matriz. Anteriormente, uma fórmula de matriz guardada perdia o seu intervalo de transbordo quando o ficheiro era reaberto
Versão 2.88.191
Adicionado
- As fórmulas de matriz transbordam por um intervalo de células (XLSX). O intervalo do motor XLSX ganha o mesmo
SetArrayFormulaque o motor XLS: uma fórmula de matriz de várias células (CSE), tal como{=MMULT(A1:B2;D1:E2)}, definida sobre um bloco de células, transborda o seu resultado de matriz para que cada célula seja avaliada para o seu próprio elemento. Isto completa o suporte a fórmulas de matriz de várias células nos motores XLS e XLSX
Versão 2.88.190
Adicionado
- As fórmulas de matriz transbordam por um intervalo de células (XLS). Um novo método
SetArrayFormulanum intervalo define uma fórmula de matriz de várias células (CSE), tal como{=MMULT(A1:B2;D1:E2)}, sobre um bloco de células, e o calculador de fórmulas transborda agora o resultado da matriz para esse bloco de modo a que cada célula leia o seu próprio elemento. Anteriormente, uma célula contendo uma fórmula de matriz era avaliada como não suportada. A matriz é calculada uma vez por recalcular e partilhada por todo o intervalo
Versão 2.88.189
Adicionado
- Funções de fórmula MINVERSE e MMULT. O calculador de fórmulas integrado avalia agora
MINVERSE(inversa da matriz) eMMULT(produto de matrizes). Chamado através deCalculate, cada um devolve a matriz resultante como uma matriz bidimensional que pode ser lida elemento a elemento.MINVERSErequer um intervalo quadrado e devolve o erro #NUM! para uma matriz singular;MMULTrequer que as dimensões internas coincidam (colunas do primeiro intervalo iguais às linhas do segundo) e, caso contrário, devolve o erro #VALUE!
Versão 2.88.188
Adicionado
- Função de fórmula MDETERM. O calculador de fórmulas integrado avalia agora
MDETERM, devolvendo o determinante da matriz de um intervalo quadrado através deCalculate. Um intervalo não quadrado, ou um intervalo que contenha uma célula vazia ou não numérica, devolve o erro #VALUE! para corresponder ao Excel
Versão 2.88.187
Adicionado
- Funções de fórmulas estatísticas. O calculador de fórmulas integrado avalia agora
MEDIAN,LARGE,SMALLeRANK, de modo a que as fórmulas que resumem um intervalo de números sejam recalculadas corretamente através deCalculate.MEDIANaceita uma mistura de números inline e intervalos;LARGEeSMALLdevolvem o k-ésimo maior e k-ésimo menor valor;RANKreporta a posição de um número, classificando por predefinição em ordem decrescente ou crescente quando é fornecido um argumento de ordem diferente de zero
Versão 2.88.186
Adicionado
- Funções de fórmulas de pesquisa. O calculador de fórmulas integrado avalia agora
CHOOSEeMATCH, de modo a que as fórmulas que escolhem um argumento por índice ou encontram a posição de um valor dentro de uma linha ou coluna sejam recalculadas corretamente através deCalculate.MATCHsuporta todos os três tipos de correspondência — exata (0), o maior valor não superior ao valor de pesquisa num intervalo ascendente (1, a predefinição) e o menor valor não inferior ao de pesquisa num intervalo descendente (-1) — e compara texto de forma insensível a maiúsculas e minúsculas
Versão 2.88.185
Adicionado
- Funções de fórmulas financeiras. O calculador de fórmulas integrado avalia agora
PV,FV,PMT,NPEReRATE, de modo a que as fórmulas de valor atual, valor futuro, pagamento, prazo e taxa de juro sejam recalculadas corretamente através deCalculate. Os argumentos opcionais de valor futuro/valor atual e de momento do pagamento (type) são respeitados, eRATEé resolvido de forma iterativa
Corrigido
- Pontos decimais em strings de fórmulas. Corrigido um problema em que uma string de fórmula passada para
Calculateque contivesse um ponto decimal (por exemplo=PV(0.05;10;100)) podia falhar ao ser analisada; literais numéricos com uma parte fracionária são agora avaliados corretamente
Versão 2.88.184
Adicionado
- Funções de fórmulas de informação. O calculador de fórmulas integrado avalia agora
ISERROR,ISERR,ISNA,ISNUMBER,ISLOGICAL,ISNONTEXTeISREF, de modo a que as fórmulas de teste de erro e teste de tipo sejam recalculadas corretamente através deCalculate.ISERRexclui #N/A enquantoISNAcorresponde apenas a #N/A
Versão 2.88.183
Adicionado
- Funções de fórmulas de texto. O calculador de fórmulas integrado avalia agora
FIND,SEARCH,SUBSTITUTE,REPLACE,TRIM,PROPER,CLEAN,CHAR,CODE,T,EXACTeREPT, de modo a que as folhas de cálculo que utilizam estas funções de texto sejam recalculadas corretamente através deCalculateem vez de devolverem um resultado de função não suportada.FINDé sensível a maiúsculas e minúsculas enquantoSEARCHnão é
Corrigido
- Função CHAR reconhecida. Corrigido um problema de pesquisa de nome em que a função
CHARtinha sido registada com a capitalização incorreta e não podia ser resolvida nas fórmulas
Versão 2.88.182
Alterado
- Função de fórmula IFERROR. O motor de fórmulas reconhece e avalia agora
IFERROR(value, value_if_error), devolvendo a alternativa de recurso quando o primeiro argumento é avaliado para qualquer erro do Excel (#NULL!, #DIV/0!, #VALUE!, #REF!, #NAME?, #NUM!, #N/A) e o próprio valor caso contrário. Esta realiza o ciclo completo em ambos os motores — codificada como um token de função em .xls (BIFF8) e como uma string de fórmula<f>em .xlsx (OOXML) — para que os livros abram e sejam recalculados corretamente no Excel
Corrigido
- NA() devolve agora #N/A. A função
NA()é avaliada para o valor de erro #N/A em vez de ser reportada como não suportada, pelo que as fórmulas de tratamento de erros construídas em torno da mesma (por exemploIFERROR(NA(), 0)) funcionam como esperado
Versão 2.88.181
Adicionado
- Caixas de texto (XLSX). O novo
TXLSXWorksheet.AddTextBoxadiciona uma caixa de texto autónoma ancorada a um retângulo de célula, emitida no desenho da folha de cálculo como uma forma com um corpo de texto. Isto alinha o motor XLSX com o suporte existente para caixas de texto do motor XLS
Versão 2.88.180
Adicionado
- Constantes nomeadas de tamanho de papel (XLSX). O motor XLSX adiciona
xlsxPaperLetter,xlsxPaperA4,xlsxPaperA3e as outras constantesxlsxPaper*para a propriedadeTXLSXWorksheet.PaperSize, refletindo as constantesxlPaper*do motor XLS para que o tamanho do papel possa ser definido por nome em vez de um código de papel em bruto do Excel
Versão 2.88.179
Adicionado
- Propriedades do documento XLS. O motor XLS ganha as propriedades
IXLSWorkBookTitle,Subject,Author,Keywords,Comments,CompanyeManager, escritas nos fluxos OLE SummaryInformation / DocumentSummaryInformation de .xls (como Unicode) ao guardar, para que o painel Ficheiro > Informações do Excel as apresente. Isto alinha o motor XLS com o conjunto de propriedades do documento existente do motor XLSX
Versão 2.88.178
Adicionado
- Gráficos de área e de anel (XLSX).
TXLSXChartTypeadicionaxlsxChartAreaexlsxChartDoughnuta par dos tipos existentes de colunas, barras, linhas e circular, de modo a queTXLSXWorksheet.AddChartpossa emitir gráficos de área e de anel. O motor de gráficos XLS (BIFF8) mantém o seu conjunto de colunas / barras / linhas / circular
Versão 2.88.177
Adicionado
- Paridade da API de operações sobre intervalos em ambos os motores. O motor XLSX ganha métodos de intervalo ao estilo Excel
TXLSXRange.CopyTo,MoveTo,InsertRows,DeleteRows,InsertColseDeleteCols; o motor XLS ganha métodos de coordenadas de folha de cálculoIXLSWorksheet.CopyRange,MoveRange,InsertRows,DeleteRows,InsertColseDeleteCols. Ambos os motores expõem agora a cópia/movimentação de intervalos e a inserção/eliminação de linhas/colunas inteiras sob nomes correspondentes
Versão 2.88.176
Adicionado
- Estilos de células integrados. Os novos
TXLSXRange.ApplyBuiltinStyle(XLSX) eIXLSRange.ApplyBuiltinStyle(XLS) reproduzem o aspeto dos estilos de células nomeados padrão do Excel — Bom, Mau, Neutro, Cálculo, Célula de Verificação, Texto Explicativo, Introdução, Célula Ligada, Nota, Saída, Texto de Aviso, Título 1-4, Título, Total e Destaque 1-6 — numa única chamada ao aplicarem o preenchimento e tipo de letra correspondentes
Versão 2.88.175
Adicionado
- Ordenação de intervalos. Os novos
TXLSXRange.Sort/TXLSXWorksheet.SortRange(XLSX) eIXLSWorksheet.SortRange(XLS) reordenam as linhas de um retângulo por uma ou mais colunas-chave, de forma ascendente ou decrescente. Linhas inteiras movem-se juntas, transportando valores e formatação de células; chaves iguais mantêm a sua ordem original (ordenação estável), e as células vazias são sempre ordenadas em último lugar
Versão 2.88.174
Adicionado
OpenCSVimporta ficheiros CSV e TSV para uma folha de cálculo. Novas sobrecargas deTXLSWorkbook.OpenCSVeTXLSXWorkbook.OpenCSVleem texto delimitado com deteção automática de separador (vírgula, ponto e vírgula, tabulação ou barra vertical), deteção de codificação baseada em BOM (UTF-8 e UTF-16) e tratamento de aspas RFC 4180.Openagora encaminha ficheiros.csve.tsvpara o importador automaticamente
Alterado
- Deteção opcional do tipo de valor. Campos numéricos, datas ISO-8601 e booleanos são promovidos a valores de células tipificados por predefinição; a deteção pode ser desativada para manter cada campo como texto, preservando zeros à esquerda, longas sequências de dígitos e texto com o prefixo
=
Versão 2.88.173
Alterado
OpenODSimporta agora a visibilidade de linhas e colunas ocultas. Estilos ODStable-rowetable-columncom valorestable:visibilitytais comocollapseoufiltermapeiam agora paraRowHidden/ColHidden, incluindo colunas e linhas repetidas
Versão 2.88.172
Alterado
- A exportação HTML XLSX preserva agora o alinhamento vertical.
TXLSXWorkbook.SaveAsHTMLeTXLSXRange.SaveAsHTMLemitem regras CSSvertical-alignpara alinhamento de células superior, centrado, justificado e distribuído quandoIncludeStylesestá ativado
Versão 2.88.171
Alterado
- A exportação HTML XLSX ignora agora colunas e linhas ocultas.
TXLSXWorkbook.SaveAsHTMLeTXLSXRange.SaveAsHTMLomitem linhas marcadas porRowHidden, colunas marcadas porColHiddene colunas explícitas de largura zero da tabela gerada e<colgroup>
Versão 2.88.170
Alterado
- A exportação HTML XLSX preserva agora os limites das células. Quando os styles são incluídos,
TXLSXWorkbook.SaveAsHTMLeTXLSXRange.SaveAsHTMLemitem os limites das células como estilos CSSborder-left,border-right,border-topeborder-bottom
Versão 2.88.169
Alterado
- A exportação HTML XLSX preserva agora os segmentos de texto formatado. Quando os estilos são incluídos,
TXLSXWorkbook.SaveAsHTMLeTXLSXRange.SaveAsHTMLemitem segmentosTXLSXRichTextcomo elementos<span>escapados com estilos inline de tipo de letra, cor, ênfase e sublinhado
Versão 2.88.168
Alterado
- A exportação HTML XLSX preserva agora tamanhos explícitos de linhas e colunas. Quando os estilos são incluídos,
TXLSXWorkbook.SaveAsHTMLeTXLSXRange.SaveAsHTMLescrevem valoresColWidthexplícitos através de<colgroup>e valoresRowHeightexplícitos como estilos de altura<tr>
Versão 2.88.167
Alterado
- A exportação HTML XLSX transporta agora os comentários das células como tooltips.
TXLSXWorkbook.SaveAsHTMLeTXLSXRange.SaveAsHTMLescrevem comentários XLSX em atributostitle<td>escapados, e a exportação ao nível do livro expande os limites da sua tabela para incluir ancoragens apenas de comentários
Versão 2.88.166
Alterado
- A exportação HTML XLSX preserva agora hiperligações e imagens ancoradas.
TXLSXWorkbook.SaveAsHTMLeTXLSXRange.SaveAsHTMLenvolvem células ligadas em âncoras<a>escapadas e emitem imagens ancoradas como URIs de imagemdata:inline. A exportação ao nível do livro também expande os limites da sua tabela para incluir âncoras de hiperligações e imagens fora das células povoadas
Versão 2.88.165
Adicionado
TXLSXTablepreserva agora a visibilidade da linha de totais. A nova propriedadeTotalsRowShownescreve e lê o sinalizador OOXMLtotalsRowShownpara que as tabelas XLSX possam manter a sua linha de totais ativada ao longo dos ciclos de Gravar Como/Abrir
Versão 2.88.164
Adicionado
TXLSXWorksheettem agora auxiliares de validação de dados tipificados.AddWholeNumberValidation,AddDecimalValidation,AddDateValidation,AddTimeValidation,AddTextLengthValidationeAddCustomValidationadicionam regras XLSX comuns sem a passagem manual de valoresTXLSXDataValidationType
Versão 2.88.163
Alterado
OpenODSimporta agora hiperligações de texto ODS. Ligações ODStext:acomxlink:hrefcriam agora entradasTXLSXHyperlinks, mantêm o texto da âncora no valor da célula importada e mapeiam destinos de fragmentos, tais como#Sheet.A1, para ligações internas do livro
Versão 2.88.162
Alterado
OpenODSimporta agora comentários básicos de células. Células ODS comoffice:annotationcriam agora entradasTXLSXCommentscom o texto do comentário edc:creatorcomo autor, enquanto mantêm o texto da anotação fora do valor da célula
Versão 2.88.161
Alterado
- Demonstrações de
ApiTourcobrem agora os auxiliares de fluxo de trabalho XLSX atuais. Os exemplos Delphi e C++Builder deApiTourdemonstram agoraWriteRows,ForEachRow,PreviewAutoFilterRows,AutoFilterRowVisible,TXLSXHtmlExportOptionseOnUserFunctionExa par dos fluxos de criação, exportação e inspeção de reabertura do livro
Versão 2.88.160
Adicionado
OnUserFunctionExadiciona callbacks de fórmulas personalizadas sensíveis ao contexto.TXLSWorkbook,IXLSWorkbookeTXLSXWorkbookpodem agora receber umTXLSUserFunctionContextcom o índice da folha, linha e coluna quandoCalculatedelega uma função de folha de cálculo personalizada ou não suportada para o código da aplicação
Versão 2.88.159
Adicionado
TXLSXHtmlExportOptionsadiciona exportação HTML XLSX configurável. Sobrecargas de livro e intervaloSaveAsHTMLpodem substituir o título do documento, aplicar uma classe CSS de tabela, omitir estilos inline/padrão, suprimir o BOM UTF-8 ou emitir um fragmento de tabela sem o documento HTML envolvente
Versão 2.88.158
Adicionado
TXLSXWorksheet.AutoFilterRowVisibleePreviewAutoFilterRowsadicionam avaliação de pré-visualização de AutoFiltro. As aplicações podem testar se uma linha corresponde aos critérios armazenados de AutoFiltro XLSX da folha de cálculo ou percorrer as linhas de dados filtradas com um callback de visibilidade, sem alterar os sinalizadores ocultos de linha
Versão 2.88.157
Adicionado
- O
TXLSXWorksheet.WriteRowsadiciona saída XLSX em lote de linhas. Os chamadores podem preencher um intervalo numérico ou ao estilo A1, uma linha de cada vez, devolvendo uma matrizVariant, com salto de linha completa, cancelamento e uma contagem de linhas escritas
Versão 2.88.156
Adicionado
- O
TXLSXWorksheet.ForEachRowadiciona varrimento XLSX ao nível da linha. O callback é executado uma vez por linha carregada, reporta a linha mais as primeira e última colunas carregadas, devolve o número de linhas visitadas e suporta cancelamento
Versão 2.88.155
Alterado
- O
OpenODSimporta agora resultados escalares em cache de células de fórmula ODS. Quando uma célula de fórmula armazena valores em cache numéricos, booleanos, data ou hora semoffice:value-type, o importador mantém o valor da célula em cache enquanto deixa a sintaxe da fórmula ODS sem converter
Versão 2.88.154
Alterado
OpenODSpreserva agora os formatos de data e número básicos de ODS. Os estilos de células de tabela ODS ligados a estilos de dados de data, hora, número, percentagem ou moeda mapeiam agora para stringsNumberFormatde XLSX comoyyyy-mm-dde0.00, para que os valores importados mantenham a formatação de exibição básica
Versão 2.88.153
Alterado
- As células fundidas ODS são agora importadas como intervalos fundidos XLSX. O
OpenODSmapeiatable:number-columns-spannedetable:number-rows-spannedem células ODS paraTXLSXMergedCells, mantendo o valor na célula do canto superior esquerdo e deixando vazias as células abrangidas
Versão 2.88.152
Alterado
- Os nomes das folhas ODS podem agora ser lidos sem carregar as folhas de cálculo. O
TXLSXWorkbook.GetODSSheetNames(FileName, AList)e oGetODSSheetNames(Stream, AList)fazem o varrimento de nomes de tabelacontent.xmlde pacotes.ods, descodificam escapes XML, sintetizam nomes predefinidos para tabelas sem nome e mantêm inalterada a instância do livro de trabalho
Versão 2.88.151
Alterado
- Os registos DIMENSION do XLS clássico informam agora intervalos utilizados vazios. Quando uma folha de cálculo .xls criada no Excel declara um intervalo utilizado em
DIMENSIONmas não transporta registos de células, o HotXLS expõe agora esse intervalo através deUsedRangee preserva-o durante a abertura/gravação em vez de recorrer aA1
Versão 2.88.150
Corrigido
- As referências de fórmulas externas da era BIFF5 carregam agora corretamente. O analisador XLS clássico resolve agora os índices positivos de folhas externas do Excel5 em tokens
tRef3d/tArea3detNameX, para que as fórmulas legadas do .xls mantenham intervalos 3D qualificados por folha e referências de nomes externos durante a abertura/gravação
Versão 2.88.149
Removido
- Os registos de extensão de estilo e cálculo BIFF8 fazem agora o ciclo completo. O HotXLS preserva os registos de família
MTRSettings,ForceFullCalculation,CrErr,Uncalcedde folha de cálculo,XFCRC,DXFindependentes,StyleExteTableStylescriados no Excel durante ciclos de abertura/gravação de XLS clássicos, pelo que os metadados de recálculo e de extensão de estilo já não são descartados
Versão 2.88.148
Adicionado
- As demonstrações C++Builder correspondem agora à cobertura de exemplos do Delphi. Adicionados projetos C++Builder para
XlsTables,XlsCondFormat12eXlsCreateChart, com páginas README correspondentes e cobertura de compilação Win32/Win64
Versão 2.88.147
Removido
- As Custom Views do BIFF8 sobrevivem agora a ciclos completos de XLS clássicos. O HotXLS preserves os blocos
USERSVIEWBEGIN/USERSVIEWENDcriados no Excel nos globais do livro de trabalho e subfluxos de folhas de cálculo, incluindo registos não modelados dentro do bloco, para que as vistas personalizadas guardadas não sejam descartadas durante a abertura/gravação
Versão 2.88.146
Removido
- A visualização do livro de trabalho e os globais de extensão BIFF8 fazem agora o ciclo completo. O HotXLS preserva os registos
HIDEOBJ, de comprimento zeroTEMPLATE,TABIDeBOOKEXTcriados no Excel durante a abertura/gravação, para que a política de exibição de objetos ocultos, marcadores de modelos, identificadores de separadores de folhas e metadados de extensão do livro de trabalho não sejam descartados
Versão 2.88.145
Alterado
- O TXLSXWorkbook consegue agora importar ficheiros básicos OpenDocument Spreadsheet. O
OpenODS(FileName)e oOpenODS(Stream)leem tabelascontent.xmlde pacotes.odspara folhas de cálculo, preservando nomes de folhas, valores escalares, linhas repetidas e colunas repetidas. Estilos, fórmulas, desenhos, gráficos e funcionalidades avançadas de ODS não são convertidos
Versão 2.88.144
Alterado
- As edições de linhas e colunas XLSX atualizam agora os critérios de colunas do AutoFilter. Os métodos
TXLSXWorksheet.InsertRows,DeleteRows,InsertColseDeleteColsremapeiam agora os desviosAutoFilterColumnsColIdquando o intervalo do filtro se move e removem os critérios que fiquem dentro de colunas eliminadas
Versão 2.88.143
Alterado
- As edições de linhas e colunas XLSX atualizam agora as quebras de página manuais. Os métodos
TXLSXWorksheet.InsertRows,DeleteRows,InsertColseDeleteColsmovem agora as quebras de página de linha e coluna com a grelha editada e removem as quebras que fiquem dentro de linhas ou colunas eliminadas
Versão 2.88.142
Alterado
- As edições de linhas e colunas XLSX atualizam agora as referências de configuração de impressão. Os métodos
TXLSXWorksheet.InsertRows,DeleteRows,InsertColseDeleteColsajustam agoraPrintArea,PrintTitleRowsePrintTitleColspara que os intervalos impressos e títulos de repetição acompanhem a grelha editada
Versão 2.88.141
Alterado
- As edições de linhas e colunas XLSX atualizam agora os alvos de hiperligações internas. Os métodos
TXLSXWorksheet.InsertRows,DeleteRows,InsertColseDeleteColsajustam agora as ancoragens internasTXLSXHyperlink.Locationna folha editada e alvos internos qualificados por folha noutras partes do livro de trabalho
Versão 2.88.140
Alterado
- As edições de linhas e colunas XLSX atualizam agora as fórmulas de regras. Os métodos
TXLSXWorksheet.InsertRows,DeleteRows,InsertColseDeleteColsajustam agora as referências A1 dentro deTXLSXConditionalFormat.Formula1/Formula2eTXLSXDataValidation.Formula1/Formula2, enquanto os limiares numéricos e listas literais permanecem inalterados
Versão 2.88.139
Alterado
- As edições de linhas e colunas XLSX atualizam agora os intervalos das séries de gráficos. Os métodos
TXLSXWorksheet.InsertRows,DeleteRows,InsertColseDeleteColsajustam agoraTXLSXChartSeries.CategoriesRangeeValuesRangepara gráficos na folha editada e gráficos noutras partes que utilizem referências qualificadas por folha, mantendo os vínculos de dados dos gráficos alinhados após ciclos de guardar/reabrir
Versão 2.88.138
Alterado
- As edições de linhas e colunas XLSX atualizam agora as fórmulas das células. Os métodos
TXLSXWorksheet.InsertRows,DeleteRows,InsertColseDeleteColsajustam agora as referências A1 nas fórmulas de células sobreviventes na folha editada e fórmulas qualificadas por folha noutras partes do livro de trabalho, mantendo inalteradas as strings e as folhas não relacionadas
Versão 2.88.137
Alterado
- As edições de linhas e colunas XLSX movem agora as ancoragens de desenho. Os métodos
TXLSXWorksheet.InsertRows,DeleteRows,InsertColseDeleteColsmovem agora as ancoragens de imagem de uma célula e redimensionam ou movem ancoragens de gráfico de duas células com a grelha editada, incluindo os ciclos completos de guardar/reabrir
Versão 2.88.136
Alterado
- As edições de linhas e colunas XLSX atualizam agora os nomes definidos. Os métodos
TXLSXWorksheet.InsertRows,DeleteRows,InsertColseDeleteColsajustam agora as fórmulasTXLSXDefinedNamecom âmbito de folha e do livro de trabalho que apontam para a folha editada, preservando os marcadores A1 absolutos ao longo dos ciclos de guardar/reabrir
Versão 2.88.135
Adicionado
- As caixas de texto XLS clássicas suportam agora desvios de ancoragem de subcélula. O
TXLSTextBoxexpõeRow1Offs,Col1Offs,Row2OffseCol2Offs, e a sobrecargaSetAreacom reconhecimento de desvio persiste os desvios de ancoragem de cliente do BIFF ao longo dos ciclos de guardar/reabrir
Versão 2.88.134
Alterado
- As verificações de payload de macros XLSX têm agora um alias de propriedade apenas de leitura. O
TXLSXWorkbook.VbaProjectDefinedespelhaHasVbaProject, dando aos chamadores orientados a propriedades uma forma direta de testar se um payloadvbaProject.binestá presente
Versão 2.88.133
Alterado
- As folhas de cálculo XLSX expõem agora a limpeza do valor do intervalo diretamente. O
TXLSXWorksheet.ClearRangeValuesaceita referências A1 ou limites de linha/coluna e limpa valores/fórmulas enquanto preserva os styles, para que os chamadores não tenham de criar primeiro um wrapperTXLSXRange
Versão 2.88.132
Removido
- Os intervalos XLSX podem agora limpar o conteúdo das células com um auxiliar explícito focado no valor. O
TXLSXRange.ClearValuesremove valores e fórmulas em todo o intervalo enquanto preserva os índices de estilo, correspondendo aClearmas tornando a limpeza apenas de conteúdo mais fácil de descobrir
Versão 2.88.131
Alterado
- Os literais de validação de dados de lista XLSX escapam agora aspas duplas incorporadas. O
TXLSXDataValidations.AddListe oTXLSXWorksheet.AddListValidationduplicam os caracteres de aspas dentro do texto dos itens separados por vírgulas antes de o envolverem como uma string de fórmula do Excel, para que os valores do menu suspenso que contêm aspas façam o ciclo completo corretamente
Versão 2.88.130
Removido
- Os critérios do AutoFilter XLSX podem agora ser limpos diretamente a partir da coleção de critérios. O
TXLSXAutoFilterColumns.ClearCriteriaremove todos os critérios de filtro por coluna armazenados enquanto mantém a folha de cálculoAutoFilterRangeinalterada
Versão 2.88.129
Adicionado
- Os intervalos fundidos XLSX normalizam agora coordenadas invertidas quando adicionados. O
TXLSXMergedCells.Addarmazena intervalos na ordem canto superior esquerdo / canto inferior direito mesmo quando os chamadores passam a célula final primeiro, produzindo referências estáveis comoA2:E6
Versão 2.88.128
Adicionado
- As coleções de folhas de cálculo XLSX suportam agora a eliminação direta por nome. O
TXLSXSheetsadicionaDeleteByName, permitindo que as aplicações removam uma folha de cálculo por nome insensível a maiúsculas e minúsculas, mantendo a seleção da folha ativa consistente
Versão 2.88.127
Adicionado
- As coleções de gráficos XLSX suportam agora a pesquisa e eliminação diretas por título. O
TXLSXChartsadiciona sobrecargas aIndexOfName,FindByName,DeleteByNameeDelete, para que as aplicações possam localizar ou remover gráficos por título sem varrimentos manuais de coleções
Versão 2.88.126
Adicionado
- As coleções de links externos XLSX suportam agora a pesquisa e eliminação diretas de alvos. O
TXLSXExternalLinksadiciona sobrecargas aIndexOfTarget,FindByTarget,DeleteByTargeteDelete, para que as aplicações possam inspecionar ou remover metadados de livros de trabalho vinculados sem varrimentos manuais de coleções
Versão 2.88.125
Adicionado
- As coleções de células fundidas XLSX suportam agora a pesquisa e eliminação diretas de intervalos. O
TXLSXMergedCellsadiciona sobrecargas aIndexOfCell,FindAt,DeleteAteDeleteInRange, para que as aplicações possam inspecionar ou remover intervalos fundidos sem varrimentos manuais de coleções
Versão 2.88.124
Adicionado
- As coleções de validação de dados e formatação condicional XLSX suportam agora a pesquisa e eliminação com reconhecimento de intervalo. O
TXLSXConditionalFormatse oTXLSXDataValidationsadicionam sobrecargas aIndexOfCell,FindAt,DeleteAteDeleteInRange, para que as aplicações possam localizar ou remover regras que cubram uma célula ou intersetem um intervalo sem varrimentos manuais desqref
Versão 2.88.123
Adicionado
- As coleções de imagens XLSX suportam agora a pesquisa e eliminação diretas de ancoragem. O
TXLSXImagesadiciona sobrecargas aIndexOfCell,FindAt,DeleteAt,DeleteInRangeeDelete, para que as aplicações possam inspecionar ou remover imagens incorporadas sem varrimentos manuais de coleções
Versão 2.88.122
Adicionado
- As coleções de colunas de AutoFilter XLSX suportam agora a pesquisa e eliminação diretas. O
TXLSXAutoFilterColumnsadiciona sobrecargas aFindByColIdeDeleteByColId, para que as aplicações possam inspecionar ou remover critérios por coluna sem varrimentos manuais de coleções
Versão 2.88.121
Adicionado
- As coleções de tabelas XLSX suportam agora a pesquisa e eliminação diretas de tabelas. O
TXLSXTablesadiciona sobrecargas aIndexOfName,FindByNameeDeleteByName, para que as aplicações possam localizar ou remover tabelas nomeadas de folhas de cálculo sem varrimentos manuais de coleções
Versão 2.88.120
Adicionado
- As coleções de nomes definidos XLSX suportam agora a pesquisa e eliminação diretas de objetos. O
TXLSXDefinedNamesadiciona sobrecargas aIndexOfName(Name, SheetIndex),FindByNameeDeleteByName, para que as aplicações possam trabalhar com nomes de âmbito do livro de trabalho e da folha sem varrimentos manuais de coleções
Versão 2.88.119
Adicionado
- As coleções de hiperligações e comentários XLSX suportam agora a pesquisa e eliminação baseadas em células.
TXLSXCommentseTXLSXHyperlinksexpõemIndexOfCell,FindAt,DeleteAteDeleteInRange, para que o código da aplicação possa localizar ou remover comentários e links de folhas de cálculo sem varrimentos manuais de coleções
Versão 2.88.118
Alterado
- As demonstrações ApiTour inspecionam agora objetos de livro de trabalho XLSX reabertos. Os exemplos ApiTour do Delphi e C++Builder reabrem o livro de trabalho XLSX gerado e escrevem linhas
reopen-inspectpara nomes definidos, comentários, hiperligações, intervalos de autofiltro e critérios de autofiltro emApiTour-XLSX-Modified.xlsx
Versão 2.88.117
Removido
- Os registos do livro de trabalho de proteção de revisões e partilha de ficheiros BIFF8 fazem agora o ciclo completo. O HotXLS preserva os corpos dos registos
FILESHARING,FILESHARING2,PROT4REVePROT4REVPASScriados no Excel durante a abertura/gravação, para que os metadados de recomendação de apenas de leitura, partilha e proteção de revisões não sejam descartados
Versão 2.88.116
Alterado
- As demonstrações ApiTour cobrem agora auxiliares de objetos de livro de trabalho XLSX. Os exemplos ApiTour do Delphi e C++Builder criam um nome definido, comentário de folha de cálculo, hiperligação, intervalo de autofiltro e critérios de autofiltro, mantendo o callback existente, substituição de texto e fluxos de trabalho de exportação
Versão 2.88.115
Alterado
- As demonstrações InteractiveFeatures podem agora reabrir livros de trabalho dinâmicos XLS clássicos. Os separadores Pivot do Delphi e C++Builder conseguem abrir um livro de trabalho dinâmico XLS clássico existente, enumerar tabelas dinâmicas guardadas em cada folha de cálculo e registar a contagem de campos, contagem de campos de dados e intervalo de origem da cache de cada tabela
Versão 2.88.114
Alterado
- As demonstrações InteractiveFeatures podem agora reabrir livros de trabalho XLS clássicos para fluxos de trabalho TextBox. Os formulários Delphi e C++Builder conseguem abrir um livro de trabalho XLS clássico existente, localizar caixas de texto de desenho independentes guardadas, listá-las e continuar operações de edição, eliminação, eliminação de intervalo e gravação no ficheiro aberto
Versão 2.88.113
Alterado
- As demonstrações C++Builder incluem agora um exemplo InteractiveFeatures para fluxos de trabalho avançados de livros de trabalho. O formulário VCL fornece o mesmo caminho interativo Pivot / TextBox / Macro, com criação de tabelas dinâmicas XLS clássicas tipadas, edição de caixas de texto de desenho independentes e carregamento/exportação/limpeza do payload
vbaProject.binde XLSM mais a inspeção de módulos analisados
Versão 2.88.112
Alterado
- As demonstrações Delphi incluem agora um exemplo InteractiveFeatures para fluxos de trabalho avançados de livros de trabalho. O formulário VCL cria tabelas dinâmicas XLS clássicas tipadas, edita caixas de texto de desenho independentes e gere o carregamento/exportação/limpeza do payload
vbaProject.binde XLSM mais a inspeção de módulos analisados
Versão 2.88.111
Adicionado
- As folhas de cálculo XLS clássicas suportam agora caixas de texto de desenho autónomas. Utilize
TXLSShapes.AddTextBoxpara criar umTXLSTextBoxcom a sua própria ancoragem de linha/coluna, texto, segmentos de texto, formatação de linha/preenchimento e eliminação normal de formas sem criar um comentário de célula
Versão 2.88.110
Alterado
- As demonstrações de ApiTour cobrem agora mais padrões de automatização de livros. Os exemplos ApiTour de Delphi e C++Builder demonstram a escrita de intervalos baseada em callbacks com
WriteCells, varrimento de células carregadas comForEachCell, atualizações de modelos comFindTexteReplaceText, exportação HTML de intervalos selecionados paraApiTour-Range.htmle callbacks de fórmulas personalizadas Delphi através deOnUserFunction
Versão 2.88.109
Alterado
- As demonstrações de QuickStart mostram agora um primeiro livro mais completo. Os exemplos QuickStart de Delphi e C++Builder criam uma tabela de multiplicação estilizada com fórmulas de totais de linhas e colunas, painéis congelados e ações XLS/XLSX correspondentes; a árvore de demonstração inclui agora também páginas readme em HTML cuidadas para cada exemplo
Versão 2.88.108
Alterado
- Os intervalos XLSX têm agora auxiliares diretos de exportação HTML.
TXLSXRange.SaveAsHTML(FileName)eTXLSXRange.SaveAsHTML(Stream)exportam apenas o intervalo XLSX selecionado como uma tabela HTML em UTF-8, partilhando o escape do renderizador HTML do livro, a saída de estilo básica e o tratamento de abrangência de células unidas
Versão 2.88.107
Adicionado
- As folhas de cálculo XLSX incluem agora auxiliares de pesquisa e substituição de texto.
TXLSXWorksheet.FindTexteTXLSXWorksheet.ReplaceTextvarrem células de texto carregadas por ordem de linhas, ignoram fórmulas e valores não textuais, e suportam correspondência opcional sensível a maiúsculas e minúsculas para fluxos de trabalho de modelos
Versão 2.88.106
Alterado
- Os sinalizadores de visualização Window2 de BIFF8 preservam agora o estado personalizado de linhas de grelha e painéis congelados. O HotXLS limpa agora
fDefaultHdrquandoWindow2.icvHdrarmazena uma cor de linha de grelha personalizada, preserva ofFrozenNoSplitcriado no Excel durante a abertura/gravação e escrevefFrozenNoSplitpara a saídaFreezePanes
Versão 2.88.105
Alterado
- Os limites de fórmulas CF12 realizam agora o ciclo completo através das regras de Barra de Dados, Escala de Cores e Conjunto de Ícones de BIFF8. Os valores limite baseados em fórmulas são compilados em bytes de token de fórmula CF12 ao guardar e são restaurados para
TXLSCfValue.Valuequando um livro é reaberto
Versão 2.88.104
Alterado
- As fórmulas XLS clássicas e os limites de conjuntos de ícones emitem agora registos BIFF8 mais compactos. As constantes inteiras em fórmulas utilizam o token compacto
tIntquando se ajustam ao intervalo de inteiros não assinados BIFF, eTXLSIconSetSpec.ThresholdEqualsInclude[Index]controla agora o byte de igualdade de limite do conjunto de ícones CF12 para que os invocadores possam escolher a semântica de comparação de inclusão ou exclusão
Versão 2.88.103
Alterado
- As folhas de cálculo XLS clássicas incluem agora um auxiliar de localização de texto.
IXLSWorksheet.FindText(SearchText, Row, Col[, MatchCase])localiza a primeira célula de texto carregada correspondente, ignora fórmulas e células não textuais, e limpa as coordenadas devolvidas quando nenhuma correspondência é encontrada
Versão 2.88.102
Alterado
- As folhas de cálculo XLS clássicas incluem agora um auxiliar de substituição de texto.
IXLSWorksheet.ReplaceText(SearchText, ReplacementText[, MatchCase])substitui correspondências em células de texto carregadas, ignora fórmulas e células não textuais, e reporta a contagem de células alteradas para fluxos de trabalho de preenchimento de modelos
Versão 2.88.101
Alterado
- Os intervalos têm agora auxiliares diretos de exportação HTML.
IXLSRange.SaveAsHTML(FileName)eIXLSRange.SaveAsHTML(Stream)exportam o intervalo selecionado através do renderizador HTML existente, para que os invocadores já não necessitem de criar uma instânciaTXLSHTMLExportou passarxlHTMLexplicitamente para fragmentos de intervalo comuns
Versão 2.88.100
Alterado
TXLSWorkbook.GetSheetNames(Stream, AList)lê agora fluxos de pacotes XLSX, bem como fluxos XLS clássicos. As aplicações podem passar fluxos de memória, fluxos BLOB de bases de dados ou fluxos XLSX descarregados para a fachada clássica e receber os nomes das folhas de cálculo ordenados sem guardar primeiro num ficheiro
Versão 2.88.99
Adicionado
- As APIs de pesquisa de folha de cálculo, criação de hiperligação e seleção de múltiplas áreas são agora mais fáceis de utilizar. As coleções de folhas XLS clássicas e XLSX adicionam
TryGetSheetByName, as folhas de cálculo XLS clássicas adicionam sobrecargas de conveniênciaAddHyperlink, eIXLSWorksheet.SelectAreaspuede escrever seleções de múltiplos intervalos ativas
Versão 2.88.98
Alterado
- Os livros XLS clássicos expõem agora um alias
UserNamepara o campo guardado por.IXLSWorkbook.UserNamemapeia para o mesmo valor WRITEACCESS queLastSavedBy, para que o código que utiliza a convenção de nomenclaturaUserNamepossa ler e atualizar o nome de auditoria do livro diretamente
Versão 2.88.97
Alterado
- As folhas de cálculo XLSX partilham agora os auxiliares de varrimento de células por callback e escrita de intervalos.
TXLSXWorksheet.ForEachCellenumera células carregadas por ordem de linhas com texto de valor e fórmula, enquantoTXLSXWorksheet.WriteCellspreenche intervalos numéricos ou de estilo A1 a partir de um callback com opção de ignorar por célula e cancelamento
Versão 2.88.96
Adicionado
- As folhas de cálculo XLS clássicas suportam agora escrita de intervalos orientada por callback.
IXLSWorksheet.WriteCellspreenche um intervalo numérico baseado em 1 ou intervalo estilo A1 por ordem de linhas, permite que o callback forneça cada valor de célula, suporta a opção de ignorar por célula e pode cancelar ciclos de escrita longos mais cedo
Versão 2.88.95
Alterado
- As folhas de cálculo XLS clássicas podem agora enumerar células carregadas através de um callback.
IXLSWorksheet.ForEachCellpercorre as células da folha de cálculo existentes por ordem de linhas, passa coordenadas de folha, linha e coluna baseadas em 1 com texto de valor e fórmula, e permite que o callback cancele varrimentos longos mais cedo
Versão 2.88.94
Alterado
- O cálculo de fórmulas pode agora chamar funções definidas pela aplicação.
TXLSWorkbook.OnUserFunctioneTXLSXWorkbook.OnUserFunctionpermitem queCalculatedelegue funções de folha de cálculo personalizada ou não suportada para o código da aplicação, passando argumentos avaliados e utilizando o resultadoVariantdevolvido quando tratado
Versão 2.88.93
Adicionado
- A proteção de folhas de cálculo XLS clássicas expõe agora sinalizadores de permissão por ação.
IXLSWorksheetadicionaAllowDeleteRows,AllowInsertRows,AllowFormatCells,AllowSort,AllowAutoFiltere as restantes propriedades de permissão de SheetProtect, com opções BIFF8 escritas e lidas de volta através dos registos de proteção existentes
Versão 2.88.92
Alterado
- As cargas de dados VBA de XLS clássico têm agora auxiliares explícitos de carregamento/gravação/limpeza.
IXLSWorkbook.LoadVBAProjectFromFile,SaveVBAProjectToFile,HasVBAProjecteClearVBAProjectexpõem a carga de dados de armazenamento OLE VBA preservada, enquantoVBAProjectpermanece como a visualização de módulo só de leitura analisada
Versão 2.88.91
Alterado
- Os critérios de AutoFiltro de XLS clássico podem agora ser inspecionados através de uma coleção de campos.
IXLSWorksheet.AutoFilterColumnsexpõe a contagem atual de campos de AutoFiltro BIFF8 e itens de campo baseados em 1, incluindo o estado ativo, o operador e os valores DOPERCriteria1/Criteria2armazenados
Versão 2.88.90
Alterado
- As folhas de cálculo XLS clássicas têm agora uma configuração de critérios de AutoFiltro numa única chamada.
IXLSWorksheet.ApplyAutoFilterdefine um intervalo de AutoFiltro da folha de cálculo e escreve um critério de campo na mesma chamada, com sobrecargas de intervalo de estilo A1 e numérico baseado em 1, além de operadores opcionais de dois critérios
Versão 2.88.89
Removido
- As formas XLS clássicas podem agora ser removidas por intervalo de células.
TXLSShapes.DeleteInRangeelimina imagens ou formas ancoradas cujas ancoragens de cliente OfficeArt intersectem um intervalo de folha de cálculo baseado em 1, devolvendo a quantidade de formas removidas
Versão 2.88.88
Alterado
- Os atributos de layout de tabela da exportação HTML clássica são agora configuráveis.
TXLSHTMLExport.TableBorderWidth,CellPaddingeCellSpacingcontrolam os atributos<table>gerados para as saídas HTML simples e com estilo, assumindo por predefinição os valores zero anteriores
Versão 2.88.87
Adicionado
- A exportação HTML clássica suporta agora uma saída mínima de tabela.
TXLSHTMLExport.SimpleExportescreve uma tabela HTML simples sem classes CSS geradas, âncoras de hiperligação ou atributos de título de comentário, preservando o texto de apresentação escapado e a abrangência de células unidas
Versão 2.88.86
Alterado
- A exportação HTML clássica pode agora escrever um título de documento.
TXLSHTMLExport.Titleescreve um elemento<title>HTML escapado antes do bloco de estilo gerado, enquanto o valor vazio por predefinição mantém a saída existente inalterada
Versão 2.88.85
Alterado
- A exportação HTML clássica transporta agora os comentários das células como tooltips.
TXLSHTMLExport.Optionsinclui agoraxhCommentspor predefinição, escrevendo o texto dos comentários das células como atributostitleescapados, embora permitindo aos invocadores remover a opção para uma saída de células simples
Versão 2.88.84
Alterado
- A saída de hiperligações da exportação HTML clássica é agora configurável.
TXLSHTMLExport.Optionsassume por predefinição[xhHyperlinks]para o comportamento existente, e os invocadores podem removerxhHyperlinkspara exportar células ligadas como texto simples escapado
Versão 2.88.83
Alterado
- A exportação HTML clássica preserva agora as hiperligações das células.
SaveAsHTMLenvolve as células ligadas em etiquetas de âncora HTML, emite endereços de hiperligações como valoreshrefescapados, transporta o texto de Dica de Ecrã como atributostitleescapados e mantém o texto exibido da célula escapado dentro do link
Versão 2.88.82
Alterado
- Os livros XLS clássicos podem agora controlar o nome de utilizador guardado por.
IXLSWorkbook.LastSavedByexpõe o campo WRITEACCESS guardado por para que livros gerados ou editados possam armazenar um nome de auditoria explícito, enquanto livros de origem não editados continuam a preservar os seus metadados originais
Versão 2.88.81
Alterado
- As folhas de cálculo XLS clássicas podem agora controlar o índice da cor das linhas de grelha apresentada.
IXLSWorksheet.GridlineColorIndexexpõe o campo Window2icvHdrpara que as folhas de cálculo guardadas possam ser reabertas com uma cor de linha de grelha escolhida, mantendo inalteradas a visibilidade das linhas de grelha e as definições de impressão de linhas de grelha
Versão 2.88.80
Alterado
- Os livros XLS clássicos podem agora definir a folha ativa por índice.
IXLSWorkbook.ActiveSheetIndexexpõe uma propriedade de separador ativo baseada em 1 suportada pelo campo de folha ativa WINDOW1, permitindo que livros guardados sejam reabertos numa folha de cálculo escolhida sem alterar o primeiro separador visível
Versão 2.88.79
Alterado
- As folhas de cálculo XLS clássicas podem agora controlar estilos de contorno automáticos.
TXLSOutline.ApplyStylesexpõe o sinalizador de estilo de contorno WSBool, permitindo que as folhas de cálculo guardadas preservem ou ativem explicitamente a aplicação do estilo de contorno do Excel sem alterar os níveis de contorno ou o posicionamento do resumo
Versão 2.88.78
Alterado
- A configuração de página XLS clássica pode agora controlar quebras de página automáticas.
IXLSPageSetup.AutoPageBreaksexpõe o sinalizador de quebra de página automática WSBool da folha de cálculo, permitindo que as folhas de cálculo guardadas mantenham as quebras de página automáticas ativadas ou as desativem explicitamente, preservando as quebras de página manuais
Versão 2.88.77
Alterado
- Os livros XLS clássicos podem agora controlar o agrupamento de datas do AutoFiltro.
IXLSWorkbook.AutoFilterDateGroupingexpõe o sinalizador de agrupamento de datas Window1 com uma API booleana positiva, permitindo que livros guardados mantenham o agrupamento de filtros de datas do Excel ativado ou o desativem explicitamente
Versão 2.88.76
Alterado
- Os livros XLS clássicos podem agora definir a posição e o tamanho da janela do livro diretamente.
IXLSWorkbook.XWindow,YWindow,WindowWidtheWindowHeightexpõem os campos de geometria Window1 para que os livros guardados possam ser reabertos com um retângulo de janela escolhido
Versão 2.88.75
Alterado
- Os livros XLS clássicos podem agora guardar o estado oculto da janela do livro diretamente.
IXLSWorkbook.WindowHiddenmapeia para o sinalizador oculto Window1, permitindo que livros guardados sejam reabertos com a janela do livro oculta sem alterar a visibilidade da folha de cálculo
Versão 2.88.74
Alterado
- Os livros XLS clássicos podem agora guardar o estado minimizado da janela do livro diretamente.
IXLSWorkbook.Minimizedmapeia para o sinalizador minimizado Window1, permitindo que livros guardados sejam reabertos com a janela do livro minimizada
Versão 2.88.73
Alterado
- Os livros XLS clássicos podem agora ocultar ou mostrar a barra de deslocamento vertical diretamente.
IXLSWorkbook.ShowVerticalScrollmapeia para o sinalizadorfDspVScrollWindow1, permitindo que livros guardados abram com a barra de deslocamento vertical oculta ou visível
Versão 2.88.72
Alterado
- Os livros XLS clássicos podem agora ocultar ou mostrar a barra de deslocamento horizontal diretamente.
IXLSWorkbook.ShowHorizontalScrollmapeia para o sinalizadorfDspHScrollWindow1, permitindo que livros guardados abram com a barra de deslocamento horizontal oculta ou visível
Versão 2.88.71
Alterado
- Os livros XLS clássicos podem agora ocultar ou mostrar a barra de separadores de folhas diretamente.
IXLSWorkbook.ShowSheetTabsmapeia para o sinalizadorfDspTabsWindow1, permitindo que livros guardados abram com os separadores de folhas ocultos ou visíveis sem alterar a visibilidade da folha de cálculo
Versão 2.88.70
Alterado
- Os livros XLS clássicos podem agora definir a proporção da barra de separadores do livro diretamente.
IXLSWorkbook.TabRatioexpõe o valor Window1wTabRatiopara que os invocadores possam ajustar o espaço reservado para separadores de folhas versus a barra de deslocamento horizontal
Versão 2.88.69
Alterado
- Os livros XLS clássicos podem agora definir o primeiro separador de folha visível diretamente.
IXLSWorkbook.FirstSheetexpõe o valor Window1itabFirstcomo uma propriedade baseada em 1, para que os invocadores possam escolher qual o separador de folha que aparece na extremidade esquerda quando o Excel abre o livro
Versão 2.88.68
Alterado
- As folhas de cálculo XLS clássicas podem agora preservar e definir a visibilidade dos símbolos de contorno.
IXLSWorksheet.DisplayOutlineSymbolsmapeia para o sinalizador BIFF WINDOW2fDspGuts, permitindo que as folhas guardadas ocultem símbolos de contorno e agrupamento na vista de janela
Versão 2.88.67
Alterado
- As folhas de cálculo XLS clássicas podem agora preservar e definir a visibilidade dos cabeçalhos de linhas e colunas.
IXLSWorksheet.DisplayHeadingsmapeia para o sinalizador BIFF WINDOW2fDspRwCol, permitindo que as folhas guardadas ocultem números de linha e letras de coluna na vista de janela
Versão 2.88.66
Alterado
- As folhas de cálculo XLS clássicas podem agora preservar e definir a visualização de mostrar fórmulas.
IXLSWorksheet.DisplayFormulasmapeia para o sinalizador BIFF WINDOW2fDspFmlapara que o Excel possa abrir uma folha mostrando o texto da fórmula em vez dos resultados calculados
Versão 2.88.65
Alterado
- As folhas de cálculo XLS clássicas podem agora definir o zoom da vista Normal de forma independente.
IXLSWorksheet.NormalViewZoomexpõe o zoom Normal em cache do WINDOW2 para que os invocadores possam guardar níveis de zoom distintos enquanto uma folha está na Pré-visualização de Quebras de Página
Versão 2.88.64
Alterado
- As folhas de cálculo XLS clássicas podem agora definir o zoom da Pré-visualização de Quebras de Página diretamente.
IXLSWorksheet.PageBreakPreviewZoomexpõe o zoom de pré-visualização em cache do WINDOW2 para que os invocadores possam guardar diferentes níveis de zoom para Normal e Pré-visualização de Quebras de Página
Versão 2.88.63
Alterado
- As folhas de cálculo XLS clássicas expõem agora auxiliares de divisão de painéis.
IXLSWorksheet.SplitPanes(Width, Height)cria uma divisão móvel de painel utilizando o escritor de painel BIFF existente, eUnsplitPaneslimpa o registo do painel antes de guardar
Versão 2.88.62
Removido
- As folhas de cálculo XLS clássicas têm agora auxiliares de congelamento de painéis mais simples.
IXLSWorksheet.FreezePanes(Cols, Rows)congela as colunas esquerdas e linhas superiores solicitadas, enquantoUnfreezePanesremove o registo do painel antes de guardar
Versão 2.88.61
Alterado
- A descoberta de nomes de folhas XLS clássicas aceita agora fluxos.
TXLSWorkbook.GetSheetNames(Stream, List)lê nomes de folhas BIFF a partir de um fluxo XLS fornecido pelo invocador sem carregar o conteúdo da folha de cálculo, correspondendo ao auxiliar de nome de ficheiro para dados de livros em memória
Versão 2.88.60
Corrigido
- As coleções de folhas de cálculo expõem agora auxiliares de pesquisa direta por nome.
IXLSWorkSheets.SheetByName(Name)eTXLSXSheets.SheetByName(Name)devolvem o objeto de folha de cálculo correspondente ounil, para que os invocadores já não necessitem de resolver um índice antes de acederem a uma folha
Versão 2.88.59
Alterado
- A fachada XLSX lê agora nomes de folhas diretamente a partir de fluxos.
TXLSXWorkbook.GetSheetNames(Stream, List)lê nomes ordenados dexl/workbook.xmlsem carregar o XML da folha de cálculo, correspondendo à sobrecarga de nome de ficheiro para livros em memória e suportados por BLOB
Versão 2.88.58
Alterado
- A fachada XLSX expõe agora a descoberta rápida de nomes de folhas.
TXLSXWorkbook.GetSheetNames(FileName, List)lê nomes ordenados dexl/workbook.xmlsem carregar o XML da folha de cálculo
Versão 2.88.57
Adicionado
TXLSWorkbook.GetSheetNamessuporta agora pacotes XLSX. O método lêxl/workbook.xmla partir de ficheiros.xlsx,.xlsm,.xltxe.xltme devolve nomes de folhas ordenados sem carregar o XML da folha de cálculo
Versão 2.88.56
Alterado
- Os livros XLS clássicos podem agora ler nomes de folhas sem carregar as folhas de cálculo.
TXLSWorkbook.GetSheetNames(FileName, List)varre o fluxo global do livro e devolve nomes de folhas ordenados de ficheiros do Excel 97-2003.xls
Versão 2.88.55
Alterado
- Os critérios de AutoFiltro de intervalo de XLS clássico escrevem agora registos de filtros BIFF8.
TXLSRange.Autofilter(Field, Criteria)cria o intervalo de filtro quando necessário e emite condiçõesAUTOFILTERpara critérios de string simples, numéricos, booleanos, em branco, não vazios e com prefixo de comparação
Versão 2.88.54
Alterado
- As folhas de cálculo XLS clássicas têm agora auxiliares de AutoFiltro ao nível da folha.
IXLSWorksheet.SetAutoFilter,ClearAutoFiltereAutoFilterRangegerem intervalos pendentes de filtro BIFF8 diretamente, enquanto reutilizam oAUTOFILTERINFOexistente e o escritor de nomes de bases de dados de filtros
Versão 2.88.53
Adicionado
- As folhas de cálculo XLS clássicas expõem agora a criação de validações de dados por lista.
IXLSWorksheet.AddListValidation(Range, Items)escreve registos BIFF8DVALeDV, mantém a lista pendente visível por predefinição, suporta listas inline separadas por vírgulas e preserva as regras através dos ciclos completos deOpen/SaveAs
Versão 2.88.52
Adicionado
- O cálculo de fórmulas funciona agora de forma consistente entre os pontos de entrada XLS e XLSX.
TXLSWorkbook.Calculateaceita agora fórmulas iniciadas por igual ao estilo do Excel, tais como=SUM(A1:B1)+C1, e a fachada XLSX adicionaTXLSXWorkbook.CalculatemaisTXLSXWorksheet.Calculate. O caminho XLSX partilha o analisador e avaliador de tokens de fórmulas do HotXLS para referências de células e intervalos, células de fórmulas referenciadas, referências entre folhas e intervalos de nomes definidos com âmbito de livro ou folha
Versão 2.88.51
Adicionado
- Os intervalos XLSX suportam agora a união horizontal ao estilo do Excel.
TXLSXRange.Merge(True)escreve uma entrada<mergeCell>por linha, correspondendo ao comportamento do XLS clássicoRange.Merge(True), enquantoMergeeMerge(False)sem argumentos continuam a criar um retângulo unido de intervalo completo
Versão 2.88.50
Alterado
- O posicionamento de HeaderFooter e HFPicture do BIFF8 corresponde agora às regras internacionais do MS-XLS. O HotXLS preserva registos
HeaderFooter($089C) criados pelo Excel para texto de cabeçalho e rodapé de página par / primeira página, e reproduz registosHFPicture($0866) após as dimensões e objetos de desenho da folha de cálculo de acordo com o ABNF da folha de cálculo, para que detalhes de esquema de página sobrevivam a ciclos completos de abertura/gravação de .xls
Versão 2.88.49
Alterado
- Os segmentos de texto formatado de comentários têm agora uma API tipificada.
TXLSComment.TextRunsexpõe entries BIFF8TXOFormatRunpara que os invocadores possam inspecionar ou definir limites de tipos de letra por caráter em comentários .xls, enquanto o HotXLS ainda preserva os bytes do segmento subjacente para ciclos completos seguros
Versão 2.88.48
Alterado
- Os registos SX suplementares de tabelas dinâmicas são agora expostos através da API tipificada. O HotXLS anexa agora registos de tabelas dinâmicas BIFF8 carregados, tais como
SXIVD,SXLI,SXFormat,SXEx,SXVDEx,SXRule,SXFilteSXAddlaTXLSPivotTable.SupplementalRecordspara inspeção, enquanto continua a preservar os bytes originais em bruto para ciclos completos de gravação
Versão 2.88.47
Removido
- Valores em cache de livros externos sobrevivem agora a ciclos completos de abertura/gravação de .xls. O HotXLS preserva agora registos BIFF8
XCTeCRNanexados a entradasSUPBOOKcarregadas, pelo que os valores em cache de células para ligações de livros externos já não são descartados durante a gravação
Versão 2.88.46
Alterado
- Os níveis de contorno de estilos integrados sobrevivem agora a ciclos completos de abertura/gravação de .xls. O HotXLS lê e preserva agora o byte
STYLEiLeveldo BIFF8 para estilos integrados, pelo que os metadados de estilo RowLevel_1..7 e ColLevel_1..7 do Excel já não são repostos para a predefinição durante a gravação
Versão 2.88.45
Alterado
- Metadados de nomes definidos sobrevivem agora a ciclos completos de abertura/gravação de .xls. O HotXLS preserva agora bits de opção e bytes de atalho de registo BIFF8
NAMEcarregados, a menos que o nome definido seja editado, para que metadados de função, objeto, procedimento, expressão calculada e nome binário criados pelo Excel já não sejam limpos durante a gravação
Versão 2.88.44
Removido
- Os marcadores do livro ObProj sobrevivem agora a ciclos completos de abertura/gravação de .xls. O HotXLS preserva agora registos BIFF8
ObProjcarregados mesmo quando nenhum armazenamento VBA é exposto através do modelo de objetos, para que marcadores de projetos VBA ao nível do livro e metadados de terceiros já não sejam descartados durante a gravação
Versão 2.88.43
Alterado
- Os sinalizadores de opções das folhas de cálculo sobrevivem agora a ciclos completos de abertura/gravação de .xls. O HotXLS preserva agora bits BIFF8
WSBOOLnão modelados, tais como sinalizadores de apresentação de folha de diálogo, quebra de página automática, aplicação de estilo e calha de contorno, continuando a atualizar as definições existentes de ajustar à página e resumo do contorno através da API pública
Versão 2.88.42
Alterado
- Registos adicionais de metadados do livro sobrevivem agora a ciclos completos de abertura/gravação de .xls. O HotXLS preserva agora corpos de registo BIFF8
COUNTRY,BOOKBOOL,BACKUP,FNGROUPCOUNT,USESELFSeRECALCIDcarregados em vez de os reescrever com predefinições, mantendo estáveis os metadados de cálculo e compatibilidade ao nível do livro
Versão 2.88.41
Alterado
- As seleções de múltiplas áreas e o foco do painel ativo sobrevivem agora a ciclos completos de abertura/gravação de .xls. O HotXLS preserva agora os registos BIFF8
SELECTIONcarregados e o valor de painel ativoPANES, a menos que a seleção de folhas ou painéis seja alterada através da API, para que o foco de painel dividido/congelado e seleções de múltiplos intervalos do Excel já não sejam colapsados durante a gravação
Versão 2.88.40
Removido
- Os nomes de livros externos sobrevivem agora a ciclos completos de abertura/gravação de .xls. O HotXLS preserva agora registos BIFF8
EXTERNALNAMEcarregados e associados a entradasSUPBOOKexternas, incluindo metadados DDE/OLE/link e caudas de fórmulas, para que nomes externos e definições de ligações já não sejam descartados ao gravar
Versão 2.88.39
Alterado
- Ficheiros .xls BIFF8 protegidos por palavra-passe utilizam e leem agora registos FILEPASS RC4 CryptoAPI. O HotXLS escreve agora metadados
FILEPASSvMajor=2 ao estilo do Excel 2007/2010 para livros .xls encriptados, e lê ficheiros RC4 vMajor=1 legados e RC4 CryptoAPI vMajor=2/3/4, para que livros protegidos por palavra-passe já não falhem nem sejam despromovidos para o cabeçalho de encriptação mais antigo
Versão 2.88.38
Alterado
- Metadados de hiperligações .xls criados pelo Excel sobrevivem agora a ciclos completos de abertura/gravação. O HotXLS preserva agora o corpo do registo BIFF8
HLinkpara hiperligações carregadas, a menos que a hiperligação seja editada, mantendo estáveis os bits de opção de origemstreamVersion,hlstmftais comofIcon, dados do moniker e metadados de destino relacionados ao longo das gravações
Versão 2.88.37
Alterado
- O estado da janela do livro sobrevive agora a ciclos completos de abertura/gravação de .xls. O HotXLS lê e preserva agora a posição da janela do registo BIFF8
WINDOW1, tamanho, sinalizadores de visibilidade/ícone, primeiro separador de folha apresentado, contagem de separadores selecionados e proporção de separador-barra de deslocamento, em vez de os reescrever com predefinições em cada gravação
Versão 2.88.36
Alterado
- Utilizadores guardados por WriteAccess do BIFF8 sobrevivem agora a ciclos completos de abertura/gravação de .xls. O HotXLS lê e preserva agora o corpo de registo
$005C WRITEACCESSem vez de substituir o utilizador guardado por do Excel porHotXLS, para que os metadados de auditoria do livro permaneçam estáveis após a gravação
Versão 2.88.35
Corrigido
- Autores de comentários do Excel sobrevivem agora a ciclos completos de abertura/gravação de .xls. O campo
stAuthordo registo BIFF8Noteé agora analisado e passado para o modelo de notas de desenho em vez de ser substituído por uma string vazia, para que o autor do comentário "Criado por" escrito pelo Excel seja preservado quando o HotXLS grava o livro novamente
Versão 2.88.34
Alterado
- As opções FOPT de OfficeArt das formas são agora expostas através de um contentor de opções de baixo nível.
TXLSShape.OfficeArtOptionspermite a invocadores avançados inspecionar, definir e eliminar qualquer PID FOPT guardado comoLongWordouWideString, enquanto as APIs de alto nível existentesLine,Fill, cor e visibilidade permanecem inalteradas
Versão 2.88.33
Alterado
- Registos adicionais de regras do contentor solver de OfficeArt realizam agora o ciclo completo. Além de
msofbtConnectorRule($F012) tipificado, o HotXLS preserva agora filhos de solver que não sejam pastas, tais comoOfficeArtFArcRule($F014) eOfficeArtFCalloutRule($F017), como registos de OfficeArt em bruto dentro demsofbtSolverContainer($F005), para que desenhos avançados do Excel já não percam relações de solver que não sejam conectores durante a gravação
Versão 2.88.32
Alterado
- Os marcadores ClientData do OfficeArt já não são duplicados após a preservação de registos desconhecidos. A especificação MS-XLS define
OfficeArtClientData($F011) como um marcador de comprimento zero cujo registoObjseguinte permanece como um registo BIFF separado. A versão v2.88.32 reconhece esse marcador em vez de o capturar como uma folha SpContainer desconhecida, para que as formas analisadas emitam exatamente um marcador $F011 durante a gravação, enquanto assunções malformadas de estilo de contentor permanecem fora do caminho do XLS
Versão 2.88.31
Alterado
- As regras de conectores do OfficeArt realizam agora o ciclo completo. Os desenhos .xls criados no Excel armazenam ligações de linhas de conector em
msofbtSolverContainer($F005) com registos filhosmsofbtConnectorRule($F012). A versão v2.88.31 analisa e emite esse par $F005/$F012 através deTMsoConnectorRules, preservando a forma inicial, a forma final, a forma de conector e os locais de ligação ao longo da gravação/recarregamento. A nota de auditoria anterior listava $F121, mas a especificação MS-ODRAW defineOfficeArtFConnectorRulecomo $F012
Versão 2.88.30
Alterado
- Registos folha SpContainer de OfficeArt não reconhecidos realizam agora o ciclo completo. Os ficheiros .xls criados no Excel incorporam habitualmente Fbts folha tais como
msofbtClientTextbox($F00D),OfficeArtFPSPL($F11D) eOfficeArtUDefProp($F122) dentro de cada SpContainer de forma. A versão v2.88.30 captura folhas desconhecidas ao nível da forma comoTMsoFbtUnknowne volta a emiti-las na ordem de análise entre a formaClientAnchore o marcador final com corpo zeromsofbtClientData - Âmbito e seguimento. Outras folhas desconhecidas ao nível do desenho continuam diferidas; o caso do contentor solver de regras de conector é tratado pela versão v2.88.31. Elementos desconhecidos com formato de contentor, tais como
msofbtClientData($F011) utilizado como contentor em vez de um marcador irmão, permanecem na Fatia 3 da ronda de auditoria
Versão 2.88.29
Adicionado
- O comportamento do FtLbsData de absorver tudo limita o âmbito. O caso
$0013existente sobrepõe-se aRecLen := Len - offspara absorver todos os bytes após o cabeçalho do FtLbsData para o blob deFObjRec_LBSData, para que os subregistos que apareçam APÓS o FtLbsData (normalmente apenas FtEnd) realizem na mesma o ciclo completo através desse mecanismo sem alterações. A nova integração de FObjTailRaw visa especificamente a lacuna antes do FtLbsData onde normalmente residem o FtMacro e o ObjLinkFmla. As caixas de combinação / caixas de lista criadas recentemente via API de Desenho têmFObjTailRawvazio → saída idêntica em bytes à versão v2.88.28
Removido
- Os subregistos OBJ desconhecidos de ComboBox e ListBox realizam agora o ciclo completo. TMSOShapeComboBox.ParseObj e TMSOShapeListBox.ParseObj já analisavam de forma tipificada o FtSbs ($000C), FtSbsFmla ($000E) e FtLbsData ($0013) para campos dedicados, mas qualquer outro subregisto de ficheiro de origem (FtMacro $0004, ObjLinkFmla, FtNts $000D, etc.) que aparecesse entre o CMO e o FtLbsData era silenciosamente descartado na falha de correspondência de casos. A versão v2.88.29 adiciona o mesmo ramo else do Picture da v2.88.28, capturando o cabeçalho de 4 bytes + corpo do subregisto desconhecido para
FObjTailRaw. Ambos os métodos AddObj emitem os bytes capturados entre o corpo do CMO e o subregisto FtSbs para coincidir com a ordenação de subregistos da especificação BIFF8
Versão 2.88.28
Adicionado
- Padrão de coexistência tipificado + em bruto. Ao contrário do PictureFrame (v2.88.27), que utilizava uma troca de if/else entre a emissão tipificada e em bruto, o Picture combina ambos: os campos tipificados preservam a superfície da API (os invocadores ainda podem ajustar
ftCfValue, etc.), enquanto a cauda em bruto preserva apenas os bytes desconhecidos. Imagens criadas recentemente via API de Desenho têmFObjTailRawvazio, pelo que a saída é idêntica em bytes à versão v2.88.27
Removido
- Os subregistos OBJ desconhecidos com formato de imagem realizam agora o ciclo completo. TMSOShapePicture.ParseObj já analisava de forma tipificada o FtCf ($0007), FtPioGrbit ($0008) e FtPictFmla ($0009) para campos dedicados, mas qualquer outro subregisto de ficheiro de origem (FtMacro $0004, FtNts $000D, etc.) era silenciosamente descartado na falha de correspondência de casos. A versão v2.88.28 adiciona um ramo else que anexa o cabeçalho completo de 4 bytes + corpo dos subregistos não reconhecidos em
FObjTailRaw; TMSOShapePicture.AddObj emite depois esses bytes verbatim após o seu resultado de subregisto tipificado e antes do marcador FtEnd. Objetos de imagem do ficheiro de origem com ganchos de macro sobrevivem à nova gravação
Versão 2.88.27
Adicionado
- O ciclo completo de subregistos finais do OBJ foi alargado às formas PictureFrame. TMSOShapePictureFrame.AddObj anteriormente emitia apenas os subregistos herdados codificados FtCf ($0007, corpo $FFFF) e FtPioGrbit ($0008, corpo $0000) entre o CMO e o FtEnd. Para molduras de imagem recém-criadas, o novo código continua a emitir essas predefinições; para molduras de imagem analisadas a partir de um .xls de origem, os bytes de
FObjTailRawcapturados são emitidos verbatim no seu lugar, preservando qualquer conteúdo FtPictFmla / FtCf não predefinido / FtPioGrbit não predefinido do ficheiro de origem ao longo do ciclo de gravação
Corrigido
- Nota de investigação — O Flush autocorrige o tamanho (sz).
TMsoShapeContainer.Flushreescreve o cabeçalho de tamanho do registo Obj no momento do commit viaData.SetWord(Data.DataLength - 4, 2), o que significa que os valoressz := $1Acodificados que existiram nas implementações de AddObj do HotXLS durante anos afinal não eram bugs de especificação — o Flush corrige-os automaticamente. A versão v2.88.27 continua a calcular o sz com precisão para clareza do código-fonte, mas o comportamento em tempo de execução permanece inalterado nessa perspetiva
Versão 2.88.26
Adicionado
- O ciclo completo de subregistos finais do OBJ foi alargado às formas de Gráfico e Caixa de Seleção. A versão v2.88.25 introduziu a preservação de bytes em bruto para os bytes entre o CMO ($0015) de um registo Obj e o seu marcador FtEnd ($0000), mas apenas o TMSOShapeTextBox.AddObj emitia a cauda capturada. Esta versão aplica o mesmo padrão ao TMSOShapeChart.AddObj e TMSOShapeCheckBox.AddObj — ambos partilham a estrutura simples de emissão "CMO + FtEnd" do TextBox, pelo que a alteração é uma substituição de variável numa única linha (
sz := $1A + Word(Length(FObjTailRaw))) mais um loop de bytes verbatim antes do marcador FtEnd
Alterado
- Os subregistos finais de Gráficos (por exemplo, FtMacro para macros de objetos de gráficos incorporados) e subregistos de estado de caixas de seleção (FtCbls + FtCblsData + ObjLinkFmla, MS-XLS §2.5.140-141 / §2.5.149) sobrevivem agora à gravação/recarregamento do HotXLS. Gráficos e caixas de seleção criados recentemente através da API de Desenho continuam a emitir um CMO+FtEnd padrão de 26 bytes (idêntico em bytes à versão v2.88.25), pelo que os invocadores existentes não veem qualquer alteração de comportamento. As formas Picture / ComboBox / ListBox / PictureFrame têm a sua própria emissão dinâmica de subregistos tipificados que entra em conflito com FObjTailRaw — a sua integração fica diferida para futuros commits
Versão 2.88.25
Adicionado
- Captura de base genérica, emissão exclusiva de TextBox (R5-3 primeira fatia). O TMsoShapeContainer.ParseObj captura agora o intervalo de bytes entre o fim do corpo do CMO e o marcador FtEnd para um novo campo
FObjTailRaw: TBytesinterno; o TMSOShapeTextBox.AddObj insere esses bytes entre a sua emissão CMO e o marcador FtEnd, com o tamanho do cabeçalho do registo Obj ajustado em conformidade. Comentários criados recentemente (sem bytes de origem) mantêm o resultado idêntico em bytes à versão v2.88.24. Outras classes de formas (Picture / CheckBox / ComboBox / ListBox / Chart) herdam a captura, mas as suas sobreposições AddObj tipificadas mantêm o comportamento herdado de "sintetizar do zero" — a emissão de bytes em bruto para esses tipos de formas é diferida para futuros commits
Alterado
- Os subregistos finais do registo OBJ são agora preservados no ciclo de gravação para comentários. O registo BIFF8 Obj ($005D) encadeia uma sequência de subregistos tipificados após o CMO ($0015) obrigatório, terminado por um marcador FtEnd ($0000), de acordo com MS-XLS §2.4.181. Para formas de Nota (comentário), o bloco final é habitualmente um FtNts de 26 bytes (§2.5.149) que transporta um GUID e o sinalizador fSharedNote — ambos essenciais quando o Excel funde posteriormente comentários entre utilizadores em livros partilhados. O HotXLS anteriormente descartava todos os bytes após o CMO na leitura e emitia apenas um FtEnd vazio na escrita, pelo que qualquer FtNts do ficheiro de origem era perdido em cada nova gravação do HotXLS
Versão 2.88.24
Adicionado
- Preservação de bytes em bruto no TMSOShapeTextBox. ParseTXO captura os bytes Continue pós-texto verbatim para um novo campo interno
FFormatRunsRaw: TBytes; o Store volta a emiti-los como o Continue dos segmentos de formatação e ajusta o cabeçalhocbRunsdo registo base para coincidir. Comentários criados recentemente (viaAddComment) mantêm a saída herdada de um único segmento padrão inalterada, pelo que a saída idêntica em bytes é preservada para livros padrão. O acesso tipificado por API do Excel a segmentos de formatação individuais continua diferido — a API de comentário existente de uma única WideString permanece inalterada
Alterado
- Os comentários de células com múltiplos tipos de letra e cores realizam agora o ciclo completo. O bloco de segmentos de formatação do registo TXO BIFF8 (
rgTxoRuns+TxOLastRunde acordo com MS-XLS §2.5.272) contém as sobreposições de tipo de letra e cor por segmento que dão ao comentário o seu estilo de texto formatado. O HotXLS anteriormente descartava todo o bloco na leitura e emitia um único segmento padrão vazio + LastRun na escrita — uniformizando qualquer "Importante!" realçado a vermelho, qualquer palavra em negrito dentro do texto do comentário, numa formatação padrão uniforme em cada nova gravação do HotXLS
Versão 2.88.23
Adicionado
- Três novas propriedades de TXLSPageSetup.
PrintResolution: LongWord,PrintVResolution: LongWordeCopies: LongWord— todas assumem por predefinição os valores que o escritor codificava anteriormente (600 / 600 / 1), para que livros que nunca lhes toquem produzam uma saída idêntica em bytes à versão v2.88.22. Os definidores são limitados aHigh(Word)para que um valor do invocador demasiado grande não cause overflow na emissão
Removido
- A resolução de impressão e o número de cópias realizam agora o ciclo completo — registo Setup totalmente coberto. Três campos Word do registo Setup (
iResno desvio 12,iVResno desvio 14,iCopiesno desvio 32, de acordo com MS-XLS §2.4.257) contêm as escolhas do Excel de "Configuração de Página → Página → Qualidade de impressão" e "Número de cópias". O HotXLS anteriormente descartava os três na leitura e emitia valores codificados (600 DPI / 600 DPI / 1 cópia), pelo que qualquer resolução ou número de cópias ajustado pelo utilizador revertia silenciosamente em cada nova gravação do HotXLS
Corrigido
- Trabalho de ciclo completo do registo Setup concluído. Com esta correção, todos os campos visíveis para o utilizador do registo Setup BIFF8 ($00A1) realizam o ciclo completo de ponta a ponta — tamanho do papel / escala / número da primeira página / largura e altura de ajustar à página / orientação / ordem de impressão / preto e branco / rascunho / imprimir comentários / erros de células / resolução / cópias. Apenas os dois bits grbit de sugestão de especificação (
fNoPls,fNoOrient) permanecem não expostos, e o HotXLS escreve ambos como zero, correspondendo ao comportamento padrão do Excel
Versão 2.88.22
Adicionado
- Duas novas propriedades de TXLSPageSetup.
UseFirstPageNumber: Booleanreflete o bit (False = "Auto", predefinição);FirstPageNumber: Integercontém o valor iPageStart (predefinição 1, limitado ao intervalo de Word com sinal da especificação -32768..32767 pelo definidor). O HotXLS realiza o ciclo completo deiPageStartverbatim mesmo quandoUseFirstPageNumberé False, pelo que alternar entre Auto e personalizado no Excel preserva o último valor digitado pelo utilizador
Removido
- O "Número da primeira página" de Configuração de Página personalizado realiza agora o ciclo completo. O registo Setup BIFF8 contém a escolha de Configuração de Página → Página → "Primeira página" do livro como dois campos relacionados: o bit 7 do grbit (
fUsePage) seleciona entre a predefinição "Auto" do Excel e um número de página inicial explícito, e a Word com sinal no desvio 4 (iPageStart) guarda esse valor personalizado, de acordo com MS-XLS §2.4.257. O HotXLS anteriormente descartava ambos na leitura e emitiaiPageStart = 1com o bit limpo, pelo que um "Número da primeira página: 100" introduzido pelo utilizador revertia silenciosamente para "Auto" em cada nova gravação do HotXLS
Versão 2.88.21
Adicionado
- Nova propriedade booleana TXLSPageSetup.PrintNotesAtEnd. Assume por predefinição
False, correspondendo à predefinição da interface do Excel. O leitor e o escritor realizam o ciclo completo do bit verbatim (mesmo quandoPrintNotes = False), para que um livro com comentários temporariamente desativados mantenha a preferência "no fim da folha" para quando o utilizador os reativar — refletindo o próprio comportamento do Excel
Removido
- A escolha "Imprimir comentários no fim da folha" sobrevive agora ao ciclo de gravação. O bit 9 do grbit do registo Setup BIFF8 (
fEndNotesde acordo com MS-XLS §2.4.257) contém a distinção da lista pendente de Configuração de Página → Folha → Comentários entre "Como apresentado na folha" (a predefinição) e "No fim da folha". O HotXLS já realizava o ciclo completo de PrintNotes (bit 5) para controlar se os comentários são impressos, mas o bit 9 era descartado na leitura e emitido como zero na escrita — pelo que uma escolha do utilizador de "No fim da folha" revertia silenciosamente para "Como apresentado na folha" em cada nova gravação do HotXLS
Versão 2.88.20
Alterado
- A escolha de "Definir precisão como apresentada" do livro realiza agora o ciclo completo. O registo CalcPrecision BIFF8 ($000E) contém a caixa de seleção de todo o livro Ficheiro → Opções → Avançadas → "Definir precisão como apresentada", de acordo com MS-XLS §2.4.35. O HotXLS anteriormente não tinha um caso de encaminhador para $000E e TXLSWorkbook.StorePrecision emitia um
1codificado (= mantendo a precisão total). Uma opção "Definir precisão como apresentada" ativada pelo utilizador revertia silenciosamente para "precisão total" em cada nova gravação do HotXLS — ocultando a intenção deliberada do utilizador de que qualquer recálculo subsequente truncasse permanentemente os valores das células para as suas casas decimais formatadas
Corrigido
- Nova propriedade booleana TXLSWorkbook.UseFullPrecision. Assume por predefinição
True(corresponde à predefinição do BIFF8 e à predefinição da interface do Excel de desativada). Defini-la comoFalsereflete a ativação da opção destrutiva "precisão como apresentada" — o próprio HotXLS não trunca qualquer valor de célula no ciclo completo, mas o sinalizador é agora fielmente escrito de volta para que o próximo recálculo do Excel o respeite. Com esta correção, todos os registos de cálculo do BIFF8 (CalcCount / CalcMode / CalcPrecision / CalcDelta / CalcIter / CalcSaveRecalc) realizam o ciclo completo de ponta a ponta
Versão 2.88.19
Adicionado
- Nova propriedade booleana TXLSWorkbook.RecalcOnSave. Assume por predefinição
True(corresponde tanto à predefinição da interface do Excel como ao valor legado codificado rigidamente), para que livros que nunca toquem na propriedade mantenham o resultado idêntico ao nível dos bytes a v2.88.18. O setter aceita qualquer Boolean; o leitor normaliza bytes de origem diferentes de zero arbitrários paraTrue
Alterado
- A caixa de seleção "Recalculate workbook before saving" agora realiza o ciclo completo. O registo CalcSaveRecalc BIFF8 ($005F) transporta o booleano de Ficheiro → Opções → Guardar → "Recalculate workbook before saving" do livro, de acordo com MS-XLS §2.4.37. O HotXLS anteriormente não tinha um caso de encaminhador para $005F e StoreCalculationSettings emitia um
1codificado rigidamente — pelo que uma opção "recalc on save" desativada pelo utilizador se reativava silenciosamente em cada nova gravação do HotXLS, o que era realmente relevante para livros de cálculo manual onde o utilizador tinha deliberadamente congelado os valores das células no disco
Versão 2.88.18
Adicionado
- Três novas propriedades de TXLSWorkbook.
EnableIteration: Booleanreflete a caixa de seleção;MaxIterations: LongWordé o limite de iterações (limitado ao intervalo legal da especificação de 1..32767 pelo definidor);MaxIterationChange: Doubleé a diferença de convergência (a entrada negativa ajusta-se à predefinição da especificação de 0.001). As predefinições correspondem aos valores que o escritor costumava codificar rigidamente, para que livros que nunca toquem nas novas propriedades produzam um resultado idêntico ao nível dos bytes a v2.88.17
Alterado
- As definições de cálculo iterativo (ativar + iterações máximas + alteração máxima) agora realizam o ciclo completo. Os registos CalcIter ($0011), CalcCount ($000C) e CalcDelta ($0010) do BIFF8 transportam em conjunto o trio de opções "Ativar cálculo iterativo" do Excel (Ficheiro → Opções → Fórmulas), de acordo com MS-XLS §2.4.33 / §2.4.31 / §2.4.32. Nenhum dos três tinha um caso de encaminhador anteriormente, e o StoreCalculationSettings emitia-os com valores codificados rigidamente (desativado / 100 / 0.001). Um loop de 1000 iterações configurado pelo utilizador com uma diferença de convergência de 0.0001 era silenciosamente reposto para "iteração desativada, 100, 0.001" em cada nova gravação do HotXLS — quebrando fórmulas de referência circular e modelos financeiros sensíveis à convergência
Versão 2.88.17
Adicionado
- O modo de cálculo do livro (Manual / Automático / Automático exceto tabelas) agora realiza o ciclo completo. O registo CalcMode do BIFF8 ($000D) transporta a escolha de nível de livro "Fórmulas → Opções de Cálculo" de acordo com MS-XLS §2.4.36. O HotXLS anteriormente não tinha qualquer caso de encaminhador para $000D, pelo que o valor do ficheiro de origem era descartado no carregamento, e o escritor emitia sempre um
$0001codificado rigidamente (Automático). Um modo Manual selecionado pelo utilizador revertia silenciosamente para Automático em cada nova gravação do HotXLS — prejudicial para livros grandes onde o modo Manual é definido deliberadamente para desempenho. O novo processador ParseCalcMode armazena o valor de origem no livro e o StoreCalculationSettings emite agora o valor armazenado em vez da constante - Nova propriedade TXLSWorkbook.CalculationMode. Propriedade de leitura e escrita
LongWordque aceitaxlCalcManual(0),xlCalcAutomatic(1, predefinição) ouxlCalcAutomaticExceptTables(0xFFFF) — três novas constantes exportadas delxTNC.inc. O definidor limita os valores desconhecidos à predefinição da especificação para que um ficheiro de origem corrompido não possa deixar o livro num estado indefinido. O código existente que nunca toca na propriedade mantém a predefinição herdada "Automático", pelo que a saída anterior é idêntica ao nível dos bytes para livros padrão
Versão 2.88.16
Adicionado
- Nova propriedade TXLSPageSetup.PrintCellErrors. Propriedade de leitura e escrita
LongWordque aceitaxlPrintErrorsDisplayed(0, predefinição),xlPrintErrorsBlank(1),xlPrintErrorsDash(2) ouxlPrintErrorsNA(3) — quatro novas constantes exportadas delxTNC.inc. Os invocadores existentes de PageSetup que nunca tocam na propriedade mantêm a predefinição ("apresentados"), pelo que o resultado de impressão legado permanece inalterado
Removido
- A escolha de Configuração de Página "Erros de células como" agora sobrevive ao ciclo de gravação. O registo Setup do BIFF8 ($00A1) compacta a lista pendente de Configuração de Página → separador Folha "Erros de células como: apresentados / <em branco> / <traço> / <N/D>" nos bits 10-11 da sua palavra grbit como
iErrors, de acordo com MS-XLS §2.4.257. O HotXLS anteriormente descartava estes bits na leitura e emitia-os como zero na escrita, pelo que um livro que o utilizador tinha configurado para imprimir#DIV/0!como#N/Arevertia silenciosamente para "apresentados" após cada nova gravação do HotXLS. O leitor decodifica agoraiErrorsnuma nova propriedadeTXLSPageSetup.PrintCellErrorse o escritor reconstrói o campo a partir desta
Versão 2.88.15
Adicionado
- Seis novas propriedades de TMSOShapeTextBox para estilização explícita de comentários.
HAlignment,VAlignment,Rotation,LockText,JustLastLineeSecretEditsão expostas como propriedades de leitura e escrita em cada forma de comentário;AddCommentassume por predefinição left+top+horizontal+unlocked para que os invocadores que não as alteram mantenham o aspeto anterior
Removido
- O alinhamento e orientação dos comentários das células agora realizam o ciclo completo. O registo base TXO do BIFF8 ($01B6) transporta cinco sinalizadores tipificados na sua palavra
grbit(hAlignment, vAlignment, fLockText, fJustLast, fSecretEdit) mais uma palavrarotseparada para a orientação do texto, de acordo com MS-XLS §2.4.329. O leitor descartava anteriormente todos estes valores e o escritor fixavagrbitnuma predefinição codificada rigidamente0x0012(esquerda + topo) com a rotação sempre a 0, pelo que cada gravação repunha um comentário centrado ou rodado de volta para esquerda+topo+horizontal independentemente da origem. O leitor decodifica agora os campos tipificados no carregamento e o escritor compõegrbita partir deles, pelo que o esquema sobrevive à viagem de gravação/recarregamento
Corrigido
- O escritor TXO apresenta agora reserved4 / reserved5 ao longo dos limites dos campos da especificação. O código anterior emitia os desvios 2-9 do registo base como duas escritas longas (rot + reserved4 depois reserved5); o escritor agora divide-os em
Wordrot,Wordreserved4,Longreserved5 — o conteúdo de bytes permanece inalterado (continua totalmente a zero para formas de Nota) mas a estrutura de origem coincide agora com os desvios de campos do MS-XLS §2.4.329, tornando as futuras correções do TXO mais difíceis de desalinhar
Versão 2.88.14
Corrigido
- Desvio de TXO cchText corrigido — a correção do comprimento do comentário da v2.88.13 agora é efetivamente acionada. A versão anterior introduziu uma verificação de integridade para o registo base TXO lendo
cchTextno desvio 8, mas MS-XLS §2.4.329 colocacchTextno desvio 10 (após grbit, rot e os 6 bytes reserved / controlInfo). O desvio 8 cai dentro do long reserved5, que é sempre zero em objetos com formato de Nota, pelo que cada comentário deslizava silenciosamente para a alternativa defensiva que simplesmente restaurava o comportamento anterior à v2.88.13. A correção corrige o desvio para 10 — os comentários longos agora unem-se genuinamente através de registos Continue e os comentários curtos já não recolhem preenchimento final. Sem mais alterações de comportamento além do que a v2.88.13 deveria ter incluído
Versão 2.88.13
Alterado
- Os comentários de células longos são agora lidos de volta no seu comprimento total. O registo TXO do BIFF8 ($01B6) divide o seu corpo de texto entre o registo base e um ou mais registos Continue, com a contagem de caracteres publicada no registo base no desvio 8 como
cchText. O leitor de comentários anterior ignorava o registo base por completo, tratava DataList[1] como todo o texto e parava aí — pelo que um comentário com mais de cerca de 4100 caracteres largos era silenciosamente truncado, e um comentário mais curto cujo registo Continue continha preenchimento final recolhia lixo no fim. O leitor consome agoracchTextcomo a contagem autoritária de caracteres, percorre cada segmento Continue de acordo com MS-XLS §2.4.329 (a quebra rgb situa-se num limite de carácter, pelo que não é necessária contabilidade de caracteres parciais) e para assim que o limite é satisfeito para que o bloco de segmentos de formatação que segue o texto nunca se misture com a string. Os comentários com registos base corrompidos / em falta continuam a recorrer à alternativa legada de "todos os bytes restantes"
Versão 2.88.12
Alterado
- As strings em cache com mais de ~4100 caracteres de fórmulas que devolvem strings agora realizam o ciclo completo através de registos Continue. A v2.88.11 interligou o lado de leitura do registo String do BIFF8 ($0207) mas apenas consumiu o primeiro corpo do registo, pelo que uma string em cache cujos bytes UCS-2 transbordavam o limite BIFF de 8224 bytes e vertiam para um ou mais registos Continue ($003C) era silenciosamente truncada. O processador percorre agora toda a DataList ao nível de despacho: lê cch e fHighByte a partir do registo base, copia o corpo que aí cabe e, em seguida, concatena cada segmento Continue seguinte como bytes em bruto de acordo com a garantia de limite de carácter do MS-XLS §2.5.293 — XLUnicodeString nunca reemite fHighByte a meio da string. Cada segmento é limitado pelo orçamento de caracteres restante para que um Continue excessivo e extraviado não possa tornar o resultado mais longo do que cch. As strings de registo único (o caso comum) seguem exatamente a mesma rota rápida anterior
Versão 2.88.11
Corrigido
- Fórmulas que devolvem strings agora realizam o ciclo completo do texto em cache calculado pelo Excel. A versão anterior cobria as variantes numérica, booleana, de erro e vazia da cache FormulaValue do BIFF8 (MS-XLS §2.5.133), mas deixou a variante de string na lista de tarefas porque o seu valor em cache reside num registo String separado ($0207) que segue imediatamente o registo Formula. O ParseFormula agora lembra as coordenadas da célula quando deteta uma Formula com variante de string, e o novo processador ParseString decodifica o registo $0207 subsequente de acordo com MS-XLS §2.4.268 e encaminha a WideString para
FCachedFormulaValue.GetCellValuepode agora recorrer ao texto calculado pelo Excel sempre que o avaliador do HotXLS não o consiga reproduzir. Uma reposição defensiva no topo do ParseFormula descarta qualquer âncora pendente obsoleta para que um ficheiro de origem malformado com um registo String em falta não possa desviar incorretamente um posterior. Os registos com mais de 8224 bytes que transbordam para blocos Continue ainda recorrem ao resultado do avaliador como uma limitação conhecida
Versão 2.88.10
Adicionado
- Os registos Formula do BIFF8 agora realizam o ciclo completo com o valor em cache calculado pelo Excel. O ParseFormula costumava ignorar completamente o payload FormulaValue de 8 bytes no desvio 6, pelo que o resultado em cache de cada fórmula num .xls carregado (números, booleanos, erros, vazios) era descartado e o HotXLS tinha de reavaliar cada célula através do seu próprio motor de fórmulas. Quando esse motor não conseguia corresponder ao Excel (funções XLM não suportadas, ligações externas quebradas, fórmulas que o motor ainda não implementou), a célula tornava-se silenciosamente em branco ou zero. O leitor agora decodifica as quatro variantes numérica / booleana / erro / vazia de acordo com MS-XLS §2.5.133 e armazena-as num novo campo
TXLSCellRef.FCachedFormulaValue;GetCellValuerecorre a essa cache apenas quando o avaliador falha, para que as fórmulas escritas recentemente continuem a passar pela avaliação como anteriormente. A variante de string continua a delegar no avaliador porque o analisador do registo String subsequente ($0207) ainda não está interligado
Versão 2.88.9
Corrigido
- Os registos Formula do BIFF8 com valores insolúveis agora sinalizam fAlwaysCalc em vez do bit reserved1. Quando o avaliador do HotXLS não conseguia calcular uma fórmula no momento da gravação, o escritor costumava definir
grbit = 0x0002— bit 1, que a MS-XLS §2.4.127 reserva e indica aos leitores para ignorarem. O Excel ignorou-o devidamente, tratou o valor provisório em cache de 0 como autoritário e apresentou silenciosamente 0 em vez de recalcular. O escritor agora definegrbit = 0x0001(fAlwaysCalc, bit 0), para que o Excel execute novamente a fórmula no próximo recálculo e a célula apresente o resultado correto
Versão 2.88.8
Corrigido
- PageSetup.PrintTitleColumns / PrintTitleRows agora acionam uma exceção com entradas incorretas. Definir qualquer uma das propriedades com uma string de intervalo malformada (qualquer coisa que
ColDiapasonToValues/RowDiapasonToValuesnão conseguisse analisar) anteriormente descartava a atribuição silenciosamente — o livro mantinha o intervalo Print_Titles que já estivesse definido, ou nenhum intervalo, e o invocador não tinha forma de saber que algo correu mal. Os definidores agora acionamException.Createcom uma mensagem descritiva que nomeia o valor incorreto, correspondendo ao estilo de exceção existente nos caminhos de índice inválidoTXLSRange
Versão 2.88.7
Adicionado
- Adicionada nota de errata da ronda 2 da auditoria da especificação BIFF8. A nova verificação dos limites de campos da [MS-XLS] esclareceu que duas conclusões marcadas como P2 no relatório original (
dev-notes/XLS-BIFF8-Spec-Audit-Round2.md) não são bugs reais: o bit-15 definido no sinalizador de histórico do BOF $000080C9 belongs ao campo verXLHigh (bits 14-17, valor 2 = "Excel 2002"), não à cauda reserved1 (bits 19-31); e a utilização pelo ParseFormula de um token PtgExp inicial para detetar fórmulas partilhadas / matrizes corresponde ao que a especificação sugere e desambigua corretamente através do registo ShrFmla / Array seguinte. Ambos os itens estão agora anotados como retratados
Removido
- O campo miyRw da linha permanece agora dentro do intervalo da especificação MS-XLS. As versões de Excel anteriores a BIFF8 codificavam "usar a altura de linha predefinida do livro" aplicando uma operação OR com o bit 15 em miyRw, e o HotXLS transportou esse idioma para o escritor BIFF8 embora a MS-XLS §2.4.221 limite miyRw a 8192 twips. O Excel moderno emite um simples 255 (predefinição de 12.75 pt) no mesmo caso e utiliza o bit grbit fUnsynced para sinalizar sobreposições manuais, pelo que o truque do bit-15 fazia a saída do HotXLS divergir de ficheiros .xls autoritários (um valor de 32 959 = 0x80FF for "predefinição" estava tecnicamente fora da especificação). O escritor agora remove a operação OR e escreve 255 diretamente; o leitor ainda remove o bit 15 na entrada para compatibilidade retroativa com ficheiros do HotXLS v2.88.6 e anteriores, além de raros geradores de terceiros que copiaram o idioma do BIFF5
Versão 2.88.6
Corrigido
- As folhas de macro e módulos VBA mantêm agora o seu slot ordinal BoundSheet8. O leitor descartava anteriormente registos BoundSheet8 cujo campo
dtera 1 (folha de macro) ou 6 (módulo VBA), pelo que a coleção Sheets do HotXLS ficava desfalcada dessas entradas. Qualquer referência cruzada XTI no ExternSheet que apontasse para uma posição de folha após uma folha de macro por ordem de ficheiro resolvia-se então para a folha de cálculo HotXLS incorreta após um SaveAs. O leitor agora adiciona uma folha provisória para cada registo BoundSheet8 e armazena o bytedtem bruto numa nova propriedadeSheet.SheetTypeRaw; o escritor emite o byte original de volta. Os registos BOF de subfluxo de macro ($0040) também são tratados como subfluxos de folha de cálculo durante a análise, para que as células dentro de folhas de macro sejam preservadas em vez de serem silenciosamente absorvidas pela folha anterior
Versão 2.88.5
Removido
- O registo Row do BIFF8 realiza agora o ciclo completo de fCollapsed, fExAsc, fExDes e fPhonetic. Anteriormente, o leitor descartava fCollapsed (bit 4 do grbit) — o escritor inferia-o a partir de transições de nível de esquema em linhas vizinhas, o que classificava incorretamente linhas que o ficheiro de origem tinha explicitamente colapsado ou marcado como limites. Os três bits superiores (fExAsc a 28, fExDes a 29, fPhonetic a 30) também nunca eram lidos, e eram sempre emitidos como zero porque o escritor truncava o grbit de 4 bytes para um único slot ixfe de 16 bits. O leitor agora consome os quatro bits de acordo com MS-XLS §2.4.221 e fixa fCollapsed como explícito para que a inferência do lado do escritor já não substitua os valores definidos pelo Excel. O escritor empacota ExAsc / ExDes / Phonetic nos bits 12-14 da Word ixfe, mascarando ixfe para o intervalo de 12 bits permitido pela especificação para evitar que um índice XF colida com os novos sinalizadores. Efeitos secundários do ciclo completo: os limites superior espesso / inferior médio gerados por sugestões ExAsc / ExDes sobrevivem agora ao SaveAs do HotXLS, e a visibilidade de informações fonéticas em folhas japonesas deixa de ser reposta em cada gravação
Versão 2.88.4
Corrigido
- O bit fPaged de Window2 do BIFF8 agora sinaliza apenas a folha ativa. As versões anteriores definiam
fPaged(MS-XLS §2.4.346 bit 10) em cada folha visível, o que fazia a saída do HotXLS divergir do que o próprio Excel escreve (de acordo com a especificação, o bit significa "esta folha é atualmente apresentada na janela do livro", pelo que apenas o subfluxo da folha ativa o deve conter). Os leitores de Excel recorriam de qualquer forma aWindow1.itabCurpara identificar a folha ativa real, pelo que a utilização indevida era tolerada, mas o modo estrito do Apache POI e outras ferramentas que confiam emfPagedcomo um sinal primário veem agora a folha correta sinalizada
Versão 2.88.3
Removido
- O zoom e a cor das linhas de grelha de Window2 do BIFF8 agora realizam o ciclo completo. As versões anteriores descartavam os campos do registo WINDOW2 após o desvio 6 na leitura e emitiam zeros codificados rigidamente na escrita, pelo que qualquer zoom de folha guardado pelo Excel (75 por cento, 125 por cento, etc.) e personalização da cor das linhas de grelha revertiam para as predefinições após um SaveAs do HotXLS. O leitor agora consome
icvHdr,wScaleSLVewScaleNormalde acordo com MS-XLS §2.4.346: o zoom da vista ativa alimentaSheet.Zoome o valor da vista oposta cai num slot em cache, de modo que alternar entre Normal e Pré-visualização de Quebras de Página no Excel restaura o zoom anterior. O escritor emite oSheet.Zoomativo no slot da vista correspondente e o valor em cache na outra, além do índice de cor das linhas de grelha preservado
Versão 2.88.2
Corrigido
- Corrigido o opcode do registo HFPicture do BIFF8. Os ficheiros .xls guardados emitem agora registos de imagem de fundo do cabeçalho / rodapé com o
rt = 0x0866correto de acordo com MS-XLS §2.4.138. As versões anteriores utilizavam0x086C— o opcode de CellWatch — pelo que o Excel tentava analisar o BLIP OfficeArt incorporado como uma referência de célula vigiada e descartava silenciosamente a imagem (recusando-se por vezes a abrir o livro quando os bytes da imagem incorporada violavam a estrutura de 16 bytes esperada do CellWatch). Livros que realizam o ciclo completo de uma imagem de cabeçalho / rodapé através do HotXLS mantêm agora a imagem intacta
Versão 2.88.1
Corrigido
- Corrigido o opcode do registo Theme do BIFF8. Os ficheiros .xls guardados emitem agora o registo Theme com o
frtHeader.rt = 0x0896correto de acordo com MS-XLS §2.4.326. As versões anteriores utilizavam0x0892— o opcode de StyleExt — pelo que o Excel interpretava o payload de tema OOXML incorporado como uma extensão de estilo de célula e revertia silenciosamente para o tema integrado do Office, perdendo as cores de tema personalizadas ao realizar o ciclo completo de um livro através do HotXLS
Versão 2.88.0
Adicionado
- Os pacotes .xlsx guardados incluem agora uma parte
xl/theme/theme1.xml. O ficheiro styles.xml sempre emitiu referências<color theme="N"/>para qualquer tipo de letra / preenchimento / limite / cor de separador definidos através do caminho de índice de tema (e para cores de tema transportadas a partir de um .xlsx de entrada analisado), mas nenhuma parte de tema era gravada, pelo que as referências ficavam pendentes. O Excel tolerava a omissão revertendo silenciosamente para o seu tema "Office" integrado, mas a Validação de Ficheiros do Office sinalizava cada referência como "parte de tema em falta" e o modo estrito do Apache POI rejeitava o livro na primeira pesquisa.SaveAsemite agora o tema canónico do Office (2007+): esquema de cores de 12 slots (windowText/windowdo sistema, quatro cores predefinidas do Excel, seis acentos, duas cores de hiperligação), esquema de tipos de letra Calibri Light / Calibri, esquema de formato mínimo válido (três entradas de preenchimento / linha / efeito / preenchimento de fundo cada porCT_StyleMatrix).[Content_Types].xmlobtém umOverridecorrespondente;xl/_rels/workbook.xml.relsganha uma relaçãotheme/theme1.xmlque cai no final do intervalo de rid, pelo que os desviosXlsxFirstExternalLinkRidexistentes para folhas / sst / styles / vba / externalLinks permanecem inalterados - A atribuição direta de
Sheet.Name := '...'agora também sanitiza e elimina duplicados. A ronda 3 (v2.54.1) adicionou a aplicação de regras de nomenclatura do Excel emTXLSXSheets.Add(AName), mas o definidor da propriedadeTXLSXWorksheet.Nameera umwrite FNamesimples, pelo que o caminho de mutação mais comum que essa ronda não cobriu —lxXlsxExport.pas:122 Target.Name := Source.Nameno ciclo completo XLS → XLSX — permitia a passagem de qualquer nome que a origem BIFF8 trouxesse (caracteres proibidos: \ / ? * [ ], comprimento > 31, aspas simples envolventes,Historyreservado, duplicados insensíveis a maiúsculas e minúsculas de uma folha existente). O definidor da propriedade agora encaminha através de um novo métodoSetNameque repete a mesma lógica de eliminação de duplicados com sufixoXlsxSanitizeSheetName+' (N)'(insensível a maiúsculas e minúsculas, exclui a própria) contra a coleção de folhas do livro pai. As folhas de cálculo desanexadas (ainem sem ponteiro de retornoFWorkbook) saltam a etapa de eliminação de duplicados e apenas efetuam a sanitização —TXLSXSheets.Addaplicará a exclusividade quando a folha for anexada. Idempotente em nomes já válidos para queFSheets.Add(names[i])no lado do leitor permaneça um ciclo completo puro
Corrigido
- [MS-XLSX] ronda 4 de auditoria cruzada — parte de tema + definidor de nome da folha. Dois ajustes de seguimento visam problemas deixados após as rondas 1–3 (v2.51.0 / v2.52.0 / v2.54.1). Nenhum quebra um ponto de chamada existente; um alarga o comportamento num definidor, o outro adiciona uma nova parte emitida sempre
Versão 2.87.4
Alterado
- Fórmulas partilhadas XLS escrevem agora um corpo
ShrFmlaválido. A saída de fórmulas partilhadas BIFF8 inclui agora o bytecUseobrigatório antes da fórmula analisada partilhada, pelo que livros guardados comUseSharedFormulasjá não deslocam o fluxo de tokens da fórmula em um byte - Os metadados de filtro e estilo de tabela XLS coincidem agora com o esquema mais recente da MS-XLS.
AddTableescreve agoraLIST12comoList12TableStyleClientInfo, define os sinalizadores de AutoFilter de tabela e campo emFeature11e emite os blocosFeat11FdaAutoFiltervazios por coluna que o Excel espera - As regras CF12 de Barra de Dados / Escala de Cores / Conjunto de Ícones do BIFF8 omitem agora payloads DXF proibidos. O HotXLS segue a regra MS-XLS de que estes tipos CF12 devem conter um bloco DXF vazio, preservando as suas definições reais de regras na cauda específica do tipo CF12
Versão 2.87.3
Removido
- Os metadados de tabelas de folhas de cálculo XLS seguem agora o esquema de tabelas
Feature11do MS-XLS. A saída deAddTablepara ficheiros .xls escreve agora um cabeçalho de tabelaFeatHdr11mais payloads deFeature11TableFeatureType/Feat11FieldDataItem, remove o marcador de tabela legado$0867 FeatHdre armazena nomes de tabelas e colunas como valoresXLUnicodeString
Corrigido
- A leitura de tabelas XLS compreende agora o esquema de campos correto da especificação. O HotXLS analisa nomes de tabelas
TableFeatureType, intervalos, estado da linha de totais e legendas de campos, mantendo uma alternativa para registos de tabelas mais antigos gerados pelo HotXLS
Versão 2.87.2
Corrigido
- Os registos de continuação do BIFF8 XLS contêm agora comprimentos base corretos. Os registos XLS sobredimensionados divididos pelo escritor atualizam agora o comprimento do primeiro registo para 8224 bytes em vez de deixarem o comprimento sobredimensionado original no cabeçalho BIFF
- Tabelas de folhas de cálculo XLS grandes utilizam agora blocos
ContinueFrt11corretos de acordo com a especificação. As saídas deAddTablelargas com grandes payloads deFeature11são agora guardadas com registos de continuação$0875 ContinueFrt11e reabertas com os metadados da tabela preservados, coincidindo com o esquemaFeature11/ContinueFrt11da [MS-XLS]
Versão 2.87.1
Alterado
- O limite de grelha da folha de cálculo XLSX inclui agora a última linha e coluna do Excel.
TXLSXRange,RCRange,EntireRoweEntireColumnpermitem agora a linha 1048576 e a coluna 16384 (XFD), correspondendo aos limites de número de linha e número de coluna da [MS-XLSX]. Anteriormente, a limitação interna utilizava máximos baseados em zero, pelo queXFD1048576e intervalos que tocavam na última linha ou última coluna eram silenciosamente cortados para a linha/coluna anterior
Corrigido
- Os documentos e testes de encriptação XLSX coincidem agora com o caminho de escrita implementado. As páginas de ajuda e a suite de regressão indicam agora que
SaveAsEncryptedescreve a saída ECMA-376 Standard Encryption para palavras-passe não vazias, enquantoOpenEncryptedainda gera exceções para pacotes encriptados e recorre à alternativa para ficheiros .xlsx simples
Versão 2.87.0
Corrigido
- A gravação protegida por palavra-passe XLSX funciona agora (onda J fase 2, backlog #29).
TXLSXWorkbook.SaveAsEncrypted(FileName, Password)grava agora um ficheiro .xlsx real protegido por ECMA-376 Standard Encryption (formato Office 2007+). O pipeline [MS-OFFCRYPTO] §2.3.4 completo está implementado: a derivação de palavra-passe com 50000 iterações SHA-1 da fase 1 + blocos de verificação AES-128 + encriptação do corpo do pacote AES-CBC + serializador binárioEncryptionInfojunta-se agora aos quatro fluxos de metadados\005DataSpacesda fase 2 (Version / DataSpaceMap / DataSpaceInfo / TransformInfo) e ao escritor OLE Compound File Binary que coloca tudo num contentor CFB que o Excel abre com a palavra-passe do utilizador. Fluxo de trabalho: o invocador chamaSaveAsEncryptedcom uma palavra-passe não vazia → o HotXLS serializa o livro num zip .xlsx em texto simples na memória → encripta através de AES-128 CBC com um novo sal aleatório de 16 bytes e verificador → escreve o resultado CFB viaStgCreateDocfile. Abrir no Excel 2007+: introduz a palavra-passe → o conteúdo abre. Palavra-passe incorreta: rejeitada.OpenEncrypted(lado de desencriptação) continua a ser um item de backlog separado e continua a acionarEXlsxEncryptionNotImplementedquando lhe é entregue um ficheiro encriptado
Versão 2.86.1
Adicionado
- Encriptação Padrão XLSX — bases criptográficas (onda J fase 1, backlog #29). Duas novas unidades internas implementam a metade de cifra e derivação de chave do caminho de escrita da Encriptação Padrão ECMA-376.
lxAES.pasenvolve o AES de Brian Gladman (ligado a partir dethirdparty/Win32/aes*.obj+thirdparty/Win64/aes*.obj) e expõe pontos de entrada de encriptação AES-128 ECB de bloco único e AES-128 CBC.lxXlsxStdEncrypt.pasimplementa SHA-1 em Pascal puro (FIPS-180-4), a derivação de palavra-passe com 50000 iterações de [MS-OFFCRYPTO] §2.3.4.10, os blocos de verificação §2.3.4.7 (EncryptedVerifier+EncryptedVerifierHash), a encriptação do corpo do pacote AES-CBC (prefixo de tamanho LE de 8 bytes + preenchimento de zeros para limite de 16 bytes + IV zero) e o serializador binário §2.3.4.6EncryptionInfo.TXLSXWorkbook.SaveAsEncryptedainda geraEXlsxEncryptionNotImplemented— a fase 2 da onda J adicionará o escritor OLE Compound File Binary (fluxos de contentores\005DataSpaces) e ligará o pipeline aSaveAsEncrypted. Até lá, as novas unidades são andaimes internos da biblioteca dos quais os invocadores não devem depender
Versão 2.86.0
Removido
- Preservação do estado do ciclo completo de QueryTable e Ligação de Dados Externos (onda I, backlog #28). As QueryTables e ligações de dados externos criadas no Excel (Dados → Obter Dados Externos da Web / SQL / OLEDB) agora sobrevivem a um ciclo de gravação/abertura do HotXLS. Anteriormente, o leitor BIFF8 ignorava silenciosamente
QsiSXTag($0802),QsiSXTagExt($0810) eDConn($0876), pelo que os metadados que descrevem a consulta a montante eram descartados na gravação e a tabela degradava-se para valores simples de células. O leitor agora captura estes registos como bytes opacos e o escritor emite-os de volta no subfluxo da folha de cálculo (junto com o bloco PIVOTVIEW de acordo com MS-XLS §2.1.7.20.5) e nos globais do livro (junto com o bloco final de globais antes do EOF de acordo com §2.1.7.20.3). O HotXLS ainda não modela a estrutura QSI / DConn programaticamente — a criação de novas QueryTables a partir do código do invocador está diferida para uma onda posterior — mas livros que já as contêm já não perdem metadados de atualização na gravação. Apenas BIFF8 (.xls); BIFF5 não é afetado
Versão 2.85.1
Alterado
- Restauro da compilação da biblioteca Win32 / Win64. Duas variáveis auxiliares de itens de linha de pivô no emissor SXLI de múltiplos campos de dados da onda H5.3 foram declaradas como tipos anónimos
array of array of Wordseparados, que o compilador Delphi trata como tipos sem nome distintos e rejeita na atribuição direta comE2008 Incompatible types. A biblioteca HotXLS falhava ao compilar desde a v2.84.1 no RAD Studio 12.0 até ao 37.0. As duas variáveis são agora declaradas em conjunto para que partilhem um único tipo anónimo, corrigindo a atribuição e restaurando a saída .dcu / .bpl para os alvos Win32 e Win64. Sem alteração de comportamento em tempo de execução — os bytes SXLI emitidos são idênticos aos da v2.85.0
Versão 2.85.0
Alterado
- API de subtotais de tabela dinâmica tipificados (onda H5.4). O
TXLSPivotFieldtipificado expõe agora uma propriedade de conjuntoSubtotals: TXLSPivotSubtotalsjuntamente com oSubtotalMask: Wordem bruto existente. Os chamadores podem atribuir, por exemplo,Field.Subtotals := [xlpsSum, xlpsAverage];em vez de empacotarem manualmente em bits o campo SXVDgrbitSub. São expostos doze tipos de subtotais (xlpsDefault, xlpsSum, xlpsCount/CountA, xlpsAverage, xlpsMax, xlpsMin, xlpsProduct, xlpsCountNums, xlpsStdDev, xlpsStdDevP, xlpsVar, xlpsVarP), cada um mapeado para um único bit conforme [MS-XLS] §2.4.279. OSubtotalMaskem bruto permanece a fonte de verdade do ciclo completo — os bits reservados 12-15 são preservados na leitura/escrita. Fecha o limite conhecido da onda H4.3 “configuração row field subtotal SXVD.grbitSub indisponível a partir da API” e conclui os acompanhamentos de tabelas dinâmicas da onda H5
Versão 2.84.1
Adicionado
- Expansão SXLI de múltiplos campos de dados (onda H5.3). Quando uma tabela dinâmica tem mais do que um campo de dados E o eixo do campo de dados corresponde a um determinado eixo SXLI (
DataFieldAxisIsRow = True&& eixo de linha, ouDataFieldAxisIsRow = False&& eixo de coluna), o escritor replica agora cada combinação de produto cartesianoDataFieldCountvezes comiData = 0 .. DataFieldCount - 1, mais as linhas de total geralDataFieldCountpara que cada campo de dados tenha o seu próprio total. O eixo não hospedeiro permanece inalterado. O Excel e outros leitores renderizam agora pivôs com múltiplos campos de dados no esquema que o invocador pretendia, em vez de recorrerem à aproximação anterior de "um únicoiData = 0por combinação". Os pivôs de campo de dados único emitem uma saída idêntica ao nível dos bits à v2.84.0. A compressão delta (H5.1) dobra as combinações repetidas para cerca de 8 bytes por réplica, pelo que a expansão adiciona um desvio mínimo de bytes. Fecha o limite conhecido da onda H4.3 "SXLI de múltiplos campos de dados não expandido corretamente"
Versão 2.84.0
Alterado
- API de pre-seleção do eixo de página do pivô (onda H5.2). O
TXLSPivotFieldtipificado transporta agora uma propriedadePageItemIndexque pivôs criados programaticamente podem definir para pré-selecionar um item de cache específico no filtro do eixo de página. A predefiniçãoxlPageItemAll(= $7FFD) deixa o filtro em "(Tudo)" para que invocadores que nunca atribuamPageItemIndexse comportem de forma idêntica ao nível dos bytes à v2.83.2. O escritor SXPI ($00B6) lêField.PageItemIndexem vez de codificar rigidamente $7FFD, e o leitor tipificado preenche agoraPageItemIndexa partir do SXPI no Open para que os invocadores possam inspecionar a seleção de página guardada. Fecha o limite conhecido da onda H4.3 "pré-seleção do invocador do filtro de página indisponível a partir da API"
Versão 2.83.2
Alterado
- Registos SXLI de pivô mais pequenos via compressão delta (onda H5.1). O escritor de pivô comprime agora por delta os itens de linha SXLI utilizando o campo cSic da especificação — os índices de itens de cache iniciais de cada linha que coincidem com a linha anterior no mesmo registo SXLI são agrupados numa contagem de prefixo partilhado, e apenas os índices finais são emitidos. Os registos SXLI típicos do eixo de linha (alguns campos de linha × dezenas de itens) encolhem 30–60% sem alteração na semântica. A saída continua a ser dividida em blocos para permanecer abaixo do limite de registo BIFF de 8224 bytes. A primeira linha de cada registo SXLI emite sempre cSic = 0 (local do registo, sem referência cruzada entre registos), e a linha de total geral nunca é comprimida por delta
Versão 2.83.1
Corrigido
- As cores de preenchimento, tipo de letra e limites das células definidas via RGB realizam agora o ciclo completo através da gravação/abertura de .xls. O escritor XFExt do BIFF8 ($087D) emitia o campo ixfe de cada registo utilizando a posição do array XF em memória, mas os registos de célula correspondentes no disco gravam ixfe utilizando a ordem de SaveIndex pós-remoção. Sempre que qualquer XF anterior na tabela era removido durante a gravação (comum quando uma célula migra de um XF transitório para um XF final), o ixfe de cada XFExt terminava deslocado pelo número de slots removidos, e a cor rica associada a cada célula mudava para uma célula vizinha no recarregamento. O escritor agora resolve o SaveIndex para cada XF de slot rico e emite o ixfe correspondente no disco, para que as cores de célula RGB guardadas pelo HotXLS — preenchimento interior, cor do tipo de letra, cores dos limites — sobrevivam de forma limpa a um ciclo completo de gravação/recarregamento. Os registos XFExt para XFs que foram totalmente removidos são agora ignorados em vez de serem emitidos com um ixfe pendente
Versão 2.83.0
Alterado
- Itens de linha do pivô + estado do item de página (onda H4.3). As tabelas dinâmicas criadas programaticamente emitem agora SXLI ([MS-XLS] §2.4.275, $00B5) para ambos os eixos de linha e coluna, além de SXPI ($00B6) para o eixo de página. Isto confere fidelidade de esquema à vista de pivô: leitores que não sejam o Excel veem a ordem de apresentação exata que o escritor pretendia, pivôs grandes abrem mais rapidamente (o Excel não tem de recalcular o esquema de linhas do zero) e os filtros de página persistem com uma seleção predefinida "(Tudo)" por campo de página
- Enumeração SXLI de linha + coluna. O escritor enumera o produto cartesiano de itens de cache de campos de eixos (o campo mais interno varia mais rapidamente, correspondendo ao esquema de linhas aninhadas do Excel) e emite uma linha por combinação mais uma linha de total geral final marcada com o bit fGrandTotal de nTypes do SXLI. Cada linha utiliza cSic = 0 (sem compressão delta — mais simples à custa de alguns bytes adicionais por linha). A saída é dividida em múltiplos registos SXLI quando a contagem de linhas excede o limite BIFF de 8224 bytes; um limite de segurança de 16384 linhas evita expansões descontroladas em entradas patológicas
- Estado do eixo de página SXPI. Emitido apenas quando pelo menos um campo tem Axis = xlpfaPageField. Cada entrada tem 10 bytes (isxvd + iCache + ipos + objId) com iCache = $7FFD a sinalizar "(Tudo)" — a superfície de API para pré-selecionar itens de página específicos está diferida para a onda H5. Pivôs sem campos de página não emitem SXPI (a ABNF de folha de cálculo lista-o como opcional)
- Fecha o limite conhecido da onda H3 "SXLI / SXPI não emitidos". Combinado com H4.1 (formatos de número de DataField) e H4.2 (fluxo por registo SXDBB), a onda H4 fecha todos os três limites conhecidos no escritor de tabelas dinâmicas H3. As tabelas dinâmicas criadas via
IXLSWorksheet.AddPivotTablecontêm agora caches autónomas com metadados de esquema completos