HotXLS-Dokumentation

TXLSXComments / TXLSXComment-Klassen

Zellkommentar-Unterstützung auf einem TXLSXWorksheet. Jeder Eintrag verbindet einen Autor und einen freien Textkörper mit einer Zelle. SaveAs gibt xl/commentsN.xml mit einer deduplizierten Autorenliste und einem begleitenden xl/drawings/vmlDrawingN.vml aus, damit Excel die Kommentarsprechblasen rendern kann; Open liest die Kommentar-XML zurück in die Sammlung. Deklariert in lxHandleX

TXLSXComment-Deklaration

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-Elemente

Row, Col1-basiert Zelle anchor coordinates
AuthorAutorenname des Kommentars. Unterschiedliche Namen werden einmalig in die arbeitsmappenweite <authors> -Liste geschrieben und über authorId
TextKommentartext. Wird beim SaveAs als ein einzelner <text><r><t> -Lauf geschrieben und beim Open aus einem oder mehreren Läufen zusammengeführt

TXLSXComments-Deklaration

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-Elemente

Add(Row, Col, Text)Fügt einen Kommentar ohne Autor hinzu (leerer Autor). Gibt den neuen Eintragsindex zurück
Add(Row, Col, Text, Author)Fügt einen Kommentar mit explizitem Autorennamen hinzu
IndexOfCell(Row, Col)Gibt den 0-basierten Index des an der 1-basierten Zellkoordinate verankerten Kommentars zurück oder -1 , wenn die Zelle keinen Kommentar hat
FindAt(Row, Col)Gibt das an der Zelle verankerte Kommentarobjekt zurück oder nil , wenn kein Kommentar vorhanden ist
DeleteAt(Row, Col)Löscht den an der Zelle verankerten Kommentar und gibt Truezurück; gibt False zurück, wenn kein passender Kommentar vorhanden ist
DeleteInRange(Row1, Col1, Row2, Col2)Löscht jeden Kommentar, dessen Anker innerhalb des einschließenden 1-basierten Zellbereichs liegt, und gibt die Anzahl der entfernten Einträge zurück. Umgekehrte Koordinaten werden akzeptiert
Delete(Index)Löscht den Kommentar am angegebenen 0-basierten Sammlungseintrag
CountAnzahl der Kommentare im Arbeitsblatt
Items[Index]Kommentar am angegebenen 0-basierten Index. Als Standard-Property deklariert
ClearEntfernt und gibt jeden Kommentar frei

Beispiel

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;
    

Siehe auch