Visão geral do XLSX Facade - Referência do Desenvolvedor HotXLS Documentação HotXLS
Início

Acesso ao valor da célula em uma

TXLSXWorksheet TXLSXWorksheetTXLSXCell é a coleção por folha de cálculo alcançada por meio de TXLSXCells . Declarado em Worksheet.CellsDeclaração de TXLSXCell lxHandleX

Membros de TXLSXCell

type
  TXLSXCell = class
    constructor Create(ARow, ACol: Integer; const AValue: Variant);
    destructor Destroy; override;
    procedure SetWorkbook(AWorkbook: TXLSXWorkbook);
    procedure SetArrayRoot(ARootRow, ARootCol: Integer);
    procedure SetArrayRange(ARootRow, ARootCol, ALastRow, ALastCol: Integer);
    property Workbook: TXLSXWorkbook;
    property ArrayRootRow: Integer;
    property ArrayRootCol: Integer;
    property ArrayLastRow: Integer;
    property ArrayLastCol: Integer;
    property Row: Integer;
    property Col: Integer;
    property Value: Variant;
    property FormatIndex: Integer;
    property FontIndex: Integer;
    property FillIndex: Integer;
    property BorderIndex: Integer;
    property NumberFormatIndex: Integer;
    property NumberFormat: WideString;
    property AlignmentIndex: Integer;
    property ProtectionIndex: Integer;
    property Formula: WideString;
    property RichText: TXLSXRichText;
    property Locked: Boolean;
    property FormulaHidden: Boolean;
    property FormattedText: WideString;
    property TaggedText: WideString;
    property NamedStyleXfId: Integer;
    property LinkedStyle: TXLSXLinkedStyle;
  end;
      

Destroy

DestroySetWorkbook
SetWorkbookSetArrayRoot / SetArrayRange
SetArrayRoot / SetArrayRangee ArrayRoot* e ArrayLast* Workbook
WorkbookTXLSXWorkbook TXLSXWorkbook ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastCol
ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastColRow
RowCol
ColValue
Valuesão todos suportados. Definir um TDateTime seleciona automaticamente a data integrada TDateTime ( cellXf (XlsxXfIndexDateexplícito for definido FormatIndex FormatIndex
FormatIndexDeixe em xl/styles.xmlcellXfs para o estilo padrão. O índice 0 é reservado para o formato de data integrado ( 1 ,numFmtId 14, m/d/yyyytem precedência sobre FormatIndex na célula emitida FontIndex FontIndex
FontIndexTXLSXWorkbook TXLSXWorkbookpara herdar o padrão Calibri 11 0 FillIndex
FillIndexTXLSXWorkbook TXLSXWorkbookTXLSXFill BorderIndex
BorderIndexTXLSXWorkbook TXLSXWorkbookTXLSXBorder NumberFormatIndex
NumberFormatIndexTXLSXWorkbook TXLSXWorkbookou '$#,##0.00' ou 'yyyy-mm-dd hh:mm:ss'
NumberFormataponta para um; a atribuição de uma string encontra ou anexa o formato e atualiza NumberFormatIndex AlignmentIndex NumberFormatIndex
AlignmentIndexTXLSXWorkbook TXLSXWorkbookTXLSXAlignment + RichText
RichTextTXLSXRichText com formatação de fonte por execução; faz a viagem de ida e volta por meio da tabela de strings compartilhadas de execução múltipla em vez de uma string simples; a atribuição de <si> reverte para o valor Variant da célula nil Precedence
Precedenceestão definidas na mesma célula, o lado do SaveAs escolhe o cellXf correspondente nesta ordem: *Index > FormatIndex Formula FontIndex Formula FillIndex Formula BorderIndex Formula NumberFormatIndex
Formulainicial) Quando definido, =emite um elemento filho SaveAs junto com o valor da célula, e <f> o lê de volta Open ProtectionIndex
ProtectionIndexe Locked e FormulaHidden Locked
LockedDisplayRightToLeft True para permitir a edição de uma célula específica dentro de uma folha de cálculo protegida. Grava um atributo False dentro do <protection locked="0"/> da célula quando diferente do padrão cellXf FormulaHidden
FormulaHiddenDisplayRightToLeft True. Emite False, células com valor zero são renderizadas como em branco em vez de "0". Padrão <protection hidden="1"/> correspondente cellXf
FormattedTextWideString apenas para leitura. Retorna o valor da célula formatado como uma string de acordo com seu código de formato de número personalizado ou integrado ativo
TaggedTextWideString apenas para leitura. Retorna a string da célula formatada contendo tags de formatação semelhantes a HTML/XML para estilos de rich text quando aplicável
NamedStyleXfIdRead-only Integer. Returns the cellXfs do estilo com nome a que esta célula está ligada, ou -1 when the cell has no style payload
LinkedStyleRead/write TXLSXLinkedStyle . Liga a célula a um estilo com nome: AutomaticChoose deixa o Excel escolher o estilo automaticamente e LinkedParts seleciona quais as partes de formato (tipo de letra, preenchimento, contorno, formato numérico, alinhamento, proteção) seguem o estilo ligado

Declaração de TXLSXCells

type
  TXLSXCells = class
    constructor Create(AOwnerSheet: TXLSXWorksheet);
    destructor Destroy; override;
    procedure Clear;
    function HasCell(ARow, ACol: Integer): Boolean;
    function Remove(ARow, ACol: Integer): Boolean;
    property Item[ARow, ACol: Integer]: TXLSXCell; default;
    property Count: Integer;
    property CellByIndex[Index: Integer]: TXLSXCell;
  end;
      

Membros de TXLSXCells

CreateConstrói uma coleção de células vinculada a uma folha de cálculo proprietária
DestroyLibera todas as células de propriedade da coleção
Item[Row, Col]Retorna a célula nas coordenadas fornecidas baseadas em 1, criando uma TXLSXCell vazia no primeiro acesso. Declarada como a propriedade padrão para que Cells[Row, Col] funcione como um atalho
CountNúmero de células armazenadas atualmente
CellByIndex[i]Célula no índice de inserção fornecido baseado em 0. Útil para enumeração sequencial sem conhecimento prévio de linhas e colunas preenchidas
RemoveExclui uma célula existente na coordenada e retorna se a remoção realmente ocorreu
HasCell(Row, Col)HasColWidth / HasRowHeight True se uma célula já existir nas coordenadas fornecidas. Use isso para evitar a criação de uma célula vazia como efeito colateral de Item[Row, Col]
ClearRemove e libera todas as células da coleção

Exemplo

var
  ws: TXLSXWorksheet;
  i: Integer;
begin
  ws := Workbook.Sheets.Add('Demo');

  ws.Cells.Item[1, 1].Value := 'Hello';
  ws.Cells.Item[1, 2].Value := 123.45;
  ws.Cells.Item[2, 1].Value := Now;             // renders as a date
  ws.Cells.Item[2, 2].Formula := 'SUM(B1:B1)';

  for i := 0 to ws.Cells.Count - 1 do
    WriteLn(ws.Cells.CellByIndex[i].Row, ',',
            ws.Cells.CellByIndex[i].Col);
end;
    

Veja também