Documentação do HotXLS

Geração de estrutura da pasta de trabalho carregada

Gerações estruturais permitem que um leitor retenha instantâneos de baixo custo e rejeite a travessia depois que a topologia da pasta de trabalho da qual depende mudou

Fontes de geração

MecanismoGeração do armazenamento de célulasGeração da coleção de planilhas
XLS clássicoTXLSWorksheet.CellStructureGenerationTXLSWorksheets.StructureGeneration
XLSXTXLSXWorksheet.CellStructureGeneration ou TXLSXCells.StructureGenerationTXLSXSheets.StructureGeneration

Cada propriedade é um valor UInt64 somente leitura e a quantidade exata da mudança não é contratual

Operações que invalidam

Criar, remover ou limpar células armazenadas altera a geração do armazenamento de células quando a topologia realmente muda

Inserção e exclusão de linhas ou colunas, movimentação de coordenadas, acréscimo ou materialização empacotados e reconstruções explícitas do índice de células também invalidam o estado de travessia do armazenamento de células

Adicionar, excluir, mover ou limpar planilhas altera a geração da coleção de planilhas quando a coleção realmente muda

Operações que não invalidam

Alterar o valor, a fórmula, o valor em cache ou o formato de uma célula existente não altera a geração do seu armazenamento de células

Renomear ou ativar uma planilha não altera a geração da coleção de planilhas, e movimentações sem efeito, exclusões ausentes ou limpar uma coleção já vazia mantêm a geração atual

Validação

Chame XlsValidateStructureGeneration antes de avançar ou ler o estado de travessia criado para uma geração anterior

Uma divergência lança EXLSLoadedCellCursorInvalidated, permitindo que os chamadores distinguam invalidação estrutural de erros de dados ou formato

ExpectedGeneration := Worksheet.CellStructureGeneration;

{ Read or retain traversal state }

XlsValidateStructureGeneration(
  ExpectedGeneration,
  Worksheet.CellStructureGeneration);

Cursor da pasta de trabalho clássica

IXLSWorkbook.CreateLoadedCellCursor captura a geração agregada da pasta de trabalho clássica e a valida antes de cada chamada de MoveNext e Current

O cursor percorre diretamente os ramais alocados do armazenamento esparso com estado de cursor constante e retorna valores TXLSLoadedCellSnapshot próprios

A sobrecarga Boolean congela se células em branco armazenadas com estilo próprio são incluídas; formatos herdados de linha, coluna e planilha não criam entradas de cursor em branco

Cursor da pasta de trabalho XLSX

TXLSXWorkbook.CreateLoadedCellCursor captura uma concessão pelo tempo de vida da pasta de trabalho e uma geração de topologia agregada compartilhada por todo armazenamento de células de planilha e pela coleção de planilhas

O caminho materializado lê blocos esparsos de linhas diretamente, enquanto o caminho empacotado reutiliza o iterador empacotado sem materializar células nem reter ponteiros internos nos instantâneos

A sobrecarga Boolean pode incluir células em branco armazenadas somente com estilo em qualquer representação de armazenamento, enquanto os espaços reservados Empty e Null sem estilo permanecem excluídos

Liberar a pasta de trabalho invalida sua concessão antes que o armazenamento de planilhas seja liberado, de modo que o acesso posterior ao cursor lança EXLSLoadedCellCursorInvalidated

Limite de simultaneidade

As verificações de geração fornecem apenas detecção imediata de falhas e não tornam a mutação e a travessia concorrentes da pasta de trabalho seguras para threads

Veja também