Документация HotXLS

Классы TXLSXComments / TXLSXComment

Поддержка комментариев к ячейкам на TXLSXWorksheet. Каждый элемент прикрепляет автора и текст в произвольной форме к ячейке. SaveAs формирует xl/commentsN.xml с дедублированным списком авторов и сопутствующий файл xl/drawings/vmlDrawingN.vml , чтобы Excel мог отображать всплывающие окна комментариев; Open считывает XML комментариев обратно в коллекцию. Объявлено в lxHandleX

Объявление 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;
      

Члены TXLSXComment

Row, Col1-основанный ячейка anchor coordinates
AuthorИмя автора комментария. Разные имена записываются один раз в список <authors> на уровне Workbook и ссылаются через authorId authorId
TextТекст комментария. При SaveAs записывается как один run <text><r><t> , а при Open сворачивается из одного или нескольких runs

Объявление 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;
      

Члены TXLSXComments

Add(Row, Col, Text)Добавляет неподписанный комментарий (пустой author). Возвращает новый индекс записи
Add(Row, Col, Text, Author)Добавляет комментарий с явным именем автора
IndexOfCell(Row, Col)Возвращает индекс комментария с нумерацией от 0, привязанного к координате ячейки с нумерацией от 1, или -1, когда у ячейки нет комментария -1 when the cell has no comment
FindAt(Row, Col)Возвращает объект комментария, привязанный к ячейке, или nil, когда комментарий отсутствует nil when no comment is present
DeleteAt(Row, Col)Удаляет примечание, привязанное к ячейке, и возвращает True; returns False Удаляет комментарий, привязанный к ячейке, и возвращает True; возвращает False, когда подходящего комментария нет
DeleteInRange(Row1, Col1, Row2, Col2)Удаляет каждый комментарий, чья привязка находится внутри включающего 1-based диапазона ячеек, и возвращает число удаленных. Обратные координаты допускаются
Delete(Index)Удаляет комментарий по указанному индексу коллекции, начиная с 0
CountКоличество комментариев на листе
Items[Index]Комментарий по указанному индексу, начиная с 0. Объявлено как свойство по умолчанию
ClearУдаляет и освобождает каждый комментарий

Пример

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;
    

См. также