V4 V5

コピーは 2 つの形式を同時にクリップボードへ載せます。

形式用途
TSV(タブ区切りテキスト)Excel・テキストエディタなど他アプリとの相互運用
data-rg-* 属性つき HTMLReoGrid どうしのコピー(スタイル・数式・結合を保持)

貼り付け側は HTML があればそちらを優先し、無ければ TSV を解釈します。 これは reogrid-web(Web 版)と同じ方式で、両者の間でも貼り付けが通ります。

ファイル保存の形式(reogrid-json)はクリップボードには使いません。

UI から使う

メンバー内容
control.CopySelection()選択範囲をコピー
control.CutSelection()切り取り
control.PasteClipboard()貼り付け

Ctrl+C / Ctrl+X / Ctrl+V は既定で配線されています。

API から使う

using unvell.ReoGrid.Core.Clipboard;

// 選択範囲を TSV にする(Excel やテキストエディタへ貼れる形)
string tsv = RangeClipboard.BuildTsv(ws, RangePosition.Parse("A1:C10"));

// TSV を取り込む
ClipboardRangeData data = RangeClipboard.ParseTsv(tsv);
RangePosition pasted = RangeClipboard.Apply(ws, startRow: 20, startCol: 0, data);

システムのクリップボードには触れないため、ヘッドレスでも使えます。

取り込んだデータを調べる

Console.WriteLine($"{data.Rows} x {data.Columns}");

// ReoGrid が書いた HTML から復元された場合はスタイルや数式も入る
if (data.IsReoGridSource)
	Console.WriteLine($"anchor = {data.SourceAnchorRow},{data.SourceAnchorCol}");

ClipboardCellData? cell = data.Cells[0][0];
if (cell != null)
	Console.WriteLine($"{cell.Value} fmt={cell.NumberFormat} span={cell.RowSpan}x{cell.ColSpan}");

ClipboardCellData が持つもの。

プロパティ内容
Value入力文字列(= で始まれば数式)
NumberFormat数値書式
Styleスタイル
RichTextリッチテキスト
CellTypeセル型の設定
RowSpan / ColSpan結合

TSV から取り込んだ場合は Value だけが埋まります。

相対参照の自動オフセット

数式を含むセルをコピーして別の位置に貼ると、相対参照が貼り付け先に合わせてずれます。 Excel および V4 と同じ挙動です。

C1 に "=A1*B1" がある状態で C1 をコピーし、C5 に貼る
  → C5 は "=A5*B5" になる

これを実現しているのが HTML 側のアンカー情報(SourceAnchorRow / SourceAnchorCol)です。 コピー元の位置が記録されているため、貼り付け位置との差分だけ参照をずらせます。

$ で固定した参照は動きません。範囲外に出る参照は #REF! になります。

Excel との相互運用

方向何が渡るか
Excel → ReoGridTSV として値が渡る
ReoGrid → ExcelTSV として値が渡る
ReoGrid → ReoGridHTML 経由でスタイル・数式・結合も渡る
reogrid-web → ReoGrid OneHTML 経由(同じ属性形式)

元に戻す

貼り付けは履歴に載ります。切り取り+貼り付けのように 2 段階になる操作も、 1 ステップとしてまとめて元に戻せます。

次に読む

ページの内容は役に立ちましたか?