Documentación de HotXLS

Clases TXLSXComments / TXLSXComment

Soporte de comentarios de celda en una TXLSXWorksheet. Cada entrada adjunta un autor y un cuerpo de texto libre a una celda. SaveAs emite xl/commentsN.xml con una lista de autores deduplicada y un archivo xl/drawings/vmlDrawingN.vml complementario para que Excel pueda mostrar los globos de comentarios; Open vuelve a leer el XML de comentarios en la colección. Declarado en lxHandleX

Declaración 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;
      

Miembros de TXLSXComment

Row, Col1-basado celda anchor coordinates
AuthorNombre del autor del comentario. Los nombres distintos se escriben una vez en la lista <authors> del libro y se referencian por authorId authorId
TextTexto del cuerpo del comentario. Se escribe como una sola ejecución <text><r><t> en SaveAs y se aplana a partir de una o más ejecuciones en Open

Declaración 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;
      

Miembros de TXLSXComments

Add(Row, Col, Text)Agrega un comentario sin firma (autor vacío). Devuelve el nuevo índice de entrada
Add(Row, Col, Text, Author)Agrega un comentario con un nombre de autor explícito
IndexOfCell(Row, Col)Devuelve el índice basado en 0 del comentario anclado en la coordenada de celda basada en 1, o -1 cuando la celda no tiene comentario -1 when the cell has no comment
FindAt(Row, Col)Devuelve el objeto comentario anclado en la celda, o nil cuando no hay comentario nil when no comment is present
DeleteAt(Row, Col)Elimina el comentario anclado en la celda y devuelve True; returns False Elimina el comentario anclado en la celda y devuelve True; devuelve False cuando no existe ningún comentario coincidente
DeleteInRange(Row1, Col1, Row2, Col2)Elimina cada comentario cuyo ancla esté dentro del rango de celdas inclusivo basado en 1 y devuelve la cantidad eliminada. Se aceptan coordenadas invertidas
Delete(Index)Elimina el comentario en el índice basado en 0 especificado de la colección
CountCantidad de comentarios en la hoja de cálculo
Items[Index]Comentario en el índice basado en 0 indicado. Declarado como la propiedad predeterminada
ClearElimina y libera todos los comentarios

Ejemplo

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;
    

Véase también