Documentação do HotXLS

Células e Intervalos

Uma tarefa comum ao usar o HotXLS é especificar uma célula ou intervalo de células e, em seguida, fazer algo com ela, como inserir um valor ou alterar o formato
Um objeto Range no HotXLS pode ser uma única célula ou um intervalo de células. Os tópicos a seguir mostram as formas mais comuns de identificar e trabalhar com objetos Range
 
»Notação A1 de células e intervalos
»Números de índice de células
»Números de índice de intervalo
»Referenciando linhas
»Referenciando colunas
»Intervalo Offset

Inspeção limitada de células de gráfico armazenadas clássicas

TXLSWorksheet.ReadCachedChartCell(Row, Col, MaxBytes, MaxTextCharacters) lê coordenadas clássicas de XLS com base zero sem criar células, calcular fórmulas, clonar fórmulas compiladas, aquecer o cache de strings compartilhadas ou alterar a geração da pasta de trabalho

O TXLSCachedChartCell retornado tem Kind: TXLSCachedChartCellKind, Number: Double, Text: WideString, ReadBytes: Int64, TextCharacters: Int64, Generation: UInt64e CacheState: TXLSFormulaCacheState; ccckAbsent representa conteúdo ausente ou vazio e células não âncora mescladas, ccckNumber representa um resultado numérico finito, e ccckText contém uma string UTF-16 contada destacada

Células de fórmula exigem um cache armazenado xlfcsLoaded ou xlfcsCalculated; caches ausentes ou invalidados geram EInvalidOperation em vez de avaliar suas fórmulas, enquanto caches armazenados vazios ou nulos retornam ccckAbsent

O comprimento de strings compartilhadas e o comprimento em cache de varUString ou varOleStr são verificados antes da cópia, preservando caracteres NUL embutidos e unidades de código surrogate; arrays, variants por referência, erros, valores booleanos, caches ANSI varStringe tipos de cache desconhecidos são explicitamente sem suporte

Um resultado de texto de n unidades de código UTF-16 cobra ReadBytes = 4*ne TextCharacters = 2*n pela origem contada e pela saída destacada; um número cobra oito bytes e nenhum caractere de texto, e a ausência não cobra nenhum dos dois

O método rejeita limites negativos com EArgumentOutOfRangeException, coordenadas fora das linhas 0 a 65535 ou das colunas 0 a 255 com ERangeError, e limites excedidos ou valores não finitos com EInvalidOperation; os chamadores também devem orçar qualquer formatação numérica ou texto de categoria copiado produzido a partir do valor retornado

Datas de calendário armazenadas e caches de fórmula tipados varDate seguem a configuração atual de Date1904 da pasta de trabalho, enquanto doubles numéricos comuns retêm seu valor armazenado exato; uma data de calendário armazenada no intervalo fantasma 1900 [60, 61) é rejeitada em vez de ser tratada como uma data real

TXLSWorksheet.IsCachedChartCellVisible(Row, Col) usa os mesmos limites de coordenadas de base zero e lê as flags armazenadas de linha e coluna ocultas sem materialização; uma captura de gráfico que exige plotagem somente de visíveis deve verificar esse resultado e aplicar sua política documentada de dados ocultos

Ambos os métodos adquirem uma concessão de leitura aninhada da pasta de trabalho; uma origem de gráfico de múltiplas células deve reter uma concessão externa, verificar a Generation retornada, resolver referências de fórmulas contra a pasta de trabalho emprestada exata e a planilha local sem referências externas ou que a atravessem, e validar os limites de referência e a proveniência de fórmulas antes de usar esses valores

Imagens na célula e checkboxes XLSX

TXLSXCell.SetInCellImage(Data, ContentType, AltText, Decorative) armazena um PNG ou JPEG local como conteúdo da célula, com bytes codificados copiados e um grafo de metadados de rich value no pacote XLSX

O setter valida os limites de chunks PNG, os checksums e seu marcador final, ou os marcadores de frame e de contêiner JPEG, antes de alterar a célula; a decodificação raster continua sendo responsabilidade do renderizador

ContentType é image/png ou image/jpeg, Decorative tem como padrão False, e AltText é preservado como metadados de imagem

SetInCellImage substitui a fórmula, o conteúdo em cache e o rich text, rejeita células de fórmula de matriz, e usa #VALUE! como valor de célula de fallback comum; a biblioteca não calcula a função IMAGE nem baixa imagens remotas

InCellImage retorna um TXLSInCellImageSnapshot destacado com Availability: TXLSCellFeatureAvailability, Data, ContentType, AltText, Decorativee CalcOrigin; xlcfaAbsent significa que não há metadados de imagem, xlcfaSupported significa um PNG ou JPEG local resolvido, e xlcfaUnsupported significa que os metadados existentes não podem ser interpretados com segurança

ClearInCellImage remove a imagem e limpa seu valor de fallback; atribuir outro valor ou fórmula remove a imagem como parte da substituição do conteúdo da célula

TXLSXCell.SetCheckbox(DefaultState: TXLSCheckboxDefaultState) cria um formato de controle de célula e inicializa o valor, com xlcdUnchecked, xlcdCheckedou xlcdBlank; o padrão é xlcdUnchecked

CellControl retorna um TXLSCellControlSnapshot com Kind: TXLSCellControlKind, DefaultStatee o Valuesubjacente; os tipos são xlcctNone, xlcctUnknowne xlcctCheckbox

O formato Checkbox pertence à formatação, de modo que atribuições de valor ou fórmula o retêm e Range.Clear limpa o conteúdo mantendo o formato; ClearCellControl remove esse formato preservando o valor, e Range.ClearAll remove ambos

TXLSXWorksheet.ReadInCellImage(Row, Col, MaxBytes) e TXLSXWorksheet.ReadCellControl(Row, Col) leem coordenadas de base 1 sob uma concessão de leitura sem criar células ausentes nem recalcular fórmulas; MaxBytes tem como padrão High(Int64) e rejeita uma imagem grande demais antes de copiar seus bytes

Estilos explícitos no nível da célula, metadados locais de imagem, estado padrão de Checkbox e valores booleanos sobrevivem ao salvamento e recarregamento do XLSX, a cópias e movimentações de intervalos, a edições estruturais de linhas ou colunas e à restauração de snapshots de conteúdo na mesma pasta de trabalho; cópias entre pastas de trabalho com suporte reconstruem as referências de destino

Property bags de controle desconhecidos, tipos de rich value e referências malformadas permanecem explicitamente sem suporte; salvamentos Open XML comuns retêm seus metadados de origem quando PreserveUnsupportedParts está habilitado, enquanto copiar metadados desconhecidos de recursos de célula para outra pasta de trabalho é rejeitado antes de alterar o destino

Adicionar um recurso suportado a um property bag importado ou a um grafo de imagem com um namespace sem suporte ou relações de proprietário conflitantes é rejeitado no salvamento, em vez de reconstruir esse grafo a partir de metadados adivinhados

Formatos de Checkbox herdados esparsos

TXLSXWorksheet.SetRowCheckboxFormat(FirstRow, LastRow, DefaultState) e SetColumnCheckboxFormat(FirstCol, LastCol, DefaultState) aplicam um span inclusivo de eixo com base 1 sem criar células nem inicializar valores; DefaultState tem como padrão xlcdUnchecked

ClearRowCellControlFormat(FirstRow, LastRow) e ClearColumnCellControlFormat(FirstCol, LastCol) limpam explicitamente o formato herdado correspondente preservando os valores; spans inválidos geram EArgumentOutOfRangeException antes da mutação

Controles diretos de célula e limpezas diretas têm precedência sobre formatos herdados, regiões de formato copiadas finitas têm precedência sobre linhas, e linhas têm precedência sobre colunas independentemente da ordem de atribuição; a atribuição mais recente no mesmo nível prevalece

Um elemento de célula importado tem um XF padrão direto quando seu atributo s é omitido, preservando as máscaras de limpeza vazias que o Excel grava sem um índice zero explícito; elementos de célula ausentes ainda herdam o formato do eixo

Uma célula ausente retém Value = Unassigned mesmo quando seu padrão herdado de Checkbox é marcado; o padrão é um metadado de inserção e não fabrica um valor booleano durante a leitura ou a renderização

A atribuição de FormatIndex substitui o formato de controle direto, incluindo uma atribuição zero explícita que mascara controles herdados; mudanças parciais de fonte, preenchimento, borda, número, alinhamento ou proteção retêm o formato de controle

Formatos herdados sobrevivem a edições estruturais, a cópias de intervalos e de planilhas com suporte e a round trips de XLSX; uma cópia entre pastas de trabalho remapeia property bags conhecidos e rejeita metadados herdados de controle desconhecidos antes de alterar o destino

O salvamento e a normalização semântica verificam a complexidade de fronteiras esparsas antes de percorrê-la, com limites de 1.000.000 de partições e 16.000.000 de verificações estimadas de resolução de overlay; um grafo de controle excessivamente fragmentado gera EXLSXSemanticBudget em vez de iniciar uma caminhada cartesiana ilimitada

TXLSXRange.ApplyFormatPatch aceita xfpCellControl para copiar o formato efetivo de Checkbox ou limpá-lo sem alterar valores, substituindo formatos de controle diretos existentes e rejeitando controles desconhecidos antes da mutação do destino

TXLSXCellStyleState.CellControlSlot é a representação de overlay: zero é uma limpeza explícita, 1 a 3 identificam os padrões de Checkbox não marcado, marcado e em branco, e slots negativos referenciam XFs de recursos importados; números de slot importados pertencem à sua pasta de trabalho e devem ser remapeados durante cópias entre pastas de trabalho

Snapshots de controle somente leitura e a comparação semântica usam o formato esparso efetivo sem materializar células ausentes; snapshots de conteúdo preservam máscaras de controle diretas, e CellImageCount conta os portadores armazenados de imagens na célula, com ou sem suporte, sem copiar os bytes da imagem

A captura portátil desenha valores booleanos de Checkbox e rejeita explicitamente aparências de Checkbox em branco ou não booleanas; a quota de grade solicitada é verificada antes de percorrer um span herdado grande

Essas APIs estão disponíveis em células de TXLSXWorkbook; o motor Classic XLS não expõe criação moderna de controles de célula nem de imagens de rich value

GetConversionReport informa perdas de imagem na célula e de controle de célula para a saída OpenDocument e XLSB, que retêm valores de fallback enquanto omitem os metadados do recurso moderno; use o salvamento verificado para revisar ou rejeitar essas perdas

O grafo do pacote segue a especificação de rich value de imagem local e a especificação do property bag do recurso Checkbox da Microsoft; a disponibilidade em uma compilação específica do Excel não estabelece suporte nesta biblioteca, e os round trips da biblioteca não estabelecem equivalência de renderização nativa em uma compilação do Excel sem esses recursos

A sonda de compatibilidade no Excel 16.0 build 20430 abriu e salvou o pacote de Checkbox gerado, mas não expôs nenhuma API utilizável de autoria de Checkbox ou de imagem local na célula; ela abriu o pacote de imagem com as flags exigidas de metadados de rich value e substituiu sua imagem local sem suporte por #FIELD! ao salvar novamente