Documentação do HotXLS

Classes TXLSXComments / TXLSXComment

Suporte a comentários de célula em um TXLSXWorksheet. Cada entrada anexa um autor mais um corpo de texto livre a uma célula. SaveAs emite xl/commentsN.xml com uma lista de autores deduplicada e um xl/drawings/vmlDrawingN.vml complementar para que o Excel possa renderizar os balões de comentário; Open lê o XML de comentários de volta para a coleção. Declarado em lxHandleX

Declaração de TXLSXComment

type
  TXLSXComment = class
    constructor Create(ARow, ACol: Integer; const AAuthor, AText: WideString);
    property Row: Integer;
    property Col: Integer;
    property Author: WideString;
    property Text: WideString;
  end;
      

Membros de TXLSXComment

Row, Col1-baseado célula anchor coordinates
AuthorNome do autor do comentário. Nomes distintos são gravados uma vez na lista <authors> no nível da pasta de trabalho e referenciados por authorId authorId
TextCorpo do comentário. Gravado como uma única run <text><r><t> ao salvar e achatado de uma ou mais runs ao abrir

Declaração de TXLSXComments

type
  TXLSXComments = class
    constructor Create;
    destructor Destroy; override;
    function Add(ARow, ACol: Integer; const AText: WideString): Integer; overload;
    function Add(ARow, ACol: Integer; const AText, AAuthor: WideString): Integer; overload;
    function IndexOfCell(ARow, ACol: Integer): Integer;
    function FindAt(ARow, ACol: Integer): TXLSXComment;
    function DeleteAt(ARow, ACol: Integer): Boolean;
    function DeleteInRange(ARow1, ACol1, ARow2, ACol2: Integer): Integer;
    procedure Delete(Index: Integer);
    procedure Clear;
    property Count: Integer;
    property Items[Index: Integer]: TXLSXComment; default;
  end;
      

Membros de TXLSXComments

Add(Row, Col, Text)Adiciona um comentário sem assinatura (autor vazio). Retorna o índice da nova entrada
Add(Row, Col, Text, Author)Adiciona um comentário com um nome de autor explícito
IndexOfCell(Row, Col)Retorna o índice baseado em 0 do comentário ancorado na coordenada de célula baseada em 1, ou -1 quando a célula não tiver comentário -1 when the cell has no comment
FindAt(Row, Col)Retorna o objeto comentário ancorado na célula, ou nil quando nenhum comentário estiver presente nil when no comment is present
DeleteAt(Row, Col)Exclui o comentário ancorado na célula e retorna True; returns False Exclui o comentário ancorado na célula e retorna True; retorna False quando nenhum comentário correspondente existe
DeleteInRange(Row1, Col1, Row2, Col2)Exclui cada comentário cuja âncora esteja dentro do intervalo de células inclusivo baseado em 1 e retorna a quantidade removida. Coordenadas invertidas são aceitas
Delete(Index)Exclui o comentário no índice baseado em 0 especificado da coleção
CountNúmero de comentários na planilha
Items[Index]Comentário no índice baseado em 0 informado. Declarado como a propriedade padrão
ClearRemove e libera todos os comentários

Exemplo

var
  ws: TXLSXWorksheet;
begin
  ws := Workbook.Sheets.Add('Reviews');

  ws.Cells.Item[1, 1].Value := 'Q1 revenue';
  ws.AddComment(1, 1, 'Numbers still pending review', 'Kevin');

  // Equivalent through the collection:
  ws.Comments.Add(2, 1, 'Auto-generated draft');

  if ws.Comments.IndexOfCell(1, 1) >= 0 then
    ws.Comments.DeleteAt(1, 1);
end;
    

Veja também