Cell-comment support on a
TXLSXWorksheetでのセルコメントサポートです。各エントリは作成者とフリーテキスト本文をセルに付加します。SaveAs は
xl/commentsN.xml を重複排除された作成者リストとともに出力し、Excel がコメントバルーンをレンダリングできるように
xl/drawings/vmlDrawingN.vml を出力します。Open はコメント XML をコレクションに読み込みます。
lxHandleXTXLSXComment 宣言
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, Col | 1-ベース セル anchor coordinates |
| Author | コメントの作成者名 固有名は Workbook レベルの <authors> リストに 1 回だけ書き込まれ authorId で参照される authorId |
| Text | コメント本文テキスト SaveAs 時に単一の
<text><r><t> ランとして書き込まれ Open 時には 1 つ以上のランから平坦化される |
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) | 作成者なしのコメントを追加する 新しいエントリインデックスを返す |
| Add(Row, Col, Text, Author) | 明示的な作成者名付きのコメントを追加する |
| IndexOfCell(Row, Col) | 1ベースのセル座標に固定されたコメントの 0ベースのインデックスを返す コメントがない場合は -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基準のセル範囲(端点を含む)内にアンカーがあるコメントをすべて削除し 削除数を返す 逆順座標も受け付ける |
| Delete(Index) | 指定された 0基準のコレクションインデックスのコメントを削除する |
| Count | Worksheet 上のコメント数 |
| 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;
関連項目