V4 V5

メモは Excel の**「メモ」**(旧コメント、単一作成者の付箋)に相当します。1 セル 1 件です。 スレッド形式のコメント(返信付き)は対象外です。

メモの付いたセル。右上に赤い三角が出て、ホバーすると吹き出しが開く

付ける

using unvell.ReoGrid.Core;
using unvell.ReoGrid.Core.Comments;

// セルにメモを付ける(1 セル 1 件。再度呼ぶと置き換わる)
ws.SetComment(1, 1, "見積の根拠を確認", author: "花子");

// 常時表示に固定する(既定はホバー時のみ)
ws.SetComment(2, 1, "毎月更新", author: "花子", visible: true);

author は省略できます。visible を立てると吹き出しが開いたままになります (Excel の「メモの表示/非表示」)。

読む

CellComment? comment = ws.GetComment(1, 1);
if (comment != null)
{
	string text = comment.Text;
	string? author = comment.Author;
	bool pinned = comment.Visible;
	_ = (text, author, pinned);
}

// シート全体を行優先で列挙する
foreach (var c in ws.Comments.Items)
{
	_ = $"{c.Cell.ToAddress()}: {c.Text}";
}

bool any = ws.HasComments;
_ = any;

Items行優先の順で返ります。保存(JSON / XLSX)もこの順で書くため、 同じブックを保存し直しても差分が出ません。

変更・削除

// 表示状態を切り替える
ws.SetCommentVisible(1, 1, true);

// 1 件消す。空文字を渡す SetComment でも同じ
ws.RemoveComment(1, 1);
ws.SetComment(2, 1, "");

// 範囲まとめて
int removed = ws.Comments.RemoveRange(RangePosition.Parse("A1:D100"));
_ = removed;

行・列の挿入削除

メモはセルに随伴します。行や列を挿入すればメモも一緒に動き、 メモの付いたセルごと削除されればメモも消えます。この削除は undo で元に戻ります。

描画

  • メモのあるセルには右上に赤い三角が描かれます。
  • ポインタがそのセルのどこかにある間、メモが吹き出しで表示されます(Excel と同じ)。 Visible を立てたメモは常に表示されます。
  • 吹き出しの見出しは Author です。
  • 印刷・PDF には出ませんGridViewport.ShowComments が false)。Excel も既定では メモを印刷しません。

描画も当たり判定もコアの GridViewport にあるため、WinForms / WPF / Avalonia の どのコントロールでも同じように動きます。

Undo と I/O

  • メモの編集・削除は RangeFacets.Comments で undo に載ります。
  • reogrid-json:シートの comments として保存され、reogrid-web と同じ形です。
  • XLSXxl/comments{n}.xml と、箱の位置と表示状態を持つ VML の両方を書きます。 Excel は片方だけのファイルを「修復が必要」と判断するため、両方が必要です。 Excel はメモ本文の先頭に太字で 作成者: を埋め込む形式なので、書き出し時に付け、 読み込み時に外しています。V5 側の Author は Excel を経由しても失われません。

Studio で試す

  • Review ▸ Edit Note…Shift+F2)でメモの編集ダイアログが開きます。本文を空にすると削除です。
  • Review ▸ Show / Hide Note で常時表示を切り替えます。
  • Review ▸ Delete Note で選択範囲のメモを消します。
  • セルの右クリックメニューからも同じ操作ができます。
ページの内容は役に立ちましたか?