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
lxHandleXDeclaració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, Col | 1-basado celda anchor coordinates |
| Author | Nombre del autor del comentario. Los nombres distintos se escriben una vez en la lista <authors> del libro y se referencian por authorId authorId |
| Text | Texto 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 |
| Count | Cantidad de comentarios en la hoja de cálculo |
| Items[Index] | Comentario en el índice basado en 0 indicado. Declarado como la propiedad predeterminada |
| Clear | Elimina 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