組み込みクリップボードサポート
- ReoGridと他のスプレッドシートアプリケーション間でタブ区切りのプレーンテキストをコピーできます
- 2つのReoGridワークシート間で、データ、スタイル、罫線を含むワークシートの内容をコピーできます
タブ区切りプレーンテキスト
タブ区切りプレーンテキストは、スプレッドシートアプリケーション間でデータを転送するために使用される一般的な形式です。Excelはこの形式を使用して、データをプレーンテキストとしてクリップボードに配置します:
A1 \\t B1 \\t C1 \\n
A2 \\t B2 \\t C2 \\n
A3 \\t B3 \\t C3 \\n
Excelからメモ帳にデータをコピーします。

クリップボードからタブ区切りプレーンテキストを取得します:
string text = Clipboard.GetText();
ReoGridは、タブ区切り形式をオブジェクト配列に解析するためのメソッドを提供しています:
object[,] data = RGUtility.ParseTabbedString(text);
次に、このオブジェクト配列をワークシートに設定します:
worksheet.SetRangeData(sheet.SelectionRange, data);
範囲データをタブ区切り文字列に変換
ワークシートの StringifyRange メソッドを使用して、選択された範囲をタブ区切り文字列に変換します。
string tabbedStr = worksheet.StringifyRange(worksheet.SelectionRange);
タブ区切り文字列から手動で貼り付け
PasteFromString メソッドを使用して、クリップボードのタブ区切り文字列をワークシートに貼り付けます。戻り値の appliedRange は、影響を受けた最終的な範囲です。
var appliedRange = worksheet.PasteFromString(new CellPosition("A1"), Clipboard.GetText());
組み込みクリップボード操作の防止
ワークシートは、ユーザーからCtrl+C、Ctrl+V、またはCtrl+Xを受信すると、自動的にクリップボード操作を処理します。組み込み操作を防止するには、クリップボードイベントを処理して IsCancelled を true に設定します。
クリップボード操作中のイベント:
- BeforeCopy
- AfterCopy
- BeforePaste
- AfterPaste
- BeforeCut
- AfterCut
Before プレフィックスが付いたすべてのイベントには、デフォルトのクリップボード操作を防止できる IsCancelled プロパティがあります。例:
worksheet.BeforePaste += (s, e) => e.IsCancelled = true;
クリップボードメソッドの呼び出し
クリップボード操作を実行できるかどうかを確認するメソッド:
| メソッド | 説明 |
|---|---|
| bool CanCopy() | 内容をクリップボードにコピーできるかどうかを確認 |
| bool CanPaste() | クリップボードの内容をワークシートに貼り付けできるかどうかを確認(クリップボードに識別可能なデータが存在する) |
| bool CanCut() | 内容を切り取ってクリップボードに配置できるかどうかを確認 |
クリップボード操作を実行するメソッド:
bool Copy();
bool Paste();
bool Cut();
例:
worksheet.Copy();
範囲の手動コピーと貼り付け
GetPartialGrid メソッドを使用して範囲の内容を取得し、SetPartialGrid メソッドを使用してその内容を指定した範囲にコピーします。
var content = worksheet.GetPartialGrid("A1:B2");
worksheet.SetPartialGrid("C1:D2", content);