Documentação do HotXLS

Método CreateLoadedCellCursor

Cria um cursor de extração sobre células armazenadas em uma pasta de trabalho XLS clássica carregada, com uma opção para incluir células em branco com estilo próprio

Sintaxe

function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
function CreateLoadedCellCursor(
  AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;

Ordem de travessia e custo

O cursor percorre as planilhas na ordem da coleção e, em seguida, as células por linha e coluna crescentes

SheetIndex, Rowe Col são coordenadas públicas com base um

A travessia segue diretamente os ramais alocados do armazenamento esparso clássico, de modo que o estado do cursor permanece constante e não aloca matrizes dimensionadas para os limites de linha ou coluna da planilha

A sobrecarga sem parâmetros ignora células em branco e preserva o contrato existente de travessia de valores e fórmulas

Passe True para incluir células em branco armazenadas cujo XF da célula difere do formato herdado de linha, coluna ou planilha

Somente a formatação herdada não materializa nem emite uma coordenada em branco

Campos do instantâneo

CampoSignificado
SheetIndex / SheetNameIdentidade da planilha proprietária no momento da captura
Row / ColCoordenadas de célula com base um
StyleIndexÍndice de estilo XF clássico
Kind (TXLSLoadedCellKind)xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormulaou xlckBlank
ValueValor Variant próprio capturado para a célula atual
FormulaTexto da fórmula para células com fórmula; caso contrário, uma cadeia vazia

Strings e Variants em TXLSLoadedCellSnapshot são valores próprios e não expõem objetos internos de célula

Para células com fórmula, Value segue a semântica normal de acesso a valores da pasta de trabalho clássica, incluindo cálculo quando necessário

Para xlckBlank, Value é Unassigned, Formula está vazia e StyleIndex identifica o XF armazenado da célula

Estado e invalidação

State é TXLSLoadedCellCursorStateaté o primeiro xlccBeforeFirst bem-sucedido, MoveNextenquanto xlccActive está disponível e Current após a conclusão da travessia xlccEof after traversal completes

Ler Current antes da primeira célula ou depois do EOF lança EXLSLoadedCellCursorState

Criar ou excluir células armazenadas, adicionar, excluir ou mover planilhas, ou substituir o modelo da pasta de trabalho invalida o cursor

A próxima chamada de MoveNext ou Current então lança EXLSLoadedCellCursorInvalidated

Alterar o valor, a fórmula ou o formato de uma célula existente não invalida o cursor, e um instantâneo já capturado permanece inalterado

Exemplo

Cursor := Workbook.CreateLoadedCellCursor;
while Cursor.MoveNext do
begin
  Cell := Cursor.Current;
  Memo1.Lines.Add(Format('%s!R%dC%d = %s',
    [Cell.SheetName, Cell.Row, Cell.Col, VarToStr(Cell.Value)]));
end;

Veja também