Biblioteca Excel para RAD Studio

Leia, grave, estilize e exporte pastas de trabalho Excel sem automação do Office

HotXLS é uma biblioteca nativa em Object Pascal para aplicativos Delphi e C++Builder. Ele lida diretamente com fluxos de trabalho XLS clássicos e com a fachada XLSX atual, com APIs de pasta de trabalho, edição de planilha, formatação rica, assistentes de exportação, demonstrações e documentação offline no pacote

Instantâneo da pasta de trabalho XLS + XLSX
Valores
Estilos
Exportar
Números
Bordas
CSV
Datas
Cores do tema
HTML
Fórmulas
Validação
RTF

Instantâneo de recursos atuais

A linha atual do HotXLS combina a fachada XLS original com um mecanismo XLSX dedicado, para que o código legado possa continuar usando a API clássica enquanto novos projetos podem focar diretamente em recursos OOXML

E/S nativa de pasta de trabalho

Crie, abra, modifique e salve pastas de trabalho do Excel diretamente do código Delphi ou C++Builder. Não requer instalação do Microsoft Excel, automação COM ou processo de planilha externa

Salve templates XLTX sem macros com SaveAs(FileName, xlsxOpenXMLTemplate) ou a sobrecarga correspondente para stream, incluindo saída em streaming; o formato de salvamento padrão permanece inalterado

Fachada XLS clássica

Uma API madura para pastas de trabalho Excel 97-2003 (.xls), cobrindo todo o modelo de objeto clássico com round-trip de BIFF8 de alta fidelidade, além da leitura de arquivos legados do Excel 2.0/3.0/4.0 (BIFF2-4) pelos seus valores

  • Intervalos indexados de saída de fórmulas evitam varreduras repetidas das linhas anteriores ao reconstruir grafos de dependências grandes, incluindo referências a saídas de array e dependências que atravessam planilhas
  • O salvamento XLS clássico preserva caches de fórmula carregados ou calculados, incluindo raízes de fórmulas compartilhadas e de array; caches ausentes mantêm o fallback de cálculo, enquanto um Recalculate explícito atualiza os valores existentes
  • Referências escalares a nomes definidos fazem a interseção de intervalos de linha única ou coluna única na célula da fórmula, enquanto argumentos de intervalo agregados e de lookup mantêm os intervalos completos; o recálculo evita ciclos falsos de intervalo, prioriza caches de lookup finalizados e preserva a precisão de ponto flutuante em aritmética mista de inteiros e de ponto flutuante
  • Os round-trips XLSX retêm fórmulas dinâmicas de área de impressão, uniões de intervalo qualificadas e o índice fonético de fonte com valor zero exigido; partes geradas e preservadas compartilham declarações únicas de content-type, enquanto propriedades personalizadas e relationships de raiz opacos mantêm IDs de relationship distintos
  • O XLS clássico retém a ausência de registros de margem importados até que a margem correspondente seja definida explicitamente, sem alterar a saída padrão de margens para novas pastas de trabalho
  • A AGGREGATE trata erros fora do cache e seleções aninhadas de forma independente, com semânticas separadas de referência e de array calculado para as opções de 0 a 7
  • Os round-trips XLSX retêm XML de gráfico não modificado e offsets de âncora de gráfico, nomes, tamanhos e schemes de fonte da formatação condicional, flags explícitas de estilo e cores RGB, além de uma orientação de página não especificada quando apenas as margens estão definidas
  • Modelo de objeto completo: pasta de trabalho, planilha, intervalo, fórmula, formatação, imagem, hiperlink, nome definido, proteção, configuração de página e exportação de relatório
  • Os metadados de coluna clássicos expõem marcadores de recolhimento de contorno independentemente do estado oculto e do nível de agrupamento, preservando-os em round-trips XLS brutos, cópias de formato de coluna e cópias de planilha
  • A configuração de página clássica expõe HasSetupRecord e PrinterSettingsInitialized, preserva um registro BIFF Setup intocado byte a byte, mantém ausente o registro que chegou ausente e inicializa campos dependentes de impressora apenas quando seus setters exigem
  • A conversão de XLS para XLSX e de XLSX para XLS transporta de forma independente a configuração de página tipada e os bytes opacos do driver de impressora, mantém os campos padrão autoritativos sobre defaults privados duplicados e rejeita configurações BIFF8 não representáveis antes de gravar o destino
  • Pastas de trabalho XLS clássicas e XLSX expõem políticas SaveExternalLinkValues e UpdateLinks equivalentes; valores em cache de pastas de trabalho externas podem ser omitidos sem excluir definições de links ou caches em memória, declarações de origem inválidas e intocadas permanecem sem perdas, a conversão entre formatos mantém valores legais de política, e as preferências de atualização nunca iniciam acesso a arquivos ou à rede
  • Pastas de trabalho XLSX expõem detecção, contagem e remoção atômica exatas de task panes de Web Add-in; a remoção valida fechamentos internos limitados de relationships antes da mutação, preserva qualquer parte compartilhada por outro relationship, exclui partes de relationship próprias e entradas obsoletas de content-type, impede a ressurreição por cópia comprimida da origem e permanece idempotente, enquanto o XLS clássico e o ODS reportam a operação como não suportada, sem varrer o pacote
  • Planilhas XLS clássicas e XLSX expõem métodos equivalentes de seleção ciente de painéis e de rolagem com base um via TXLSPanePosition; TryGetWindowScroll e ScrollWindow mapeiam os eixos compartilhados superior, inferior, esquerdo e direito para o estado de exibição nativo de dois níveis de cada formato, preservam-nos em salvamento, abertura e cópia de planilha, e rejeitam atomicamente painéis ausentes ou coordenadas inválidas; snapshots de seleção permanecem ordenados, sobrepostos e de propriedade do chamador, edições estruturais de linha ou coluna inteira remapeiam todos os painéis preservando a identidade da área ativa com fallbacks determinísticos de célula sobrevivente e de célula de fronteira, e operações em áreas grandes permanecem lineares amortizadas; o XLS clássico ainda agrega registros de seleção consecutivos, preserva corpos de registros intocados ou inválidos, reporta grupos malformados via xlsDiagnosticSelectionRecordInvalid e divide seleções maiores que 1369 áreas em blocos
  • A unidade lxOutline, neutra em relação ao mecanismo, constrói geometria de contorno de linhas ou colunas a partir de spans esparsos ordenados, descobre nós summary-before ou summary-after em tempo O(log n + k) e cria planos comprimidos e idempotentes para recolhimento de nós, mudanças de nível de exibição, preservação de filhos aninhados e atualizações recursivas do estado dos filhos, sem varrer coordenadas não usadas da planilha; ambos os mecanismos de planilha expõem os mesmos métodos de consulta e controle de nós, enquanto grupos OpenDocument retêm o estado nativo de exibição e se convertem em marcadores de nós de resumo do XLSX
  • Pastas de trabalho XLS clássicas e XLSX expõem o mesmo contrato ResolveIndexedColor sem efeitos colaterais para índices de cor públicos, valores BIFF icv e cores indexadas OOXML; tokens de paleta, automático, sistema e inválidos permanecem distintos, o índice zero de borda mantém seu significado não especificado, a saída ARGB é normalizada, e cores do sistema operacional só são resolvidas por meio de um callback explícito do chamador
  • Ambos os mecanismos de pasta de trabalho expõem uma consulta NearestIndexedColor sem efeitos colaterais, apoiada por um cache OKLab ciente de mutações; ela busca apenas nas 56 entradas físicas da paleta BIFF, retorna índices públicos e físicos com metadados de distância e de correspondência exata, rejeita alfa parcial e resolve empates de distância igual para o índice público mais baixo
  • Ambos os mecanismos de pasta de trabalho expõem um inventário determinístico e sem efeitos colaterais via ScanIndexedColorUsage para todos os 56 slots físicos da paleta, incluindo valores ARGB normalizados, contagens de definição e de referência, tipos de consumidores e locks de preservação em estilos, células esparsas, objetos de planilha, gráficos, comentários e formatação condicional, sem materializar células não usadas
  • Ambos os mecanismos de pasta de trabalho expõem um preview BuildBiffPalettePlan sem mutação, que protege consumidores indexados, agrega cores diretas e de tema resolvidas por frequência renderizada, preserva correspondências exatas existentes, mapeia cores de forma determinística via OKLab e reporta identidade da origem, mudanças de slots, cobertura exata, erro ponderado e quantização de overflow sem alterar a pasta de trabalho ou o comportamento de salvamento
  • Ambos os mecanismos de pasta de trabalho podem validar e aplicar atomicamente um plano atual de 56 slots via ApplyBiffPalettePlan, rejeitando entrada obsoleta ou adulterada antes de qualquer mutação e reconstruindo o matcher perceptual uma única vez; pastas de trabalho clássicas ainda oferecem uma BiffPaletteSavePolicy explícita, cujo padrão preserva a saída histórica, cujo modo de otimização vale apenas para BIFF8 e cujos salvamentos que falham ou são cancelados restauram a paleta original
  • Ambos os mecanismos de pasta de trabalho expõem um valor validado TXLSRenderCalibration com controles de largura, altura, espaçamento multilinha, margens de célula, escala de tela e DPI de medição; a atribuição é atômica, a captura retorna um snapshot independente da operação, os defaults são determinísticos, e a configuração de runtime nunca é serializada nem usada, por si só, para redimensionar a geometria da planilha
  • Ambos os mecanismos de pasta de trabalho criam serviços IXLSRenderGeometry de propriedade da operação, cuja calibração imutável, geração da pasta de trabalho, backend, assinatura completa de fontes, largura de wrap e texto formam uma identidade limitada de cache de métricas local; a medição GDI compartilhada e as conversões de pixel, ponto, largura de coluna, MDW e largura útil de célula eliminam os caches globais de processo de DPI e de largura base do AutoAjuste, mantendo a escala de tela fora da escala de coordenadas de saída
  • O AutoAjuste no XLS clássico e no XLSX captura um snapshot de geometria de renderização por operação e aplica medição calibrada de fontes, wrapping, espaçamento de linha e margens de célula; a paginação captura a mesma geometria local da pasta de trabalho por build, de modo que os tamanhos padrão de página permaneçam estáveis, mudanças posteriores de calibração exijam um rebuild explícito, e o cálculo de página nunca grave alturas de linha ou larguras de coluna armazenadas
  • A paginação de PDF, SVG, bitmap, print-preview e viewer da pasta de trabalho identifica seu próprio backend de renderização e retém uma calibração imutável da pasta de trabalho durante toda a operação; o ajuste de texto de página compartilhado e o wrapping de SVG usam o cache de métricas limitado e local da operação, com estilos de fonte completos e identidade de charset, em vez de objetos de medição globais do processo
  • Exportações de datasets via TDataToXLS podem incluir apenas campos selecionados ou excluir campos sensíveis, mantendo cabeçalhos, linhas de dados, callbacks e larguras de coluna alinhados
  • Arrays dinâmicos XLSX automáticos redimensionam e são donos de suas células de spill, preservam obstruções do usuário com #SPILL!, suportam A1#e @ unário, e recuperam a propriedade após reabrir; fórmulas CSE fixas avaliam aritmética bruta de intervalos elemento por elemento
  • MAP de múltiplos arrays e FILTER de arrays computados preservam erros por elemento, enquanto metadados de rich value do XLSX retêm erros tipados #SPILL!e #CALC!
  • GetConversionReport inventaria perdas conhecidas do formato alvo sem mutação, e o SaveAsChecked por opt-in pode rejeitá-las antes de gravar; saída explícita de xlsxOpenXMLMacroEnabledTemplate cria pacotes XLTM e preserva o VBA existente
  • Implementações de TXLSQueryTableProvider fornecidas pelo chamador atualizam dados de query tables de esquema fixo de forma transacional, redimensionando intervalos de tabela e de filtro com resultados limitados, progresso, cancelamento e rollback
  • Consultas automáticas de banco de dados vinculam parâmetros posicionais limitados a partir de literais tipados explicitamente ou de células armazenadas da planilha, incluindo Unicode, texto vazio, datas, nulls e caches de fórmulas disponíveis; Jet e ACE preservam datas tipadas sem conversão de timestamp dependente de localidade, e a atualização aplica os resultados de forma transacional
  • Consultas Text automáticas atualizam arquivos delimitados ou de largura fixa com decodificação explícita, campos tipados, colunas puladas, linhas de cabeçalho e iniciais configuradas, e atualizações transacionais limitadas; posições de largura fixa usam unidades de código UTF-16 decodificadas, cortam preenchimento e retêm as colunas declaradas em registros curtos
  • A validação de importação verifica tipos escalares estritos, limites numéricos e de datas, unicidade composta e relações entre colunas contra valores armazenados e caches de fórmulas, com violações estruturadas endereçadas por célula e operações explícitas de anotação ou de pasta de trabalho de correção
  • CELL lê a identidade real do arquivo referenciado, formatos numéricos base suportados, alinhamento, estado de bloqueio e largura de coluna no XLS e no XLSX; INFO("recalc") lê o modo de cálculo da pasta de trabalho, enquanto informação indisponível do ambiente do aplicativo Excel retorna um erro explícito
  • Faixas de relatório repetidas clonam conversas encadeadas completas com identidades remapeadas, e a paginação nativa compartilhada renderiza spans de células mescladas, enquanto os caches de gráficos são atualizados a partir de intervalos locais suportados após edições e recálculo
  • Cálculo de fórmulas integrado com registros de funções do usuário globais do processo e locais da pasta de trabalho, semântica de override de nomes locais, invocação de handlers sem locks, callbacks OnUserFunction e OnUserFunctionEx, mais as funções comuns do Excel de texto, data, dia de trabalho, engenharia/conversão de base, bit a bit, estatística, agregação, matemática e arrays dinâmicos, incluindo operadores de array de broadcast com erros por célula, matrizes multivariáveis completas de LINEST / LOGEST, predições moldadas de TREND / GROWTH, SORT estável por linha ou coluna, SORTBY estável por linha ou coluna com múltiplas chaves, direções independentes e chaves de array, arredondamento CEILING.MATH / FLOOR.MATH ciente de arrays com broadcasting de singleton e erros locais, avaliação estável e ciente de arrays de COT / ACOT / COTH / ACOTH / CSC / CSCH / SEC / SECH com erros locais e ramos seguros contra overflow para entradas grandes, cálculos de repetição COMBINA / PERMUTATIONA com verificação de overflow, matrizes identidade MUNIT com memória limitada, conversão UNICHAR por escalares Unicode, texto de moeda tailandesa via BAHTTEXT, inspeção ISFORMULA preservando referências sem recalcular o alvo, UNIQUE por linha ou coluna indexado por hash, resultados spilled de FREQUENCY, XMATCH / XLOOKUP binários logarítmicos, detecção de argumentos opcionais com ISOMITTED, conversão de arrays ARRAYTOTEXT / VALUETOTEXT, cálculos validados de XIRR / XNPV, tempos de investimento e taxas de crescimento com PDURATION / RRI, depreciação VDB com períodos fracionários, além de bindings completos de LET e closures LAMBDA chamáveis por nomes definidos e capturados lexicalmente dentro de LET
  • O EvaluateFormulaAt, neutro em relação ao mecanismo, avalia texto de fórmula A1 ou R1C1 em um contexto explícito de célula de planilha sem mutar o modelo de células, o cache, o estado dirty, a planilha ativa ou o grafo de dependências; resultados tipados preservam erros de fórmula, arrays, valores vazios, volatilidade, cancelamento, autorização de referências externas e categorias estáveis de falha, enquanto o IXLSFormulaEvaluationTemplate reutiliza uma âncora compilada imutável entre células alvo, sob orçamentos configuráveis de comprimento de fórmula, passos, recursão e memória de arrays
  • O XLS clássico e o XLSX expõem métodos equivalentes e sem mutação de ValidateFormulaEntry, FormulaEntryPolicy em nível de pasta de trabalho e varreduras parseadas de AuditFormulaSymbols por células e nomes definidos, com varreduras esparsas mais rápidas do Classic XLS e uma travessia única de símbolos que preserva constatações independentes de funções e de nomes, escopo, deduplicação e a ordem das constatações; entrada vazia exata, fórmulas que retornam string vazia, funções desconhecidas, nomes desconhecidos, falhas de sintaxe, alvos inválidos e limitações do formato alvo permanecem distintos, a atribuição normal de fórmulas aplica rejeição estrita ou preservação atomicamente, símbolos desconhecidos preservados avaliam e propagam como #NAME?, mudanças de UDF ou de nomes definidos invalidam dependências obsoletas, o BIFF clássico armazena chamadas desconhecidas preservadas como funções de usuário add-in, a validação reconhece funções de usuário registradas ou via callback, lambdas lexicais e de nomes definidos, placeholders de relatório, links externos registrados e referências estruturadas válidas sem invocar handlers, e callbacks perigosos de funções externas ou de estilo macro permanecem bloqueados antes da avaliação dos argumentos, salvo autorização explícita
  • Inspeção sem perdas de tokens de fórmula e mutação protegida para ambos os mecanismos de pasta de trabalho via TXLSFormulaTokenStream, ParseFormulaTokens, GetFormulaTokens, FormulaTokensToText e SetFormulaTokens, com streams de propriedade do chamador, projeções somente leitura de tokens, payloads BIFF brutos, flags de referência independentes, clonagem, substituição atômica de referências, proveniência de contexto e validação antes do writeback
  • Tabelas de dados What-If de uma variável por linha, de uma variável por coluna e de duas variáveis, com recálculo isolado de dependências, erros de entrada excluída, edições estruturais, cópias de planilha e suporte a round-trip BIFF8
  • Varredura de células, localizar e substituir por modelo, preenchimento de intervalos via callback e gravação direta de arrays tipados através de ForEachCell, FindText, ReplaceText, WriteCells e dos métodos escritores numéricos, de string e variant por linha e coluna, mais o ConvertFormulasToValues de planilha inteira ou de célula única, que congela fórmulas em seus resultados calculados mantendo o valor em cache
  • Inspeção de cache de fórmulas neutra em relação ao mecanismo via IXLSFormulaCacheReader e o CreateFormulaCacheReader de cada mecanismo de pasta de trabalho reporta presença, proveniência carregada ou calculada e o tipo blank, número, data-hora, string, Boolean ou erro, sem avaliar fórmulas, invocar funções do usuário, descompilar tokens ou alterar o estado da pasta de trabalho; leases de tempo de vida invalidam leitores com segurança após a destruição da pasta de trabalho, membros de fórmulas compartilhadas retêm caches independentes, e XLSX e ODS preservam erros tipados e caches em branco explícitos entre reaberturas
  • O IXLSWorkbook.CreateReadOnlyView clássico e o IXLSXWorkbookOwner.CreateReadOnlyView XLSX criam instâncias IXLSReadOnlyWorkbookView de modelo compartilhado em tempo constante, com planilhas ativas locais da view, snapshots de células armazenadas por valor, nenhuma exposição de objetos graváveis, resultados de fórmula em cache por padrão e opt-in de texto de fórmula ou avaliação isolada de fórmulas; views concorrentes mantêm privados o estado de recursão, os caches escalares e de arrays e as fórmulas XLSX compiladas, a avaliação externa XLSX lê apenas caches de links locais do arquivo, células empacotadas permanecem não materializadas, e cada view mantém um lease de leitura que rejeita gravações no modelo antes da mutação
  • Desde a 2.384.51, TXLSReadOnlyCellSnapshot.SheetName é uma propriedade WideString legível e gravável apoiada em armazenamento UnicodeString compartilhado, o que reduz a alocação de nome por célula; a sintaxe comum de leitura e atribuição continua a mesma, mas o endereço bruto do campo e o layout anterior do registro não têm mais suporte, e quem chama precisa recompilar
  • O TXLSWorkbookWorkspace aceita adapters revogáveis de XLS clássico, XLSX ou ODS vindos do CreateWorkspaceWorkbook de cada mecanismo, preserva identidades completas de path ou IRI, resolve planilhas externas por nome antes da posição e avalia fórmulas externas por meio de registros ativos explícitos, um loader opcional controlado pelo chamador de uma vez por identidade, caches de arquivos tipados e #REF!; requisições concorrentes de carga compartilham um resultado, diagnósticos tipados expõem falhas e limites de recursos, métodos de registro por compatibilidade permanecem disponíveis nas duas fachadas de pasta de trabalho, alvos destruídos se desconectam com segurança, e o recálculo nunca abre implicitamente um arquivo ou recurso de rede
  • O TXLSWorkbookWorkspace.BuildDependencyGraph extrai um grafo de fórmulas entre pastas de trabalho a partir dos modelos registrados de XLS clássico, XLSX e ODS, mantém identidades completas de pasta de trabalho e de planilha, preserva nomes definidos simbólicos locais e externos, resolve nomes locais para suas dependências concretas quando possível e armazena intervalos retangulares grandes como intervalos compactos; árvores de intervalos de linhas aceleram a construção de arestas e a busca por dependentes, e a construção do grafo lê o armazenamento XLSX empacotado sem materializá-lo
  • O TXLSWorkbookWorkspace.Recalculate retém e marca incrementalmente como dirty o grafo de dependências compartilhado, agenda nós de fórmula acíclicos em ordem topológica entre pastas de trabalho, rejeita ciclos de fórmula verdadeiramente fortemente conectados sem rejeitar links bidirecionais inofensivos entre pastas de trabalho, e compartilha um cache de células externas local da passada com diagnósticos explícitos de hit, miss, invalidação e nós bloqueados; chamadas no mesmo workspace são serializadas, a remoção durante uma passada retorna um status de workspace alterado por meio de snapshots seguros de adapters, a destruição aguarda o cálculo ativo, e nós que falharam permanecem dirty para nova tentativa explícita
  • O CalculateAndVerify compara resultados de fórmulas armazenados com cálculos não voláteis recentes e reporta diagnósticos de planilha, célula, fórmula, valor esperado e valor real sem substituir o cache; o RecalcAndVerifyEx acrescenta a auditoria profunda com um overlay isolado de resultados do grafo de dependências, categorias tipadas de falha com call stacks limitados, cancelamento de progresso e aplicação atômica opt-in dos valores recalculados
  • As tolerâncias da auditoria profunda filtram os relatórios de divergência sem suprimir resultados intermediários recentes: fórmulas dependentes usam os valores auditados, e a aplicação explícita atualiza os caches alterados mesmo quando nenhuma divergência é reportada; as tolerâncias absoluta e relativa se aplicam ambas a resultados de ponto flutuante de dupla precisão
  • As auditorias profundas de fórmulas do XLS clássico reservam capacidade de travessia e copiam com eficiência snapshots consecutivos de cache plain-double, preservando os demais tipos Variant e o overlay isolado de avaliação
  • O recálculo clássico usa um grafo de dependências construído sob demanda, propaga entradas dirty apenas para dependentes transitivos, recalcula fórmulas voláteis em cada passada, avalia fórmulas acíclicas em ordem de dependência e aplica iteração de componentes fortemente conectados para referências circulares; desativar a precisão total arredonda os caches de fórmulas e de tabelas de dados What-If para a precisão numérica efetivamente exibida antes que os dependentes os consumam
  • Filtro Automático, validação de dados de lista, tabelas Excel com layouts sem cabeçalho e comentários por tabela, mais avaliação de fórmulas com referências estruturadas (Table[Col], spans de coluna, [#Data] / [#All] / [#Headers] / [#Totals]), extensões de formatação condicional (barra de dados com preenchimento e cores de borda para valores negativos, escala de cores, conjunto de ícones) com prioridades únicas por planilha no salvamento e regras com escopo de tabela dinâmica roteadas para o bucket de extensões do Excel 2010+, além de planilhas de gráfico
  • Caixas de texto, desenhos OfficeArt, importação tipada de tabelas dinâmicas dirigida por relationships, materialização multi-valor com filtros e agrupamentos, campos calculados, itens e membros, subtotais, totais gerais, ordenação estável, cálculos ShowDataAs clássicos e estendidos, além de comentários em rich text
  • Atualização transacional do cache local de tabelas dinâmicas resolve origens retangulares, de nomes definidos com escopo de planilha e de tabelas em sua geometria atual, exclui totais físicos de tabelas, retém a identidade de origem através de movimentações e renomeações de planilhas, preserva identidades existentes de campos e de membros através de reordenação, remoção e reintrodução da origem, mantém seleções de views compartilhadas estáveis, lida com valores de erro tipados, e rejeita esquemas sem suporte ou novos membros discretos de grupo não mapeados antes de alterar o cache
  • Materialização segura de planilhas de tabela dinâmica avalia um cache isolado, rejeita sobreposições inseguras, preserva objetos de célula e formatação, e rastreia valores exatos de propriedade através de redimensionamento, movimentação e reabertura de XLSX
  • Seleção tipada de Slicer de tabelas dinâmicas não OLAP inspeciona e altera seleções importadas de membros compartilhados, cruza filtros de views conectadas, preserva restrições independentes em outros campos, e rejeita vínculos ambíguos ou sem suporte antes da mutação
  • Round-trip de alta fidelidade BIFF8 que preserva registros criados pelo Excel, cores exatas do RGB e do tema, exibições personalizadas e metadados de compartilhamento/revisão
  • Pastas de trabalho protegidas por senha via criptografia BIFF8 RC4, além de salvamento e carga XLSX com criptografia Agile e HMAC verificado de integridade de dados sobre o pacote criptografado, e reservas clássicas de gravação (SetModifyPassword) carregando a flag de leitura recomendada, o hash da senha e o nome do usuário reservante
  • Sobrecargas de AutoAjuste de células mescladas podem atribuir o crescimento necessário de linha ou coluna ao primeiro membro, ao último membro, ou distribuí-lo igualmente pelo span mesclado, preservando o estado oculto e respeitando os limites por membro
  • Cópia de planilha entre pastas de trabalho (TXLSWorksheets.AddCopy) que clona valores de células, fórmulas (recompiladas contra os nomes de planilha do destino), formatos com cores exatas de RGB / tema, células mescladas, comentários, hiperlinks, layout de linhas e colunas, painéis congelados, proteção, configuração de página, cor de aba, formatação condicional, validações de dados, critérios de Filtro Automático, tabelas, imagens incorporadas, runs de rich text (com suas fontes migradas por valor) e planilhas de gráfico (com referências de séries recompiladas contra o destino) para outra pasta de trabalho; fórmulas cujas planilhas estejam ausentes no destino voltam a apontar para a pasta de trabalho de origem como um link externo, quando ela tem identidade de arquivo
  • Views de tabela dinâmica com cache compartilhado, criação local de Slicer de tabelas dinâmicas e remoção explícita ciente de seleção, atualização fixa de cache agrupado e previews de metadados de layout compacto nativo
  • Saída nativa transacional de planilhas de tabela dinâmica suporta layouts agrupados e subtotais de linha personalizados; campos calculados SUM locais e itens de propriedade do cache preservam somas de contexto, ordem de resolução, cálculos de exibição e filtragem suportados, enquanto estados sem suporte são rejeitados antes da mutação
  • Timelines de tabelas dinâmicas e estados de dados de Slicer fornecem filtragem local de datas protegida, ciclo de vida de views compartilhadas e atualização explícita nativa de itens sem dados
  • Providers de consulta automáticos atualizam consultas Text, ADO, ODBC e Web suportadas explicitamente, com resultados limitados e providers personalizados registrados
  • Inspeção de gráficos clássicos decodifica tabelas de preenchimento nativas do OfficeArt suportadas, expõe diâmetros de marcadores em pontos e valida o texto armazenado e as extensões de anotações antes de aplicar estado tipado; o armazenamento bruto do gráfico é retido, e a aparência portátil de gráficos clássicos permanece validada separadamente
  • Saída headless portátil captura retângulos suportados de Classic XLS ou XLSX em snapshots imutáveis e renderiza PDF, SVG e PNG no Linux e no macOS com geometria de fontes explícita, rich text, objetos de desenho modelados, imagens na célula, checkboxes booleanos, gráficos XLSX em cache suportados e gráficos BIFF8 em cache de núcleo limitados com layout declarado pelo chamador e tamanho efetivo de legenda
  • Argumentos de matrizes calculadas de texto e estatísticos preservam coerção e erros específicos da função, emparelham a covariância pelas posições originais, e respeitam os orçamentos de cálculo
  • Nomes definidos em cálculos de agregação preservam coerção escalar, de array e de referência, erros tipados, dependências e limites de recursos

Fachada XLSX moderna

Um mecanismo OOXML dedicado construído em torno do TXLSXWorkbook para pastas de trabalho Excel 2007+ (.xlsx)

  • Strings compartilhadas, estilos, desenhos, recursos de planilha, empacotamento ZIP/XML e metadados de round-trip, incluindo o tratamento de Xstring do SpreadsheetML ciente de campos, que preserva caracteres de controle e tokens literais _xHHHH_ sem reescrever a sintaxe de fórmulas
  • A configuração de página da planilha retém configurações binárias de impressora byte-exatas por meio do relationship pageSetup e da parte printerSettingsN.bin por planilha, aceita localizações de partes de origem fora do padrão, grava alvos canônicos determinísticos, copia em profundidade o payload em cópias de planilha na mesma pasta de trabalho e entre pastas de trabalho, e reporta relationships de impressora ausentes, de tipo errado ou pendentes, sem vincular uma parte binária sem relação
  • Escritores tipados numéricos, de string e variant por linha e coluna crescem a capacidade de células geometricamente entre lotes repetidos, anexam lotes forward de linhas diretamente em vetores esparsos de linhas pré-dimensionados, cortam com segurança nos limites da planilha, preservam handles estáveis em sobreposição e evitam despacho via callback
  • Leitura e gravação do OpenDocument (.ods): importe planilhas existentes através de Open / OpenODS, exporte por SaveAsODS ou SaveAs(xlsxOpenDocumentSpreadsheet), ajuste a saída com TODSExportOptions e suporte a round-trip para estilos, rich text, imagens, gráficos, validações, formatos condicionais, configuração de página, áreas de impressão, grupos de tópicos, estrutura da planilha e metadados da pasta de trabalho; as opções de exportação mantêm o recálculo normal, o cancelamento pelo progresso, os diagnósticos e a proteção contra gravação, e a saída em arquivo preserva o destino existente em caso de falha de serialização ou cancelamento
  • Regras de comparação de células e de expressões do ODS preservam estilização diferencial de fonte, fundos sólidos ou transparentes e formatos numéricos suportados em alvos completos de linha inteira, coluna inteira e largos, usando portadores compactos repetidos de células em branco; atributos de limpeza explícitos sobrevivem, a formatação base não relacionada permanece em cada célula, e cores de tema ou indexadas são exportadas como cores resolvidas
  • Importação em múltiplos formatos: OpenDocument (.ods) e CSV / TSV com reconhecimento de separadores, detecção de BOM e inferência opcional do tipo de valor
  • Detecção por assinatura de conteúdo: o DetectExcelContentFormat inspeciona os bytes iniciais de um arquivo ou stream para distinguir arquivos compostos BIFF, pacotes OOXML, pacotes OpenDocument e texto delimitado puro, independentemente da extensão do arquivo, e ambos os mecanismos de pasta de trabalho rejeitam containers incompatíveis com uma mensagem clara que indica o loader correto
  • Texto de exibição formatado: a propriedade somente leitura FormattedText (em IXLSRange e TXLSXCell) renderiza o valor da célula através do seu formato de número — separadores, porcentagens, máscaras de data/hora, máscaras multiseção, formatos booleanos — igual ao que o Excel mostra na grade
  • Monitoramento de mudanças em arquivo: o TXLSFileMonitor observa uma pasta de trabalho no disco e dispara OnFileChanged quando outro processo salva por cima, com intervalo de polling configurável e entrega do evento na thread principal ou na thread de observação; os handlers podem parar ou destruir o monitor, ou trocar o arquivo observado
  • Solicitação de senha: o evento OnPassword do mecanismo XLS clássico pede uma senha ao aplicativo quando o Open encontra uma pasta de trabalho criptografada com senha ausente ou errada, e repete a abertura
  • Pincel de formato: o TXLSXCellFormat descreve fonte, preenchimento, borda, alinhamento, formato de número e proteção uma única vez, e depois aplica em células, intervalos, linhas, colunas ou planilhas inteiras — apenas os aspectos tocados são aplicados, e os índices do pool são resolvidos uma vez por aplicação para uma formatação em massa rápida
  • Linhas por streaming unificadas: o TXLSRowCursor percorre fontes .xls, .xlsx, .xlsm, .ods, CSV ou TSV linha por linha (FindFirst / FindNext) mantendo em memória apenas a linha projetada atual ou o template de repetição do ODS, empurrando limites de linha e seleção de colunas antes da alocação de valores, preservando resultados de fórmulas em cache e blanks estilizados armazenados, distinguindo a presença de fórmula da disponibilidade do texto da fórmula, suprimindo opcionalmente o texto da fórmula, pulando células covered do ODF, saltando diretamente entre colunas selecionadas em spans repetidos do ODS, decodificando BOMs UTF-8 ou UTF-16 e registros de texto multilinha entre aspas, detectando delimitadores de vírgula, ponto e vírgula, tab ou pipe, e oferecendo busca ValueByCol em tempo constante; estados explícitos de ciclo de vida, cancelamento idempotente, propriedade do stream emprestada ou transferida, views de linha zero-copy com verificação de geração, PeakRowBufferedBytes e SheetPassesStarted tornam varreduras longas observáveis e seguras, enquanto o TXLSForwardReader adapta os mesmos backends para callbacks de planilha e de célula com base um, sem abrir partes de planilha puladas
  • Progresso e diagnósticos: pastas de trabalho XLS clássicas e XLSX oferecem callbacks de trabalho mais callbacks begin/work/end com cancelamento, enquanto IXLSWorkbookProgress e TXLSXWorkbook.Diagnostics expõem códigos estáveis, severidade, operação, contexto de planilha ou pacote, valores de retorno nativos e detalhes de exceções
  • Salvamentos seguros contra falhas: falhas de commit de planilha clássica, gráfico, extensão de estilo, VBA, control-stream, armazenamento e saída propagam ao chamador, enquanto a saída em disco de XLS, XLSX e ODS é preparada em etapas antes da substituição atômica do destino
  • A substituição de destino no Windows tolera handles de metadados e de leitores que permitem exclusão em sistemas de arquivos com suporte a renomeação POSIX, enquanto leitores existentes retêm os bytes originais; acesso de exclusão, locks de não compartilhamento de exclusão e proteção somente leitura são verificados antes de um único commit, sem nova tentativa de salvamento, e sistemas de arquivos mais antigos ou sem suporte retêm o caminho de commit legado
  • Diagnósticos acionáveis de salvamento de arquivos: TXLSXWorkbook.SaveAs(FileName) e sua sobrecarga com formato explícito preservam o erro nativo do Windows quando a substituição do destino falha, com código de diagnóstico 1005 e o destino original mantido intacto
  • Armazenamento compacto de células e estilos: células XLSX vivem em blocos de 256 linhas com handles públicos estáveis e serialização organizada por linha, amigável ao cache; entradas de linha não carregam tag de payload redundante, e mudanças de valor, fórmula e rich text evitam reclassificação de índice; estilos de célula importados resolvem através de um único array cellXf imutável de índice direto; e a compactação automática do pool de estilos descarta fontes, preenchimentos, bordas, formatos de número, alinhamentos e proteções não referenciados antes de cada salvamento
  • Overlays de estilo por intervalo: a formatação de linha, coluna e retângulo permanece compacta sem materializar objetos de célula vazios, resolve sob demanda no acesso à célula, sobrevive a edições estruturais e faz round-trip como entradas compactas de coluna, de linha e de células apenas de estilo
  • Salvamento normal com linhas em streaming: o StreamingWrite (o padrão) grava cada linha da planilha diretamente no stream deflate do pacote, de modo que o pico de memória acompanhe a maior linha individual, enquanto strings compartilhadas e partes XML auxiliares fluem uma entrada por vez através de um único serializador UTF-8 reutilizável
  • Abertura somente de metadados: o TXLSXWorkbook.MetadataOnly interpreta propriedades da pasta de trabalho, nomes definidos, nomes e estados de visibilidade de planilhas, estilos, tema, connections e links externos, mas pula o XML de células das planilhas, além de strings compartilhadas, dados de comentários e de pessoas, relationships de planilha, desenhos, gráficos, tabelas, query tables, tabelas dinâmicas e payloads opacos alcançáveis pelas planilhas, para uma descoberta rápida e de baixa memória de propriedades e nomes em pastas de trabalho grandes
  • Os slots de pastas de trabalho externas no XLSX seguem a ordem de declaração do workbook.xml e retêm placeholders vazios para relationships quebrados, mantendo estáveis as referências [N] posteriores em fórmulas entre carga e salvamento
  • Carregamento seletivo de planilhas: o TXLSXWorkbook.SelectedSheets permite que o Open interprete o XML de células apenas para planilhas nomeadas, enquanto as demais mantêm nome e visibilidade, mas sem células; chame LoadSheet(Index) para materializar sob demanda uma planilha pulada a partir do arquivo original
  • Cópia incremental de partes comprimidas: o TXLSXWorkbook.PreserveRawParts abre um arquivo de origem privado e validado por operação de SaveAs e copia entradas inalteradas de tema, projeto VBA, connection, link externo, imagem, gráfico, tabela dinâmica, pivot cache e entradas opacas alcançáveis por relationships com seus payloads comprimidos originais; salvamentos em arquivo bem-sucedidos tornam-se a próxima baseline limpa, enquanto pastas de trabalho suportadas por stream, arquivos de origem alterados, payloads modificados, métodos de compressão não suportados e divergências de tamanho comprimido usam fallback de serialização transacional ou caminhos de rejeição
  • Preservação de extensões da pasta de trabalho: a abertura e o salvamento XLSX retêm declarações estranhas de namespace na raiz da pasta de trabalho, atributos de markup-compatibility, payloads completos de <extLst> em nível de pasta de trabalho e seus relationships desconhecidos, enquanto planilhas, nomes, views, propriedades de cálculo e pivot caches tipados permanecem editáveis; referências de relationship são remapeadas quando os IDs gerados conflitam
  • Slicers: Worksheet.Slicers.Add(Table, ColumnName) cria slicers de tabela (Excel 2013+) de ponta a ponta — cache de slicer, nome definido reservado, extensão de planilha e âncora de desenho incluídos — com controle de posicionamento, legenda, número de colunas, estilo e altura de linha; pastas de trabalho com slicers criados pelo Excel (de tabela ou de tabela dinâmica) fazem round-trip intactos na abertura e no salvamento, reproduzindo partes e âncoras não modificadas byte a byte enquanto o restante da pasta de trabalho permanece totalmente editável
  • Múltiplas janelas da pasta de trabalho: o TXLSXWorkbook.WorkbookViews expõe uma coleção ordenada com operações de adicionar, inserir, excluir, mover e limpar, estado tipado de visibilidade e geometria, atributos e extensões desconhecidos editáveis, e remapeamento de workbookViewId de planilha; as propriedades estabelecidas de janela única permanecem projeções compatíveis da primeira view
  • Nomes definidos externos e falhas de atualização: o TXLSXExternalLink interpreta, armazena e faz round-trip de entradas <definedNames> de pastas de trabalho vinculadas, enquanto cada TXLSXExternalSheetData acompanha uma flag RefreshError para o estado de falha de atualização, sem exigir uma fonte de dados ativa
  • Importação da área de transferência em múltiplos formatos: o XLSPasteFromClipboardRich prefere o formato de clipboard XML Spreadsheet (fórmulas, estilos, mesclagens) a texto Unicode puro, com detecção dedicada de formato, extração e funções de parsing de SpreadsheetML 2003
  • Troca nativa de clipboard Biff8: o CopyToClipboard em ambos os mecanismos publica o próprio payload de documento composto "Biff8" do Excel junto com texto e HTML, e o PasteFromClipboard o consome primeiro — os valores chegam livres de re-parsing dependente de locale, referências relativas de fórmulas se reancoram no alvo da colagem, e formatos de número, fontes, preenchimentos, bordas, alinhamento e células mescladas fazem round-trip tanto entre pastas de trabalho do HotXLS quanto a partir de cópias do Excel
  • O PasteFromClipboard de XLS e XLSX captura BIFF8 e texto de fallback juntos sob um único lock do clipboard, mantendo a política de retry existente e usando o texto capturado legível sem reabrir o clipboard quando o BIFF8 não está disponível ou não pode ser interpretado; um BIFF8 legível continua utilizável se o texto companheiro não puder ser recuperado, e texto indisponível, sozinho, não insere célula nenhuma
  • Falhas na publicação obrigatória de texto e BIFF8 no clipboard preservam o diagnóstico Win32 original do GetLastError durante a limpeza, para inspeção imediata pelo chamador
  • Marcação de rich text: a propriedade de célula TaggedText converte, nos dois sentidos, entre runs de rich text e tags leves (<b>, <i>, <u>, <s>, <sub>, <sup>, <color=#RRGGBB>, <font=Name>, <size=N>)
  • Leitores de clipboard seguros para 64 bits com nova tentativa sob contenção, correspondência em cache de alvos de formato condicional e validação de dados para áreas absolutas, invertidas, de linha inteira, coluna inteira e separadas por espaços em branco, busca, exclusão, avaliação condicional e verificações de validação de regras consistentes, e um índice de hiperlinks PDF com busca binária
  • Extensibilidade de cálculo: registro de funções do usuário por nome, uma API de auditoria de funções desconhecidas, aberturas em modo de recuperação que pulam partes danificadas, troca nativa de clipboard Biff8 e correspondência de intervalos de validação de dados em cache
  • Imagens PDF: figuras de planilha são embutidas como XObjects Flate RGB com passthrough de JPEG e reuso de streams PNG (sem recodificação, canal alfa preservado via soft masks), imagens byte-idênticas são embutidas uma única vez, blocos keep-together e XlsxAutoPageBreaks alinham a paginação, e ZipCompressionLevel e DeterministicOutput controlam a saída do salvamento
  • Pipeline de saída PDF: os streams de conteúdo de página são comprimidos com Flate, operações de texto consecutivas compartilham blocos de texto em lote com seleção deduplicada de fonte e cor, preenchimentos adjacentes iguais viram retângulos únicos, e segmentos de borda colineares são traçados como runs mesclados — arquivos menores e geração mais rápida; o OnProgress e o OnProgressEx, capaz de abortar, reportam os estados begin, page e end, enquanto o Cancel interrompe exportações longas sem gravar um PDF parcial no stream de destino
  • Fidelidade de texto de célula no PDF: word wrapping real com alinhamento vertical de blocos e linhas justificadas ou distribuídas, texto rotacionado e empilhado verticalmente, shrink-to-fit, overflow estilo Excel para células vizinhas vazias com clipping, alinhamento à direita de números sob alinhamento geral, indentação, runs de rich text com estilo, tamanho, cor, sublinhado, tachado, super e subscrito por run, bordas diagonais e duplas, e texto atravessando células mescladas — tudo posicionado através de advance widths Helvetica calibrados por GDI
  • Fidelidade de impressão no PDF: cabeçalhos e rodapés estilizados com os códigos do Excel de tamanho de fonte, cor, negrito/itálico/sublinhado/tachado e super/subscrito, modo de impressão em preto e branco, títulos de linhas e colunas impressos, centralização de impressão horizontal e vertical, indicadores de comentários mais uma página de listagem de comentários ao final via PrintCommentsAtEnd, links GoTo no documento para hiperlinks internos, preferência PageLayout do viewer com metadados XMP, larguras de coluna MDW fiéis ao Excel e embutimento de coleções TrueType com cortes sintetizados em negrito/itálico da face Unicode
  • Gráficos no PDF: gráficos de planilha são desenhados como vetores nativos — coluna/barra agrupada, empilhada e percentualmente empilhada, linha com marcadores, área, pizza e doughnut com rótulos percentuais, dispersão e radar — com molduras com título, eixos e rótulos de escala autoajustados, linhas de grade, legendas, rótulos de dados, preenchimentos por série e a paleta de destaque padrão do Excel; gráficos ancorados além da última célula de dados estendem a superfície impressa
  • PDF interativo: hiperlinks de planilha viram anotações de link clicáveis e cada planilha exportada ganha um bookmark de outline do documento
  • Extensibilidade em nível de pacote: propriedades de documento personalizadas tipadas, partes de dados XML personalizadas, companheiros de imagem SVG, rótulos de dados de gráfico por série vindos de células com caches indexados e overrides de visibilidade por ponto, estilos de tabela definidos pelo usuário com cores por seção, e uma API de auditoria de validação de dados que lista cada célula em violação
  • Aprimoramentos de fidelidade de formato: os formatos de número de tempo decorrido [h]:mm:ss e de fração # ??/?? renderizam em todos os lugares, colchetes [Red] recolorem texto no PDF, preenchimentos com gradiente de célula fazem round-trip e renderizam em HTML/PDF/viewer, painéis congelados e rolagem de painéis são lidos de volta, DispBlanksAs/PlotVisibleOnly são propriedades de gráfico, caixas de comentário são dimensionadas via WidthPt/HeightPt/AutoSizeFromText, e o ValidateNumberFormat valida strings de formato personalizadas
  • Busca com semântica do Excel: FindText / ReplaceText suportam wildcards (*, ?, escape com ~), correspondência da célula inteira, diferenciação de maiúsculas, busca por texto de fórmula, varredura reversa, ordem de varredura coluna a coluna, FindTextIn / ReplaceTextIn em janela que confinam a busca a um intervalo retangular, e um callback de substituição por ocorrência; agrupamento com semântica do Excel via AddSubtotals (linhas SUBTOTAL rotuladas, total geral, níveis de contorno, quebras de página e modo de substituição), A1ToR1C1 e R1C1ToA1 convertendo fórmulas entre os estilos de referência A1 e R1C1 nos dois sentidos, além de WriteAutoValue para sniffing de tipo de texto estilo Excel (datas ISO, m/d/yyyy americanas e d.m.yyyy europeias com horas AM/PM opcionais), agregação de intervalos com GetRangeStatistics, SortRange case-insensitive que preserva fórmulas com semântica de referência do Excel (partes $ permanecem, referências relativas se reancoram), fragmentos HTML de célula única com GetHtmlFromCell, e fragmentos HTML como rich runs com SetCellFromHtml
  • Fundos de planilha: o SetBackgroundImage cria figuras em tiling em ambos os mecanismos de pasta de trabalho; o XLSX preserva a propriedade da mídia do pacote entre cópias de planilha, enquanto o Classic lê e grava registros tipados de fundo BIFF8 com divisão contínua de payload, preservação exata de formatos desconhecidos, isolamento de cópia e conversão entre mecanismos para formatos conhecidos; o viewer da pasta de trabalho exibe fundos válidos atrás de células sem preenchimento, enquanto impressão, PDF, SVG, bitmap, metafile e os dois exportadores HTML mantêm os fundos desativados por padrão e expõem ExportSheetBackgroundImages para saída explícita com continuidade de fase entre páginas e reuso de recursos por sessão
  • Profundidade do mecanismo de formatos: seções condicionais de formato de número ([>=100]) selecionam por valor, seções de texto (@) servem de template para strings, o TaggedText aceita <br>, <strong>/<em> e as formas de atributo <font color=...>, o ConvertFormulasToValues oferece um modo only-external nas duas fachadas, blocos keep-together de coluna complementam os de linha, controles de formulário clássicos Spinner/ScrollBar são gravados no XLS, e o auto-ajuste de linhas trata células mescladas
  • Troca de clipboard: o PasteFromClipboard lê texto delimitado por tabulação em células com promoção de tipo número/data/boolean e reconhecimento de fórmulas, enquanto o CopyToClipboard em nível de intervalo publica tanto texto tabular Unicode quanto HTML estilizado com fórmulas, células mescladas, links, formatação de exibição e preservação de delimitadores embutidos
  • Viewer de pasta de trabalho editável: o TXLSWorkbookViewer vincula-se diretamente a qualquer um dos mecanismos de pasta de trabalho, carrega arquivos XLS, XLSX, XLSM, XLTX, XLTM ou ODS, renderiza estilos e formatação condicional sem materializar células XLSX esparsas, e acrescenta edição in-place ciente de células protegidas, entrada via barra de fórmulas, recálculo automático, seleção retangular, eventos de referência de fórmula e undo/redo limitado em O(1)
  • Caches de tabela dinâmica do XLS clássico usam streams de armazenamento independentes com identificadores únicos, referências de origem por planilha ou por nome, nomes de planilha Unicode e leitura/gravação criptografada do cache; extensões de cache existentes retêm seus bytes originais ao salvar
  • Designer de layout de tabela dinâmica reutilizável: o TXLSPivotDesigner expõe as zonas de disponíveis, linhas, colunas, filtros e valores, reordenação determinística de campos, agregação padrão ciente de tipos, mudanças explícitas de agregação, validação de layout e aplicação de resultados para modelos de tabela dinâmica XLS ou XLSX
  • Controles de formulário clássicos: planilhas e coleções de shapes podem criar, enumerar, editar, excluir e fazer round-trip de controles de botão, botão de opção, checkbox, combo-box e list-box com rótulos tipados, estados de marcação, renderização flat ou 3D, bindings de macro, células vinculadas, intervalos de origem, tipos de controle e âncoras de célula
  • Inspeção de gráficos do XLS clássico via GetChartModel decodifica família do gráfico, estado 3-D, títulos do gráfico e dos eixos, legenda, eixos com seu grupo de eixo primário ou secundário, nomes de séries, categorias, fórmulas de valores e flags de exibição dos rótulos de dados por série com separadores, o vínculo por série ao grupo de gráfico primário ou secundário, referências nomeadas ou externas de categorias e valores, estilos de linha, preenchimento e marcador por série com preenchimentos de cor de tema transportados pela extensão de cor de tema GelFrame do OfficeArt (índice de cor de tema mais tint), os parâmetros completos da cena 3-D do stream do gráfico, e links de gráfico dinâmico (nome da view da tabela dinâmica de origem mais a flag hide-field-captions pelos registros SXViewLink / PivotChartBits), além de objetos de gráfico embutidos ancorados em planilhas comuns via AddChartObject, junto com trendlines por série (tipo de regressão, ordem ou período, intercepto automático ou fixo, exibição de equação e de R-quadrado, forecast e backcast, nome de exibição) e error bars (lado da direção, tipo de valor, extremidades, magnitude)
  • Imagens tipadas de cabeçalho e rodapé XLSX via TXLSXWorksheet.HeaderFooterImages, cobrindo todos os slots esquerdo, central e direito nas páginas ímpares, pares e primeira, com bytes de imagem, formatos, títulos, dimensões e margens em pontos, códigos automáticos de campo de figura, cópias de planilha e round-trips de abrir/salvar seguros quanto a relationships junto com comentários
  • Efeitos editáveis de imagens XLSX via TXLSXImage, incluindo bordas de corte percentuais, transparência, brilho, contraste, preenchimento stretch ou tile, rotação em graus e preservação estrutural de DrawingML importado não relacionado
  • Construção avançada de gráficos XLSX e round trips com grupos de plot ordenados de coluna, barra, linha, pizza, área, dispersão, bolha, radar, stock, surface e 3D, gráficos de combinação verdadeiros com ordem explícita de desenho dos grupos de plot, pares de eixos primário e secundário, eixos tipados de data e de séries, views 3D configuráveis, estilos da galeria do Excel, estilos de texto de título, legenda e eixo, layouts manuais de plot, título, legenda e título de eixo, caches esparsos de séries de string ou numéricos, caches esparsos de categorias multinível com resolução viva de intervalos bidimensionais, e preservação editável de extensões e formatação ChartML desconhecidas
  • Patches seletivos de formato: o TXLSXRange.ApplyFormatPatch copia apenas os componentes solicitados de fonte, preenchimento, borda, formato de número, alinhamento ou proteção, aplica tiling de padrões de origem menores sobre destinos maiores e deixa os valores das células intocados
  • Exportação de dados master-detail: o TDataToXLS.ReadDetailTables exporta recursivamente datasets de detalhe ativos e vinculados sob cada registro mestre, enquanto o IndentDetailTables acrescenta uma coluna de indentação por nível de relacionamento e as configurações herdadas de exportação mantêm a hierarquia visualmente consistente; eventos write-ahead de registro e de valor podem filtrar registros e transformar valores de campos sem perturbar os cursores dos datasets
  • Criação de WordArt: o TXLSXWorksheet.AddWordArt cria texto DrawingML ancorado em célula com warp predefinido configurável, cor de preenchimento do texto e cor de contorno, enquanto ciclos subsequentes de abrir/salvar preservam a âncora completa do shape
  • Preservação de pacotes OOXML não suportados: partes personalizadas alcançáveis por relationships desconhecidos de raiz do pacote, pasta de trabalho, planilha ou desenho retêm IDs de relationship seguros contra colisão, content types, relationships filhos, escolha de compressão e bytes exatos de payload em round trips de abrir/salvar, com opt-out e diagnósticos de partes retidas no TXLSXWorkbook
  • Tabelas estilo Excel com estilos, intervalo e critérios de filtro, estado de ordenação, identificadores estáveis de coluna, rótulos e funções da linha de totais, fórmulas de colunas calculadas, fórmulas da linha de totais, edições de linhas e colunas cientes da estrutura, e auxiliares de coleção com round-trip
  • Regras tipadas de erros ignorados de planilha via TXLSXWorksheet.IgnoredErrors, cobrindo todas as categorias padrão de erro, referências de célula multi-área, cópias de planilha, edições de linhas e colunas, e round trips de abrir/salvar
  • Criação tipada de cenários do Scenario Manager What-If via TXLSXWorksheet.Scenarios, incluindo cenários ativos e exibidos, intervalos de células de alteração, estados bloqueado e oculto, comentários do usuário, valores de entrada e formatos de número, cópias de planilha, edições estruturais, e round trips de abrir/salvar sem reparos
  • Tabelas de dados What-If tipadas via TXLSXWorksheet.AddDataTable e DataTables, cobrindo semânticas de entrada por linha, entrada por coluna, duas variáveis, entrada excluída, ordem de cálculo, cópia de planilha, edição estrutural e round-trip de SpreadsheetML
  • Conexões de dados externas tipadas via TXLSXWorkbook.Connections e resultados de consulta de planilha via TXLSXWorksheet.QueryTables, incluindo política de atualização, credenciais, configurações de banco de dados, web e texto, valores de parâmetros tipados exatos, vínculos de tabela e de campo, edições estruturais, cópias de planilha, e round trips OOXML seguros quanto a extensões
  • Política completa de cálculo da pasta de trabalho via CalcMode, RefMode, configurações de iteração, flags de recálculo, controle de precisão total e configurações de cálculo concorrente, com defaults de schema e persistência independente de valores não padrão, mais memos opt-in RecalcLookupCache e RecalcAggregateCache que permitem que varreduras repetidas de XLOOKUP/XMATCH, VLOOKUP/HLOOKUP/MATCH e SUMIF/COUNTIF/AVERAGEIF, mais SUM/AVERAGE/MIN/MAX/COUNT incondicionais sobre um único intervalo simples, reutilizem o primeiro resultado durante uma passada de recálculo, engajando apenas quando o grafo de dependências é comprovadamente estável quanto a referências, para que os resultados nunca diverjam
  • Política de recálculo no salvamento via RecalcBeforeSave (manual, se dirty, sempre) mais inspeção de estado dirty com RecalcNeeded e obtenção de valor de célula única com RecalcCell após um recálculo completo
  • Placeholders de valor para relatórios com fallbacks {{name;default}}, expressões dbvalue/dbcount/tonumber/ref sobre um DataContext registrado e uma sessão de dados isolada por execução, células {{=formula(...)}} puras gravadas como fórmulas vivas, e as diretivas estruturais {{#imgsize}}, {{#comment}}, {{#html}}, {{#sheetvisible}}, {{#deletesheet}}
  • Tabelas de usuário lazy tipadas através de células exatas {{#usertable(alias, logicalName, providerKey, name=expression)}}, com checagens de sintaxe em tempo de compilação, preflight estático sem resolver, parâmetros tipados dinâmicos, imposição de provider registrado, diagnósticos de conflito case-insensitive, limites de declaração e carga no primeiro uso via dbvalue ou dbcount; TXLSReportGenerator.DataContext e TXLSReportTemplateChecker.DataContext levam o mesmo registro para a geração e a validação
  • Moldagem de dados de relatório com os combinadores Filter lazy, Sort estável multi-chave e Distinct; os adapters FromDataSet e FromObjects vinculam datasets abertos e listas de objetos com propriedades publicadas como tabelas de relatório; bands RunBidirectional dão a cada linha mestre suas próprias colunas dirigidas pelos filhos; o PreprocessAndRun permite que templates se automodifiquem contra os dados antes do preenchimento final
  • Opções de colagem da área de transferência (apenas valores, inserir linhas/colunas) em ambos os mecanismos de pasta de trabalho, e diagnósticos OnSkippedRecord no leitor direto, no cursor de linhas e no leitor forward, expondo referências de célula malformadas puladas e varreduras BIFF de planilha abortadas
  • A proteção de revisão compartilhada do XLS clássico faz round-trip via SharedRevisionProtected e SharedRevisionPasswordHash, e os relatórios tratam criptografia de ponta a ponta: templates criptografados abrem por senha e o RunToEncryptedFile emite um resultado criptografado em uma única etapa
  • O CopyRangeTo/CloneRangeTo entre pastas de trabalho remapeia estilos de célula por valor entre pools, e o CreatedDate, LastSavedDate, RevisionNumber e EditTimeMinutes do XLS clássico fazem round-trip pelo stream de resumo OLE
  • A renderização de gráficos consome o GapWidth, o Overlap e o agrupamento stacked / percent-stacked do grupo de plot de barras, de modo que os gráficos de barra e coluna renderizados correspondam à semântica de layout do modelo
  • Os gráficos fazem round-trip da formatação do chart space (cantos arredondados, cores de fundo/borda/área de plot) e dos cinco switches de proteção de gráfico, com o renderizador consumindo as cores; o Smooth em nível de série e as cores de preenchimento/borda dos marcadores fazem round-trip e renderizam como segmentos curvos; os eixos carregam o modo de cruzamento e os estilos de marcas de escala, e o AutoTitleDeleted suprime títulos derivados
  • O TXLSPDFWriter constrói PDFs sem nenhuma planilha: tamanho de página explícito, fluxo multipágina, retângulos/linhas/elipses, texto medido, transforms, clipping e controle do graphics state
  • O AutoAjuste oferece um fluxo em duas fases MarkSheet/ApplyMarked com medições pendentes inspecionáveis, limites da região de ajuste, IgnoreStrings, KeepHeightAutomatic, um piso DefaultRowHeightVisual e o FitWorkbook de chamada única
  • Fontes Unicode no PDF suportam políticas de embutimento automática, de subset obrigatório, de programa completo e somente mapa, programas OpenType CFF standalone, posicionamento GPOS/kern compartilhado para medição e desenho, um callback OnFontEmbed de pré-resolução e um resolvedor de família/estilo OnGetFontDirectories com cache recursivo; a saída PDF/A continua exigindo programas de fonte embutidos
  • Assistentes de coleção para pesquisar, excluir e reordenar planilhas, tabelas, gráficos, imagens, intervalos mesclados e links externos por nome ou posição
  • Criação de gráfico em uma chamada a partir de um intervalo de dados: AddChartFromRange e os atalhos AddColumnChart / AddBarChart / AddLineChart / AddPieChart / AddAreaChart derivam séries e categorias automaticamente de um bloco de dados, como o inserir-gráfico-a-partir-da-seleção do Excel
  • Inserção e exclusão de linhas e colunas que ajusta fórmulas, colunas de tabela e seus metadados de filtro ou ordenação, invalida referências estruturadas de colunas de tabela excluídas junto aos consumidores de fórmulas, particiona formatações condicionais de valor de célula e de expressão, mais validações de dados, quando as áreas editadas exigem âncoras de fórmula diferentes, mantém intactos os domínios agregados de formatação condicional, e move automaticamente nomes definidos, hiperlinks, séries de gráfico incluindo tamanhos de bolha, e âncoras de imagem, gráfico, caixa de texto e WordArt
  • Cálculo de fórmulas compartilhando o avaliador XLS clássico com registros de funções do usuário globais do processo e locais da pasta de trabalho, semântica de override local da pasta de trabalho, invocação de handlers sem locks e segura para paralelismo, operadores de array de broadcast e erros por célula, matrizes multivariáveis completas de LINEST / LOGEST, predições moldadas de TREND / GROWTH, cobertura de funções de texto, data, dia de trabalho, engenharia/conversão de base, bit a bit, estatística, agregação e matemática, inspeção ISFORMULA preservando referências sem recalcular o alvo, XMATCH / XLOOKUP binários logarítmicos, detecção de argumentos opcionais com ISOMITTED, conversão de arrays ARRAYTOTEXT / VALUETOTEXT, cálculos validados de XIRR / XNPV, tempos de investimento e taxas de crescimento com PDURATION / RRI, depreciação VDB com períodos fracionários, e callbacks de função personalizada OnUserFunction; o AnalyzeFormulaIssues oferece um preflight estruturado para funções ausentes, referências externas e os componentes exatos de dependências circulares
  • Referências estruturadas na forma de linha atual (Table[@Col]) avaliam contra a própria linha da célula da fórmula no recálculo serial e paralelo
  • A análise de dependências expande nomes definidos por fórmula com escopo e aninhados, incluindo referências multi-área, e usa proteções contra ciclos apenas quando a resolução estática de dependências é impossível
  • Fórmulas compartilhadas criadas pelo Excel abrem com cada seguidor expandido para sua expressão correta relativa à célula nos caminhos de pasta de trabalho completa, leitor direto por streaming e cursor de linhas, enquanto âncoras e seguidores de arrays CSE sobrevivem a edições estruturais seguras do array inteiro, cópias de intervalo completo, duplicação de planilha e cópias de planilha entre pastas de trabalho
  • Arrays dinâmicos podem ser criados com TXLSXRange.SetDynamicArrayFormula, retêm intervalos de fórmula e metadados XLDAPR através de ciclos de abrir e salvar, compartilham um registro de metadados deduplicado entre raízes, remapeiam esse registro em cópias entre pastas de trabalho e o removem após a última raiz ser limpa
  • Composição de matrizes calculadas inclui TRANSPOSE tipado, multiplicação de matrizes computada, determinantes e inversão, seletores negativos e de vetor para CHOOSECOLS / CHOOSEROWS, vetores de busca computados e requisições de array para XLOOKUP / XMATCH / MATCH, e operações de stack e de reshape com limites de etapas de avaliação e de memória de arrays
  • Criação de controles de formulário em planilhas XLSX (AddFormButton / AddFormCheckBox / AddFormRadioButton / AddFormComboBox / AddFormListBox) com shapes VML, partes ctrlProps e round-trip verbatim de arquivos com controles
  • Avaliação viva entre pastas de trabalho XLSX através da fachada ExternalWorkspace que preserva paths e da RegisterExternalWorkbook compatível: alvos completos de relationships e extensões permanecem distintos, aliases ambíguos falham explicitamente, a destruição do alvo revoga o adapter ativo com segurança, e os caches tipados locais do arquivo permanecem como fallback, sem acesso implícito a arquivos ou à rede
  • Comparação de pastas de trabalho via TXLSXWorkbookCompare reportando diferenças de planilha, célula, fórmula e mesclagem como uma lista estruturada ou um relatório de uma linha por diferença
  • Geração de código a partir de pastas de trabalho via TXLSCodeGen (dialetos Delphi e C++Builder) e validação de importação de regras de coluna via TXLSImportCheck com anotação em fonte vermelha e comentário, mais compactação keep-only-violations
  • Registros não reconhecidos de planilhas XLS fazem round-trip verbatim — registros específicos de fornecedor ou de especificações mais novas são capturados na leitura e reproduzidos no salvamento
  • Shapes de geometria predefinida via AddPresetShape — qualquer token OOXML ST_ShapeType segue no desenho verbatim e faz round-trip
  • Processamento de templates: o ApplyTemplate substitui placeholders {{key}} na planilha inteira e o FillTemplateBand clona blocos de template por registro, com tradução de fórmulas, formatação condicional dependente, validações, links, comentários, imagens, gráficos, clonagem de mesclagens e condicionais #skip por linha; o CloneRangeTo expõe o mesmo caminho de cópia ciente de dependências com payloads selecionáveis; o TXLSCompiledReportTemplate compila localizações de placeholders e fragmentos de texto uma única vez para execuções repetidas por células, rich text, comentários, hiperlinks, texto de desenhos, cabeçalhos e rodapés, nomes de planilhas, nomes definidos e propriedades do documento, sem reescanear a pasta de trabalho, e suporta diagnósticos de preflight endereçados, validação estrita antes da mutação e planilhas de diagnóstico; o TXLSCompiledReportRunner acrescenta progresso por alvo, cancelamento, contagens determinísticas de aplicações, estado reutilizável de conclusão ou falha, eventos em pares de pasta de trabalho e planilha, snapshots recuperáveis de problemas e saída atômica por stream, arquivo ou arquivo criptografado; o TXLSReportGenerator acrescenta eventos de leitura de template, fontes de pasta de trabalho, arquivo, stream e arquivo criptografado, mais modificação in-place ou por clone atômico; IXLSReportTable, IXLSReportCursor, providers e resolvers lazy por execução e índices de relações de chaves compostas fornecem fontes de dados virtuais ou em memória reutilizáveis sem forçar a carga de tabelas não referenciadas, enquanto o TXLSReportTableFactory compõe views top, projetadas, contadas, mínimas, agregadas, unidas, divididas e com hash join sem copiar payloads completos de linhas intermediárias; galerias executáveis em Delphi e C++Builder demonstram o mesmo contexto de dados, runner compilado, planilha de diagnósticos, LastResult e caminho RunToFile
  • Bands de relatório estruturais nomeadas: o TXLSCompiledReportBand resolve um nome definido retangular exato com escopo de pasta de trabalho ou de planilha e o expande para baixo, para a direita ou pelos dois eixos a partir de snapshots limitados de linhas e colunas em uma passada, preservando tipos de valor, fórmulas de referência mista, mesclagens, regras, validações, hiperlinks, comentários, desenhos e metadados explícitos de layout de linhas ou colunas, rejeitando estruturas parciais não suportadas antes da mutação
  • Cópias repetidas de intervalos e de bands de relatório reutilizam buscas por sufixo de nomes definidos com escopo, mantendo a nomenclatura do primeiro nome disponível após exclusões, renomeações ou mudanças de escopo
  • Bands de relatório de tabelas Excel expansíveis via TXLSCompiledTableReportBand usam um snapshot limitado de cursor para expandir uma única linha de template de dados, mantendo cabeçalhos, totais, intervalos de tabela e de Filtro Automático, estado de filtro e ordenação, metadados de coluna, fórmulas calculadas e de totais, estilos, referências estruturadas e objetos dependentes da planilha; resultados vazios representáveis removem a linha de template de dados, enquanto tabelas apoiadas em consultas e layouts inseguros são rejeitados antes das gravações estruturais
  • Bands de relatório de intervalo e de tabela Excel compartilham ErrorMode, StrictDataAccess, RuntimeLimits e diagnósticos imutáveis de LastResult; o WriteAndContinue armazena uma falha de linha explicitamente recuperável como texto literal, com sua linha de entrada e o endereço real de saída, e continua os alvos e linhas restantes, enquanto falhas fatais estruturais e de recursos fazem rollback da expansão
  • Varredura de células e linhas com callbacks de valor bruto ou de texto de exibição, localizar e substituir por modelo, e gravação em massa
  • Gerenciamento central de arquivos temporários de rascunho (arquivos temp registrados são varridos no finalize), checagem opt-in de descriptografia pós-gravação via VerifyEncryptedSave, e constantes de limite de grade por formato com um evento OnExportLimit no exportador de datasets
  • Auxiliares de validação de dados com dropdowns de lista em uma chamada a partir de um array de strings, modos IME tipados compartilhados entre XLS clássico e XLSX, fórmulas de tabela que retêm atributos de array independentes, extensões de formatação condicional, exportação HTML configurável com classes de estilo CSS centralizadas, e salvamento e carga criptografados com AES — ECMA-376 Standard Encryption (AES-128) com aceleração AES-NI, mais a leitura da Agile Encryption padrão do Excel (derivação de chave SHA-512, AES-128/192/256)
  • Os exportadores HTML clássico e XLSX usam snapshots de geometria xlsrgbHtml de propriedade da operação para converter larguras de caracteres através de métricas de largura máxima de dígitos da fonte Normal em comprimentos CSS fixos, reutilizam um cache limitado por operação multiplanilha, expõem o snapshot ativo para diagnósticos e preservam as dimensões armazenadas das planilhas
  • Avaliação preparada de formatação condicional XLSX com camadas de prioridade e StopIfTrue, fórmulas relativas, estatísticas compartilhadas multi-área, regras Top/Bottom e de média, valores duplicados e únicos, períodos de datas relativos, differential styles cientes do tema, escalas de cores, barras de dados direcionais e todas as famílias de conjuntos de ícones integradas
  • Abertura tolerante de XLSX: os prefixos de namespace são normalizados durante o parsing, de modo que planilhas, gráficos, desenhos e propriedades de documento vinculados a namespaces não canônicos ou estritos ISO 29500 carregam como arquivos comuns, e planilhas cujas linhas ou células omitem atributos de posição inferem cada célula a partir de sua antecessora na ordem de varredura
  • Saída Open XML estrita via StrictOOXML: o pacote XLSX inteiro — planilhas, strings compartilhadas, estilos, tema, desenhos, gráficos, comentários, propriedades do documento e partes preservadas — é salvo em conformidade estrita ISO/IEC 29500 com os vocabulários purl.oclc.org, e os tipos de relationship estritos resolvem na abertura exatamente como os transicionais
  • A abertura XLSX da pasta de trabalho inteira envia entradas ZIP de planilhas diretamente para inflaters e leitores XML locais de cada worker, sem reter cópias de staging de XML de planilha inflado e limitando a memória transitória de entrada de planilhas aos workers de parsing ativos
  • Leitor direto por streaming (TXLSDirectReader) que varre .xlsx / .xlsm célula por célula com eventos por célula e por planilha e pegada de memória quase constante para pastas de trabalho muito grandes, reportando o valor, o tipo, o texto da fórmula e o índice de estilo de cada célula, com detecção de data opcional, aborto precoce que se propaga à entrada ZIP e à descompressão, pushdown de intervalo de linhas e projeção de colunas em tempo constante antes da decodificação de valores; eventos opt-in de layout expõem dimensões da planilha, tamanhos padrão, spans de colunas, metadados de linhas, painéis congelados ou divididos e intervalos mesclados antes das células dependentes; o parsing paralelo limitado envia inflaters de planilha locais de cada worker para filas produtor-consumidor com orçamentos independentes, preservando a ordem dos callbacks na thread chamadora, a preservação de rich strings expõe runs formatados, intervalos fonéticos e propriedades fonéticas, e o armazenamento limitado de shared strings mantém tabelas pequenas em memória enquanto migra tabelas maiores e payloads rich para armazenamento temporário indexado, excluído ao fechar
  • Escritor direto por streaming (TXLSDirectWriter) que produz pastas de trabalho .xlsx célula por célula, emitindo cada planilha direto no pacote à medida que as linhas chegam, de modo que arquivos muito grandes sejam gerados com pegada de memória quase constante, cobrindo strings compartilhadas inline ou deduplicadas, rich strings com runs formatados e fonéticos, números, booleanos, datas, fórmulas, estilos de célula reutilizáveis em nível de pacote com handles clonados, fontes/preenchimentos/bordas/formatos de número deduplicados, ênfase de fonte, sublinhado, contorno e sombra, 19 padrões de preenchimento, 14 estilos de borda em cinco arestas, alinhamento horizontal e vertical, wrapping, encolhimento, indentação, rotação, prefixos de citação, proteção locked/hidden, formatos de número integrados e personalizados, larguras de coluna, alturas de linha, linhas e colunas ocultas, intervalos mesclados, intervalos de Filtro Automático de planilha e de tabela com filtros de valor, blank, grupo de data, personalizado, dinâmico, top/bottom e estados de ordenação, proteção de planilha com permissões refinadas, metadados de senha legados ou modernos e intervalos protegidos editáveis, proteção de estrutura da pasta de trabalho e de janela, painéis congelados, cores de aba de planilha, views de planilha da direita para a esquerda, toggles de exibição da view de planilha, margens de página, texto de cabeçalho/rodapé, opções de impressão, configuração de página, configurações de ajuste à página, quebras de página manuais, hiperlinks de planilha atravessando várias planilhas, nomes definidos da pasta de trabalho e locais de planilha, intervalos definidos gerados, áreas de impressão, linhas ou colunas de título de impressão, validações de dados com prompts e alertas de erro, formatação condicional com oito operadores de valor de célula, expressões, correspondência de texto, ranking top/bottom, média, predicados duplicado/único e blank/erro, barras de dados, escalas de duas e três cores, 17 famílias de conjuntos de ícones, estilos diferenciais de fonte/preenchimento, controle de prioridades e de stop-if-true, partes de tabelas Excel com nomes de coluna, flags de linha de cabeçalho/totais, comentários de tabela, rótulos e funções de coluna da linha de totais, fórmulas de colunas calculadas, fórmulas da linha de totais e opções de exibição do estilo de tabela, além de canais laterais da planilha atual para comentários clássicos, fontes de imagem em streaming, DrawingML ancorado, gráficos tipados baseados em fórmula e ChartML fornecido pelo chamador
  • Continuação de overflow opt-in (AutoSplitRows) divide exportações entre planilhas <name>_2 quando chega uma linha além do limite da planilha, e o FillTableCalculatedColumn empurra a fórmula de uma coluna de tabela para cada linha de dados, do mesmo jeito que a criação de fórmulas pelo Excel
  • Patching in-place de planilhas via BeginPatch: o escritor por streaming regrava uma planilha de um pacote existente enquanto toda parte intocada é copiada com seus bytes comprimidos verbatim — troque uma planilha de dados ou acrescente uma nova sem recriar o template; inicialização e finalização que falham liberam os handles de origem, o chamador mantém a responsabilidade pelos registros temporários de fonte, e o escritor pode ser reutilizado após uma falha de inicialização
  • Objetos de câmera via AddCamera: figuras de snapshot vivas vinculadas a um intervalo de células, seguindo a extensão de desenho da ferramenta de câmera documentada; o vínculo faz round-trip no salvamento e na reabertura
  • Anexos PDF via AddAttachment — arquivos seguem na exportação como entradas /EmbeddedFiles com uma name tree, e o IXLSPDFAttachmentSource pode fornecer cada payload sob demanda, uma vez por salvamento, através de um spool limitado; a montagem final envia objetos sequencialmente ao destino, de modo que os payloads de anexos são copiados em blocos fixos com um objeto de comprimento indireto e o pico de memória permanece estável
  • Saída explícita de PDF/A-1a, 1b, 2a, 2b, 3a e 3b via PDFAProfile, incluindo identificação específica do perfil, gerenciamento de cor, tagging, anexos e regras atômicas de validação; o UsePDFA permanece como switch de compatibilidade para PDF/A-2b
  • A exportação PDF roda em um layout clássico ou em um layout PDF 1.5 opt-in com object streams comprimidos e um stream binário de referências cruzadas (UseXRefStream) para arquivos menores
  • A exportação PDF suporta callbacks reutilizáveis de progresso begin, page e end com cancelamento e sem commit parcial do stream, além de anotações opcionais de comentários Unicode posicionadas por célula, que podem coexistir com páginas de comentários ao final
  • Gradientes e transparência no PDF usam shadings nativos axiais ou radiais com funções multi-stop costuradas, máscaras alfa por stop, padrões de preenchimento de célula, sombras de imagem, clipping em nível de página e caches de recursos em nível de documento; perfis PDF/A selecionados aplicam suas restrições gráficas antes do commit da saída
  • Cadeias de fallback de fontes PDF cientes de estilo via SetFontFallbackChain, AddFontFallback e ClearFontFallbackChains selecionam faces embutidas por família de origem, camada de estilo e cobertura de glifos, fazem cache das faces carregadas e das seleções, preservam escalares suplementares e clusters de grapheme entre runs, mantêm sequências Unicode de glifos compartilhados distintas por meio de mapeamentos CID e rejeitam atomicamente a saída PDF/A em vez de usar uma fonte não embutida
  • O TXLSPageImageExporter constrói a paginação uma vez e exporta as páginas XLS ou XLSX selecionadas incrementalmente como PNG ou JPEG, com DPI, escala, qualidade, progresso, cancelamento e tempo de vida do bitmap por página configuráveis; o ExportRange grava um retângulo de células enxuto e eventos before/after paint expõem o canvas real da página por meio de um contexto somente leitura com limites em pixels, tamanho de página, resolução, escala, números de página e a planilha de origem, disparando exatamente uma vez por frame renderizado, incluindo frames de TIFF multipágina
  • O TXLSCellImageExporter mede, renderiza e salva qualquer retângulo de células clássico ou XLSX como uma única imagem compacta sem artefatos de paginação, com resolução, escala, formato e qualidade JPEG configuráveis, fundos transparentes em PNG ou coloridos, switches independentes de objetos, linhas de grade e bordas de célula, orçamentos de pixels e bytes validados antes da alocação, e salvamento em arquivo por meio de substituição atômica na mesma pasta, que nunca danifica um alvo existente em caso de falha
  • A exportação ODS traduz fórmulas escalares suportadas, referências A1 qualificadas, validação booleana personalizada, limites com valor de fórmula e origens de lista para OpenFormula; dialetos de fórmulas de célula sem suporte retêm o fallback de compatibilidade, enquanto definições de validação e referências sem suporte são omitidas juntas
  • Alturas de linha repetidas do ODS e estilos de células em branco usam intervalos compactos; a saída ODS retém alturas de linha e caudas estilizadas repetidas, enquanto edições de linha única, limpeza, cópia de planilha, deslocamentos de linhas, tiling e exportação XLSX preservam as alturas efetivas
  • Fornecimento de linhas em modo pull (OnNeedRow + RunRows) aciona o escritor por streaming a partir de um pipeline de dados, uma linha por vez
  • Planilhas da direita para a esquerda espelham na exportação PDF e invertem via dir="rtl" no HTML, completando o round-trip da flag de exibição
  • O modo de exibição zero da planilha oculta o zero numérico real, incluindo resultados de fórmulas, valores de moeda e zero-base de datas, nos viewers e exportações visuais antes da formatação de número ou da medição de texto; o modo de exibição de fórmulas tem precedência, os visuais de formatação condicional e os hiperlinks permanecem ativos, e os valores armazenados, o texto formatado público e as saídas CSV e ODS retêm seus contratos existentes
  • Modo de streaming com larguras rastreadas opt-in (TrackColumnWidths) prepara a planilha em memória para que o arquivo final carregue a dica <dimension> do used-range e larguras de coluna dimensionadas pelo valor mais longo visto por coluna, aproximando o auto-ajuste para dados que só são conhecidos durante o streaming
  • Edições estruturais de linhas e colunas XLSX seguras quanto a referências, que atualizam fórmulas, nomes definidos, regras, links, desenhos, configurações de impressão, intervalos protegidos, âncoras de comentários clássicos e encadeados, sparklines, fontes e views tipadas de tabelas dinâmicas e referências reconhecíveis de extensões preservadas em uma única transação protegida, com uma API ordenada de participantes para metadados de propriedade do aplicativo
  • Árvore XML compacta de acesso aleatório (TSimpleDomReader) que se constrói a partir do mesmo pull reader em uma passada, para consultar metadados da pasta de trabalho, relationships, temas e outras partes do pacote por path QName ou local-name sensível a maiúsculas
  • Avaliação de fórmulas passo a passo via TXLSFormulaTracer com transições exatas da pilha de operandos, mais diagnóstico interativo via TXLSFormulaDebugger expondo nós parseados, valores dos operandos, ordem de avaliação, dependências de células e de intervalos, escolhas de ramos lazy, expressões puladas e origens de erros propagados
Versão 2.384.120

Conjunto completo de recursos de pasta de trabalho, relatórios e renderização

A versão atual amplia as APIs suportadas de pasta de trabalho, relatórios e renderização com caminhos de execução limitados e regras explícitas de segurança de formato

Formatos de pasta de trabalho e cálculo

  • Mapas XML editáveis e vínculos de esquema de célula única via TXLSXXmlMaps e TXLSXXmlCellBindings, incluindo round-trips de relationship e validação antes de salvar
  • Estado de pasta de trabalho multi-janela ordenado via TXLSXWorkbookViews, incluindo abas ativas, geometria, visibilidade, flags de exibição, extensões e remapeamento seguro de índices de planilha
  • Seleções de múltiplas áreas e células ativas independentes por painel para XLS e XLSX, com remapeamento estrutural e rejeição atômica de intervalos inválidos
  • Tokens de fórmula sem perdas, de propriedade do chamador, via TXLSFormulaTokenStream, ParseFormulaTokens, GetFormulaTokens, FormulaTokensToText e SetFormulaTokens
  • O congelamento de fórmulas do XLS clássico classifica referências BIFF compiladas sem descompilar o texto da fórmula, converte apenas referências confirmadas a pastas de trabalho externas no modo OnlyExternal, preserva fórmulas incertas e congela grupos de array atomicamente com os resultados literais de texto intactos
  • Fórmulas de pastas de trabalho externas no XLSX usam um lexer de slots numéricos ciente da gramática para conversão estrita, diagnóstico, recálculo, cópia entre pastas de trabalho e salvamentos gerados, com a compatibilidade de nomes de arquivo normalizada apenas quando exatamente um alvo registrado corresponde
  • O TXLSXExternalLink expõe IDs de relationship de origem, slots com base um e tipos de link workbook, DDE, OLE ou não resolvido, enquanto mudanças de alvo e da lista de planilhas invalidam vínculos externos compilados por meio de uma atualização de revisão em tempo constante
  • O ConvertExternalDefinedNamesToRefErrors substitui atomicamente definições confirmadas de pastas de trabalho externas por #REF! nativo no XLS clássico e no XLSX, preservando identidade do nome, escopo, visibilidade, comentários, metadados de macro e internos, atributos XLSX desconhecidos, fórmulas comuns de célula e as partes de links externos
  • Ordenação estável por linha ou coluna com TXLSSortFormulaMode, chaves horizontais, comparers personalizados e escolha entre preservar dependências lógicas ou mover fórmulas fisicamente
  • Fontes BIFF2 a BIFF4, formatos de número, estilos XF e fórmulas editáveis, convertidos para os modelos atuais de pasta de trabalho e de cálculo durante a carga
  • Uma fachada única de callbacks TXLSForwardReader para XLS, XLSX, CSV e TSV, com projeção no nível de backend, limites de linha, estado de presença de fórmula, supressão opcional do texto da fórmula, detecção de formato e cancelamento
  • Exibições personalizadas tipadas para painéis, seleções, filtros, configuração de página e quebras de página, enquanto registros BIFF desconhecidos mantêm seus payloads originais
  • Propriedades OLAP tipadas, seletores de web tables, campos de largura fixa e parâmetros de conexão com o conteúdo de extensão preservado
  • Diagnóstico via AnalyzeFormulaIssues para funções ausentes, referências a pastas de trabalho externas e os componentes exatos de dependências circulares
  • Registros de UDF globais e locais da pasta de trabalho, thread-safe, com override local, busca O(1) em média e invocação de handlers fora de locks
  • XLSBidiVisualOrder para texto árabe ou hebraico misturado, texto latino, dígitos, diacríticos combinantes e pontuação espelhada, sem alterar o texto lógico da célula
  • Estratégias de AutoAjuste de células mescladas que atribuem o crescimento ao primeiro ou ao último membro, ou o distribuem pelo intervalo, tanto no XLS quanto no XLSX
  • Preservação tipada de macro sheets do Excel 4, mais achados somente para inspeção do ScanMacroCommands com endereços de planilha
  • Suporte a cálculo para ISOMITTED, ARRAYTOTEXT, VALUETOTEXT, PDURATION e RRI, com armazenamento e comportamento de erro compatíveis com o Excel
  • Resumos agrupados de planilha via TXLSXWorksheet.Subtotal, incluindo fórmulas inseridas, total geral configurável, formatação visível herdada e hierarquia de contorno
  • Inspeção de estilo efetivo sem materialização via GetCellVisibleFormat, mais validação em nível de candidato e commit atômico via CheckDataValidation
  • Aberturas somente de metadados e de planilhas selecionadas no XLS clássico usam offsets de BOUNDSHEET, armazenamento limitado para spill do SST e um contrato único de leitura forward compartilhado com XLSX, CSV e TSV
  • Arrays dinâmicos fluem diretamente para agregados escalares, buscas repetidas reutilizam caches de intervalo incrementais tipados, e tokens de fórmula imutáveis compartilham objetos sem estado entre compilações
  • Materialização nativa local de tabelas dinâmicas suporta grades de relatório compactas, tabulares e de estrutura de tópicos, rótulos repetidos, posições padrão de subtotal e múltiplos eixos de medidas, com células em cache e metadados de transmissão verificados contra abertura e atualização explícita do Excel
  • Cálculos de exibição nativos de tabelas dinâmicas incluem comparações de item base, totais acumulados, porcentagens de linha e de coluna, porcentagens de pai, porcentagens cumulativas e ranks densos, com saída nativa em cache e metadados de atualização
  • REGEXTEST, REGEXEXTRACT e REGEXREPLACE usam o backend UTF-16 empacotado com orçamentos de fórmulas compartilhados; GROUPBY e PIVOTBY suportam callbacks com escopo, múltiplas medidas, filtros, ordenação, totais hierárquicos e porcentagens relativas
  • Limpeza de intervalos e colagem de texto Unicode usam uma única transação limitada de undo ou redo com verificações de proteção, snapshots esparsos de conteúdo e metadados modernos de célula restaurados
  • Imagens locais tipadas PNG/JPEG na célula e formatos esparsos de Checkbox de célula, linha e coluna retêm metadados de acessibilidade, precedência, estilos, propriedade de conteúdo e edições estruturais através de round trips XLSX
  • Leituras e gravações XLSB expandidas retêm fórmulas e caches suportados, nomes, mesclagens, hiperlinks, painéis, tabelas e filtros, com preflight explícito de recursos sem suporte
  • APIs nativas de pasta de trabalho para Linux x64 e macOS ARM64 carregam, editam, calculam e salvam arquivos XLSX, XLSB e ODS suportados usando serviços reais da plataforma
  • Pastas de trabalho Classic BIFF8 nativas suportam edição, cálculo, contêineres compostos aninhados grandes, propriedades do documento e saída padrão RC4 ou CryptoAPI de 128 bits no Linux x64 e no macOS ARM64
  • Saída nativa de tabelas dinâmicas suporta agrupamento numérico, de datas e manual, além de onze funções personalizadas de subtotal nos layouts de relatório suportados
  • A comparação de pastas de trabalho retém tipos de valor estritos e inteiros grandes exatos, tolerâncias numéricas finitas, caches de fórmulas opcionais, estilos efetivos, geometria, rich text e definições limitadas de recursos suportados, incluindo estado local de tabela dinâmica, Slicer e Timeline, preservando o armazenamento esparso e os resultados anteriores em caso de falha
  • O ODS preserva texto e autores de notas comuns, filtros de valores e personalizados representáveis e proteção equivalente sem senha, com relatórios precisos de perdas de conversão; salvamentos em stream cancelados preservam o destino, e salvamentos em posição diferente de zero retêm offsets ZIP válidos
  • FORMULATEXT lê expressões armazenadas sem avaliar o alvo delas, e GETPIVOTDATA consulta agregados visíveis suportados a partir de caches locais destacados limitados no XLS, no XLSX e em avaliadores isolados; valores de cache inline nativos do XLS e referências de filtro de relatório retêm as identidades deles, enquanto caches incompletos ou sem suporte produzem erros explícitos
  • INDEX, SORTe UNIQUE aceitam arrays calculados e constantes, de modo que filtragem, ordenação, deduplicação e extração de linhas ou colunas compõem diretamente com o redimensionamento automático de spill do XLSX e o cálculo CSE de intervalo fixo; o INDEX aceita arrays de seletores de linha, de coluna e de área com difusão ciente de orientação e erros tipados por célula, aceita a área 1 para uma origem calculada, e retém a identidade suportada de referências escalares de múltiplas áreas por meio de nomes definidos, LETe CHOOSE escalar; veja seleção de área do INDEX para exemplos e limites
  • Estilos nomeados retêm as partes de formato vinculadas e overrides locais, enquanto cada estilo de tabela light, medium e dark integrado resolve para o formato efetivo usado pelos caminhos de edição e exportação
  • Uma fachada unificada de desenho agrupa ou desagrupa objetos DrawingML e reordena imagens, gráficos, caixas de texto, âncoras preservadas e grupos aninhados mistos sem perder relationships
  • O TXLSFormatSnapshot captura um formato clássico completo independentemente da pasta de trabalho de origem, e o IXLSRange.ApplyFormat o aplica a células, linhas ou colunas
  • Pastas de trabalho clássicas e XLSX expõem as mesmas APIs de SaveSemanticSnapshot por fluxo e ComputeSemanticHash SHA-256 incremental, com perfis Content e SecurityComplete mais opções explícitas de estado do viewer, metadados voláteis e cache de fórmulas
  • Novas planilhas XLSX mantêm gravações em massa tipadas compatíveis organizadas por linha em armazenamento RLE empacotado, respondem a consultas de existência e estatísticas de armazenamento sem materialização e se expandem uma única vez em objetos de célula estáveis apenas quando o acesso em nível de objeto exige
  • Os armazenamentos de células e as coleções de planilhas clássicas e XLSX expõem gerações estruturais independentes, para que leitores de longa duração detectem mudanças de topologia sem tratar edições de valor, fórmula, formato, renomeação ou ativação como invalidação estrutural
  • Handles de célula mantêm o estado de estilo padrão sem alocações, e células em branco apenas de estilo e idênticas compartilham um payload com contagem de referência e isolamento copy-on-write para edições locais posteriores, com bytes evitados mensuráveis nas estatísticas de armazenamento

Relatórios compilados e composição de dados

  • O TXLSCompiledReportTemplate compila placeholders uma única vez entre células, rich text, comentários, comentários encadeados, hiperlinks, desenhos, gráficos, cabeçalhos, rodapés, nomes de planilhas, nomes definidos e propriedades do documento
  • O TXLSCompiledReportBand expande bands de linha, coluna e cross-tab de nomes definidos a partir de snapshots de dados limitados de uma passada, preservando fórmulas, objetos dependentes e metadados explícitos de eixo
  • O TXLSCompiledTableReportBand expande templates de tabela Excel de uma linha, mantendo cabeçalhos, totais, filtros, ordenação, fórmulas, estilos, referências estruturadas e resultados seguros com zero linhas reais
  • IXLSReportTable, IXLSReportCursor, IXLSReportRandomAccessTable e TXLSReportMemoryTable oferecem um contrato único para fontes virtuais e em memória
  • O TXLSReportRelationIndex constrói buckets exatos tipados de chaves compostas uma única vez para busca master-detail O(1) em média, sem copiar payloads de linha
  • IXLSReportTableProvider e TXLSReportDataContext registram tabelas explícitas e lazy, enquanto o BeginRun cria uma IXLSReportDataSession isolada com busca hash case-insensitive, negative caching, cache determinístico de erros de provider e detecção imediata de recursão no mesmo alias; templates compilados, runners, bands de intervalo e bands de tabela Excel usam automaticamente uma sessão por execução lógica, as duas passadas do PreprocessAndRun compartilham o mesmo snapshot, execuções concorrentes permanecem isoladas, e todo caminho de sucesso, cancelamento ou falha libera seu snapshot antes de retornar
  • TXLSReportDataRequest e IXLSReportDataResolver adicionam requisições nomeadas ou do usuário com parâmetros tipados ordenados, metadados de fonte, controle de execução somente leitura e resultados explícitos de não tratado, resolvido, não encontrado ou erro de dados; resolvers registram-se por chave de provider case-insensitive para despacho O(1), providers legados continuam compatíveis via adapter, tabelas explícitas permanecem autoritativas, e uma execução rejeita fingerprints conflitantes para o mesmo alias antes de uma segunda chamada ao resolver
  • O TXLSReportDataLimits limita aliases em cache, providers nomeados e legados, schemas de tabela, nomes, parâmetros, strings e mensagens de erro; coordenadas de fonte malformadas, caracteres de controle, nomes de parâmetro duplicados, containers Variant não suportados, combinações de resultado inválidas, recursão e cancelamento no meio da resolução falham antes do commit no alvo, enquanto o cancelamento remove a entrada de cache inacabada para permitir uma nova tentativa limpa
  • O TXLSReportTableFactory fornece cursores lazy de top, projection, union e split, além de contagem de linhas, mínimo, agregação e hash joins que preservam duplicados
  • O TXLSReportQueryProvider expõe às templates apenas definições de consulta registradas e somente leitura, e passa parâmetros tipados mais timeouts limitados a um executor hospedeiro
  • O TXLSCompiledSheetReportBand e o TXLSCompiledOverflowReportBand criam planilhas por registro cientes de dependências e planilhas de continuação limitadas a partir de um cursor forward
  • A TXLSReportIncludeLibrary resolve includes nomeados recursivos, reporta ciclos de forma determinística e congela em uma biblioteca imutável e reutilizável
  • Condições, lookup, expressões regulares e fórmulas dinâmicas de relatórios compilados reutilizam nós de expressão já interpretados e índices de coluna já resolvidos
  • O TXLSReportDynamicFormat e o TXLSReportFormatEvent aplicam formatos de número, alturas de linha e larguras de coluna cientes do registro na granularidade do alvo compilado
  • O IXLSReportImageDataProviderV2 e o TXLSReportImageBinder resolvem alvos de imagem tipados a partir de bytes limitados ou streams próprios, com contexto estável de planilha, band, tabela, linha lógica, linha do cursor, linha atual somente leitura, âncora, transformação, cancelamento e limite de tamanho; runners, generators, bands de intervalo e bands de tabela Excel vinculam cada alvo diretamente, sem varrer as células geradas da planilha
  • Imagens de relatório V2 derivam tamanho físico e DPI de cabeçalhos PNG, JPEG, GIF, BMP, EMF ou WMF limitados, suportam ajuste Natural, Contain centralizado, Cover com corte e Stretch, rejeitam geometria de raster insegura antes da mutação e preservam offsets relativos à âncora em round-trips XLSX e ODS
  • IXLSXImageBlob e TXLSXImageBlob permitem que imagens repetidas compartilhem um único raster e payload SVG imutáveis, com digest SHA-256 calculado uma vez e cache key opcional; XLSX e ODS reutilizam payloads de mídia distintos entre planilhas e restauram payloads compartilhados ao reabrir
  • O rebind de gráficos ciente de dependências traduz séries, fórmulas, nomes e âncoras quando bands de intervalo e de planilha se expandem
  • O TXLSCompiledReportRunner reporta as fases begin, target, saving e end, suporta cancelamento, saída por fluxo e em arquivo atômica, contagens exatas de aplicações e execução reutilizável entre sessões de dados isoladas; o ErrorMode escolhe entre comportamento de parada compatível ou tratamento continuado de falhas explicitamente tipadas de dados, provider, divisão por zero e expressão regular inválida, o StrictDataAccess expõe dados ausentes em vez de blanks legados ou contagens sentinela, e snapshots imutáveis de LastResult retêm problemas ordenados em tempo de execução e o estado terminal entre reutilizações do runner
  • A saída de relatório por fluxo, arquivo e arquivo criptografado usa uma única transação em etapas; falhas fatais, canceladas, de serialização, de gravação parcial no fluxo e de substituição de arquivo preservam o destino anterior completo, enquanto a saída bem-sucedida não criptografada mantém o formato da pasta de trabalho de origem e snapshots de rollback de fluxos grandes transbordam para armazenamento temporário gerenciado
  • A saída de relatório dispensa snapshots de backup para fluxos de destino vazios, preservando o rollback do conteúdo e da posição do destino caso a saída falhe
  • Alvos compilados são avaliados antes da formatação dinâmica e depois fazem commit atômico de conteúdo, formatos de número, alturas de linha e larguras de coluna com rollback exato; diagnósticos recuperáveis de célula limpam fórmulas, mantêm o estilo base restante e compartilham derivados em pool de fonte vermelha e preenchimento amarelo entre fontes base iguais, enquanto alvos seguros fora de células preservam seu valor original e alvos estruturais permanecem fail-fast
  • O TXLSReportRuntimeLimits limita a contagem de problemas retidos, o tamanho das mensagens sanitizadas e a memória de problemas antes da mutação do alvo; as mensagens ficam em linha única e redigem credenciais comuns, e o RuntimeDiagnosticsSheetName opcionalmente grava uma planilha estruturada de diagnósticos que faz round-trip junto com a pasta de trabalho gerada
  • O TXLSReportGenerator controla todo o ciclo de vida de leitura e geração para templates de pasta de trabalho, arquivo, fluxo e arquivo criptografado, com eventos em pares, contexto estável de planilha, cancelamento seguro, isolamento de saída por clone atômico e o mesmo contrato de erro recuperável e resultado imutável do runner compilado
  • O CloneRangeTo clona células selecionadas e dependências com identidade, com tradução de referências mistas, preflight de sobreposição e tiling linear repetido de fonte fixa; alvos condicionais e de validação de eixo inteiro acompanham edições estruturais e clones que contêm totalmente cada alvo, enquanto cópias de células de linha inteira, coluna inteira e planilha inteira mantêm armazenamento esparso e snapshots seguros de fontes sobrepostas; sobreposições de estilo virtual que se intersectam também são copiadas e remapeadas sem expandir coordenadas em branco, e a formatação de sobreposição do destino fora do retângulo copiado permanece intacta
  • O TXLSReportPaginationPlanner oferece rodapés fixos, grupos keep-together, divisão de linhas, mesclagem de spans semelhantes e colunas de relatório balanceadas
  • A análise de relatórios compilados, a execução estrita e o WriteDiagnostics reportam placeholders malformados e valores ausentes com os tipos de alvo e endereços exatos
  • O TXLSReportTemplateChecker e o TXLSReportTemplateMigrator reutilizam a semântica do compilador para validar templates e converter formas de placeholder legadas suportadas

Saída acessível, vetorial, de imagem e web

  • O TXLSPDFTagMode e o DocumentLanguage geram árvores de estrutura PDF automáticas com tabelas, linhas, células de cabeçalho e de dados semânticas, Figures informativas para imagens XLSX com texto alternativo Unicode, identificadores densos de marked-content por página, spans de células mescladas, árvores pai exatas e isolamento de artifacts para imagens decorativas e outros desenhos não semânticos
  • O TXLSPDFSignature suporta campos de assinatura visíveis ou invisíveis, appearances PNG contained, covered ou stretched, dados CMS fornecidos pelo host, callbacks de digest, byte ranges corrigidos e políticas explícitas de certificação DocMDP para nenhuma alteração, preenchimento e assinatura de formulários, ou preenchimento, assinatura e anotações de formulários, sem armazenar chaves privadas
  • O TXLSPDFAProfile seleciona PDF/A-1a, 1b, 2a, 2b, 3a ou 3b, com validação de perfil antes do commit da saída; arquivos associados PDF/A-3 carregam nome Unicode, tipo MIME, descrição, tamanho em bytes, hora de modificação e relationship Source, Data, Alternative, Supplement ou Unspecified pela sobrecarga detalhada de AddAttachment
  • Callbacks reutilizáveis de progresso begin, page e end do PDF, mais cancelamento, evitam fluxos de destino parciais
  • Cadeias de fallback de fontes PDF cientes de estilo fazem cache da cobertura de glifos e das faces embutidas, preservando caracteres suplementares, clusters de grapheme e mapeamentos de extração
  • O shaping de texto complexo contextual aplica ligaduras, posicionamento de diacríticos combinantes, junção árabe e mapeamentos de cluster de origem antes da saída de glifos
  • Gradientes PDF axiais e radiais multi-stop nativos, máscaras alfa por stop, padrões de preenchimento de célula, clipping e sombras de imagem reutilizam recursos gráficos em cache
  • Comentários de célula podem virar anotações de texto Unicode posicionadas no PDF, enquanto a saída de comentários ao final continua disponível
  • O TXLSSvgExport renderiza intervalos, planilhas, pastas de trabalho, páginas e objetos nomeados com texto vetorial, links seguros opt-in, gráficos, shapes e imagens; os callbacks de página retornam um SVG completo por vez, prefixos de ID determinísticos isolam documentos embutidos, e o renderizador de página compartilhado pinta preenchimentos de células do Excel, bordas recolhidas, fontes e alinhamento por célula, shrink-to-fit e overflow para células vizinhas
  • O TXLSPageImageExporter reutiliza uma única sessão de paginação enquanto produz incrementalmente as páginas PNG ou JPEG selecionadas, ou grava as páginas selecionadas atomicamente como um TIFF multipágina comprimido com LZW
  • O TXLSGraphicsBackend e a geometria compartilhada de paginação alinham preview, impressão, PDF, SVG, imagem, HTML e posicionamento de objetos, enquanto os serializadores mantêm a codificação específica de cada formato
  • O decoder limitado de EMF e WMF valida os envelopes de registros e rejeita escape records antes de reproduzir seu subconjunto seguro por meio da geometria compartilhada de Canvas e SVG: pilhas de estado DC, transforms de window, viewport e world, tabelas de objetos pen, brush e extended-pen com stock objects, retângulos, elipses, cadeias de linhas, polígonos, curvas Bézier, path brackets com passadas de fill, stroke e combinadas, retângulos arredondados, arcos, chords, pies e angle arcs, preenchimentos e frames de região, runs de texto limitados com fontes e alinhamento, e imagens stretch-DIB recodificadas como PNG; clipping e registros privados ficam fora da whitelist e falham fechados no fallback de raster limitado
  • Os exportadores HTML clássico e XLSX fornecem uma exibição de planilha explícita com cabeçalhos semânticos de linha e coluna e hot tracking tipado em CSS puro; links externos compartilham um sanitizador de URI único que rejeita alvos script, data, blob, file, UNC e com caracteres de controle
  • Gráficos de eixo de data XLSX usam seriais da pasta de trabalho como coordenadas contínuas, preservam o slot de compatibilidade do dia bissexto de 1900, respeitam o sistema de datas de 1904 e avançam os ticks por dias, meses ou anos reais do calendário na paginação compartilhada e na renderização em SVG, PDF, imagem, preview, impressão, viewer e HTML; unidades omitidas são inferidas uma vez entre todas as séries visíveis, a densidade automática usa o span visível, a largura do eixo, a fonte medida dos rótulos, o formato de número e a rotação, e as linhas de grade major e minor configuradas reutilizam as mesmas coleções limitadas de ticks
  • Os modelos de eixo de data XLSX preservam a presença independente das unidades de calendário base, major e minor, mais o flag de categorias automáticas do eixo de data, de modo que elementos ChartML omitidos permanecem omitidos enquanto unidades explícitas de dia e valores Boolean false fazem round-trip; os campos tipados de extensão de eixo de data do Classic retêm todo valor e flag brutos, enquanto os valores ativos podem ser mapeados para o modelo de eixo XLSX
  • Eixos de categorias multinível preservam caches esparsos leaf-first e intervalos bidimensionais vivos, herdam rótulos omitidos tratando rótulos explicitamente vazios como fronteiras, mesclam rótulos iguais apenas dentro do span do pai, respeitam ordem reversa e da direita para a esquerda mais categorias ocultas, e expõem NoMultiLevelLabels para saída de nível único
  • Rótulos de dados de gráfico vindos de células preservam fórmulas e caches indexados independentes por série, atualizam o texto de exibição local da planilha uma vez por geração da pasta de trabalho, mantêm caches externos sem acesso implícito, traduzem fórmulas em cópias de planilha e expansão de relatório, e respeitam visibilidade compartilhada e por ponto na paginação e na renderização em SVG, PDF, imagem, preview, impressão, viewer e HTML
  • Pastas de trabalho XLS clássicas e XLSX compartilham uma política de exibição de objetos de três estados sem perdas; objetos ocultos são excluídos antes da expansão de intervalos e do trabalho com mídia, o viewer renderiza placeholders nomeados leves, e os exportadores PDF, SVG, bitmap, impressão e HTML podem optar pela saída com placeholders mantendo por padrão a saída completa dos objetos
  • Layouts manuais de gráfico preservam a presença independente de campos e tokens de origem inválidos, resolvem modos de fator e de borda com posicionamento limitado que preserva o tamanho, distinguem alvos de plot internos e externos, compartilham a geometria de título, legenda, área de plot e título de eixo entre saídas de paginação, SVG, PDF, imagem, preview, impressão, viewer e HTML, e convertem posições ODF suportadas por meio de distâncias absolutas do gráfico
  • Eixos de data XLSX preservam formatos de número de rótulos e o estado de source-link, aplicam estilo de texto de eixo e rotação horária, respeitam direção reversa e mantêm espaçamento contínuo para datas duplicadas e esparsas na paginação e na renderização em SVG, PDF, imagem, preview, impressão, viewer e HTML
  • O modo de exibição de fórmulas resolve o mesmo texto final ciente de células protegidas, alinhamento e largura efetiva limitada de layout dobrada nos caminhos do viewer da pasta de trabalho, preview, impressão, imagem, EMF, SVG, PDF, HTML clássico e HTML XLSX, sem alterar valores armazenados, caches de fórmulas ou larguras de coluna
  • Arcos Bezier cúbicos adaptativos dirigidos por flatness compartilham um contrato único de precisão entre saídas PDF, SVG e imagem, alocando segmentos extras apenas quando escala ou excentricidade exigem
  • Outlines PDF suportam bookmarks Unicode aninhados, cores, texto em negrito ou itálico e descendentes expandidos ou recolhidos, com callbacks de página para fundos e overlays
  • Estilos de tabela nomeados resolvidos e integrados fluem pela formatação compartilhada de HTML, PDF, imagem, preview e viewer sem materializar células em branco
  • O TXLSSvgExport.SaveObjectAsSVG renderiza um gráfico, imagem ou shape nomeado nos seus limites exatos de objeto, sem recortar uma página inteira
  • A exportação HTML emite gráficos e shapes como SVG inline e preserva imagens SVG, âncoras de desenho, links e efeitos suportados sem rasterizar a planilha inteira
  • A TXLSXHtmlExportSession varre os estilos compartilhados uma vez e depois exporta as planilhas incrementalmente, com progresso, cancelamento e reset
  • O TXLSImageRenderEffects aplica crop, brilho, contraste, gama, rotação, opacidade e sombra de forma consistente entre os backends gráficos
  • Preset shapes, adjustments, callouts, fluxogramas, caixas de texto e WordArt usam geometria vetorial compartilhada entre os formatos de saída
  • A renderização avançada de gráficos cobre error bars, trendlines, eixos de data, espaçamento numérico, rótulos vindos de células com ordenação custom-first dos componentes e barras financeiras high-low e up-down
  • Rótulos densos e de gráficos pizza recebem ajuste determinístico de colisão e roteamento de linhas de chamada antes da saída vetorial final

Recursos XLSX prontos para o código do aplicativo

A API XLSX abrange agora a geração prática de pastas de trabalho, exportação de relatórios e cenários de mutação de pastas de trabalho em vez de apenas gravação simples em células

  • Estrutura da planilha Células, cálculo de fórmula, intervalo inteiro e intervalos mesclados com busca/remoção direta de intervalo mesclado, tamanhos de linha e coluna com AutoAjuste limitado, tópicos, linhas e colunas ocultas, painéis congelados, estado da planilha ativa, planilhas ocultas e muito ocultas
  • Estilos e apresentação Fontes, preenchimentos, bordas, formatos de número, alinhamento, rich text, cores do tema, cores indexadas, matiz e sombra, bordas diagonais e pools de estilos reutilizáveis
  • Objetos Excel Hiperlinks e comentários com procura de célula mais assistentes de exclusão de intervalo, imagens e caixas de texto de desenho independentes com procura de âncora e assistentes de exclusão de intervalo, formatos condicionais e validações de dados com assistentes de pesquisa ciente de intervalo e de exclusão, tabelas no estilo Excel com procura por nome e assistentes de exclusão, critérios de Filtro Automático com pesquisa direta de colunas e assistentes de exclusão, objetos de gráfico com procura de título e assistentes de exclusão, planilhas de gráfico, nomes definidos com assistentes de busca com escopo e de exclusão, preservação de projeto VBA com consultas HasVbaProject / VbaProjectDefined além de inspeção e edição do código-fonte de módulos existentes, e links de pastas de trabalho externas com assistentes de busca de alvo e de exclusão
  • Suporte a páginas e metadados Modos de exibição de planilha, áreas de impressão, linhas e colunas de título, opções de impressão de cabeçalho e linhas de grade, quebras de página manuais com procura de índice e auxiliares de remoção de intervalo, pastas de trabalho Date1904, propriedades do documento, metadados do aplicativo e salvar/abrir baseado em fluxo

Formatos de saída a partir dos mesmos dados de pasta de trabalho

HotXLS não se limita a arquivos de pastas de trabalho binários. As APIs atuais expõem rotas diretas de exportação para alvos comuns de integração e relatórios

XLS Leitura, gravação e modificação de pastas de trabalho clássicas do Excel 97-2003, cursor de células carregadas em estado constante com snapshots próprios, blanks opcionalmente estilizados de forma independente e validação fail-fast de topologia, descoberta rápida de nomes de planilha em arquivos ou streams, busca de planilha por nome, auxiliares de painel, aba ativa da pasta de trabalho, metadados de salvo-por, auxiliares de carga/salvamento/limpeza do payload do VBA mais inspeção e edição do código-fonte de módulos existentes, controles de geometria e estado da janela, precisão do flag Window2 de aba, barra de rolagem, agrupamento de datas do Filtro Automático, exibição da planilha, cor das linhas de grade e painéis congelados, controles de estilo de contorno, permissões de proteção da planilha, flags de configuração de página com preservação limitada e byte-exata do payload BIFF do driver de impressora, acesso público ao payload com isolamento de cópia, e conversão para XLSX com prioridade de campos tipados, ordenação de intervalos multi-chave, estilos de célula integrados, propriedades do documento e fluxos de trabalho de exportação
XLSX Geração de pastas de trabalho OOXML, cálculo de fórmulas com cobertura expandida de funções e referências A1 em toda a grade de 1,048,576 × 16,384 da planilha e OnUserFunction/OnUserFunctionEx, cursor de células carregadas em estado constante sobre blocos esparsos materializados ou armazenamento empacotado, com snapshots próprios, blanks opcionalmente estilizados de forma independente e validação fail-fast de tempo de vida, varredura de células carregadas e gravação via callbacks, limites controlados de AutoAjuste para larguras de colunas e alturas de linhas de relatórios, conversão determinística esparsa de XLSX para BIFF8 via SaveXLSXWorkbookAsXLS com preservação de cores indexadas travadas, quantização de paleta OKLab ponderada e configurações tipadas de impressora com preflight, preservação byte-exata da parte de configurações de impressora da planilha com acesso público ao payload com isolamento de cópia, semântica de limpeza exata e diagnósticos de relationships pendentes, salvamento e carga criptografados por AES compatíveis com o Excel (ECMA-376 Standard Encryption) com aceleração AES-NI e fallback por software, preservação de projetos VBA com consultas HasVbaProject / VbaProjectDefined mais inspeção e edição do código-fonte de módulos existentes, localização/substituição de texto em template, exportação HTML configurável de pasta de trabalho/intervalo, busca/remoção direta e avaliação prévia de critérios de Filtro Automático, busca/remoção direta de âncoras de imagens incorporadas, busca/remoção de formatação condicional e de validação de dados cientes de intervalo, e round-trip pela fachada dedicada lxHandleX
XLSB Valores validados e estilos básicos através da facade XLSX, incluindo números tipados, valores booleanos, texto Unicode, erros comuns, células em branco estilizadas, visibilidade de planilha, views comuns, dimensões de linhas e colunas, margens de página, compressão ZIP e timestamps determinísticos; preparação completa do pacote e verificações obrigatórias de recursos rejeitam fórmulas, nomes, objetos de recursos e configurações de cálculo não padrão sem suporte antes do commit do destino
ODS Importação do OpenDocument Spreadsheet com dados styles.xml, dimensões de linha/coluna, estilos de célula herdados, conversão básica de fórmula, proteção de planilha, intervalos nomeados, valores escalares em cache não tipados, frações de segundo em datas e durações de tempo negativas. Exportação completa via SaveAsODS escrevendo valores de célula tipados, fórmulas, rich text, intervalos mesclados, hiperlinks, imagens, gráficos, formatos condicionais, validações de dados, painéis congelados, áreas de impressão, grupos de tópicos e controle opcional via TODSExportOptions em um pacote ODF válido.
CSV / TSV Importação de texto delimitado via OpenCSV com detecção automática de separador, detecção de codificação BOM, citações RFC 4180, inferência opcional de tipo de valor, diretivas de importação por coluna e fatiamento de largura fixa, além de auxiliares de exportação de pasta de trabalho, planilha e intervalo com sobrecargas de stream e de arquivo, e saída de largura fixa com espaçamento
HTML / RTF / PDF Exportações orientadas a tabela para relatórios, visualizações, corpos de e-mail e transferência de documentos, incluindo fragmentos de intervalo selecionados, títulos HTML configuráveis, atributos de layout de tabela, âncoras de hiperlink, dicas de ferramentas de comentários, estilos de alinhamento vertical, estilos de runs de rich text, differential styles condicionais e formatos de número, escalas de cores, barras de dados direcionais, glifos de famílias de ícones e saída mínima de tabela. O TXLSHTMLImport importa uma tabela de topo selecionada ou todas as tabelas em uma célula alvo com base um, com separador decimal explícito, preservando as sobrecargas originais de todas as tabelas. O SaveWorkbookAsHTML publica todas as planilhas XLSX visíveis em um único documento navegável, com âncoras estáveis por planilha e nomes de planilha escapados. O RTF também importa de volta via OpenRTF, mapeando células de tabela ou listas de parágrafos para A1 por padrão, ou para uma linha e coluna alvo explícitas com base um através das sobrecargas estendidas. O SaveAsPDF da pasta de trabalho combina todas as planilhas visíveis em um documento, renderiza preenchimentos sólidos e condicionais, escalas de cores, barras de dados, ícones condicionais, cores de fonte, tamanhos, ênfases de negrito, itálico e sublinhado, alinhamento, bordas explícitas e linhas de grade opcionais, e segue áreas de impressão, tamanho de papel ou dimensões personalizadas de papel precisas em pontos, orientação, margens, zoom, configurações de ajuste à largura, larguras de coluna, alturas de linha, quebras de página manuais, linhas e colunas de título repetidas, e cabeçalhos e rodapés à esquerda, centro ou direita — incluindo os códigos de campo &F de nome de arquivo e &Z de caminho, além da supressão opcional da banda de cabeçalho ou rodapé — enquanto pagina intervalos largos e altos pelos dois eixos; o CalculatePageCount reporta a contagem lógica completa de páginas sem construir objetos PDF, e o FirstPage e o LastPage, com base um, selecionam um intervalo de saída preservando os campos de total de páginas. O TXLSPaginationModel expõe essas decisões como páginas lógicas reutilizáveis de XLS e XLSX para preview de impressão VCL, exportação PDF, canvases personalizados e saída EMF, incluindo títulos repetidos, ordenação over-then-down ou down-then-over, escala de ajuste de 10% a 400% e posicionamentos de desenhos
PDF / SVG / PNG portáteis Renderização nativa portátil transfere snapshots destacados escalares e de cena, preserva a ordem de desenho e o recorte, e usa renderização Cairo limitada com arquivos de fontes explícitos; planos de impressão de pasta de trabalho aplicam áreas de impressão, títulos, configuração de página, quebras e escala de ajuste sem recálculo nem mutação da origem

Por que usar

O HotXLS mantém a geração de planilhas dentro do processo Delphi ou C++Builder. Isso o torna adequado para utilitários de desktop, ferramentas em lote, serviços e instaladores onde a automação do Office é frágil ou indisponível

Cobertura do RAD Studio

O pacote tem como alvo as versões de Delphi e C++Builder do XE5 até o RAD Studio 13.1 Florence, com projetos de pacotes com controle de versão e pastas de saída para cada versão

O Free Pascal 3.2.2 com Lazarus/LCL também é suportado no Windows Win32 e Win64 através do pacote de runtime Lib/FPC/HotXLSLaz.lpk, incluindo APIs de pastas de trabalho XLS/XLSX, streaming direto, fórmulas e os componentes de exportação TDataToXLS e TGridToXLS para datasets LCL e TDBGrid

Execute build-FPC-Lib.cmd Win64 ou build-FPC-Lib.cmd Win32 para compilar o pacote, depois Tests/Lazarus/Run-HotXLSLazarusSmoke.cmd Win64 ou seu equivalente Win32 para verificar round trips de pasta de trabalho e de compressão; defina LAZARUS_DIR para uma instalação personalizada

Aplicativos LCL do Windows precisam incluir a unidade Interfaces da LCL antes das unidades do HotXLS e adicionar Lib e Lib/FPC aos paths de busca de unidades, além de Lib ao path de busca de includes; formulários de demo VCL, o viewer VCL de pasta de trabalho e o adapter de grid DevExpress permanecem componentes Delphi/C++Builder

Aplicativos nativos Linux x64 e macOS ARM64 carregam, editam, calculam e salvam os modelos Classic XLS, XLSX, XLSB e ODS suportados; texto BIFF5 Classic usa páginas de código declaradas explicitamente, enquanto o Unicode comprimido BIFF8 retém unidades de código UTF-16 exatas, e o cálculo e a busca nativos preservam a correspondência de caixa Unicode

Texto legado de gráficos suportado é transcodificado quando sua página de código muda, e migração de texto em bytes não representável ou sem suporte é rejeitada antes de alterar a saída do chamador; leituras ZIP repetidas liberam os metadados de cabeçalho anteriores, e a busca de estilos nomeados inclui a primeira entrada armazenada

Veja suporte a Free Pascal e Lazarus para configuração do aplicativo, contratos de codificação legada e detalhes de compatibilidade de regex

O subsistema de saída portátil renderiza PDF, SVG e PNG nativos no Linux e no macOS com FPC, Cairo, FreeType, HarfBuzz e FriBidi; ele consome snapshots imutáveis do núcleo nativo de pasta de trabalho suportado, com geometria de fontes explícita e orçamentos de recursos

Fácil de distribuir

O código-fonte, pacotes, scripts de build, demos, documentação HTML local e a integração do instalador estão incluídos para que as equipes possam construir, testar e distribuir sem depender de um serviço web

Pontos de partida

Use esses arquivos locais primeiro ao avaliar a biblioteca ou ao conectá-la a um projeto