Método CreateLoadedCellCursor
Cria um cursor de extração sobre células armazenadas num livro de trabalho XLS clássico carregado, 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 folhas pela ordem da coleção e, em seguida, as células por linha e coluna crescentes
SheetIndex, Row e Col são coordenadas públicas com base um
A travessia segue diretamente os ramos alocados do armazenamento esparso clássico, pelo que o estado do cursor permanece constante e não aloca matrizes dimensionadas para os limites de linha ou coluna da folha de cálculo
A sobrecarga sem parâmetros ignora as 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 da linha, coluna ou folha de cálculo
Apenas a formatação herdada não materializa nem emite uma coordenada em branco
Campos do instantâneo
| Campo | Significado |
|---|---|
SheetIndex / SheetName | Identidade da folha proprietária no momento da captura |
Row / Col | Coordenadas de célula com base um |
StyleIndex | Índice de estilo XF clássico |
Kind | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula ou xlckBlank |
Value | Valor Variant próprio capturado para a célula atual |
Formula | Texto da fórmula para células com fórmula; caso contrário, uma cadeia vazia |
As strings e os 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 do livro de trabalho clássico, incluindo o 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 é xlccBeforeFirst até ao primeiro MoveNext bem-sucedido, xlccActive enquanto Current está disponível e xlccEof após a conclusão da travessia
Ler Current antes da primeira célula ou depois do EOF levanta EXLSLoadedCellCursorState
Criar ou eliminar células armazenadas, adicionar, eliminar ou mover folhas, ou substituir o modelo do livro de trabalho invalida o cursor
A chamada seguinte a MoveNext ou Current levanta então 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;