aardio 文档

dotNet.ReoGrid 扩展库 - 剪贴板操作

内置剪贴板支持

制表符分隔的纯文本

制表符分隔的纯文本格式是电子表格应用之间通用的数据交换格式。Excel 使用这种格式将数据以纯文本形式放入剪贴板:

A1 \t B1 \t C1 \n A2 \t B2 \t C2 \n A3 \t B3 \t C3 \n

将 Excel 数据复制到记事本中:

剪贴板

从剪贴板获取制表符分隔的文本:

import win.clip;
var text = win.clip.read();

ReoGrid 提供了将制表符格式解析为对象数组的方法:

// 解析制表符分隔的文本为二维数组
var data = ReoGrid.RGUtility.ParseTabbedString(text);

然后将这个对象数组设置到工作表中:

// 将数据设置到当前选区范围
sheet1.SetRangeData(sheet1.SelectionRange, data);

将选区数据转换为制表符字符串

使用工作表的 StringifyRange 方法将选定区域转换为制表符分隔的字符串:

// 将选区数据转换为制表符字符串
var tabbedStr = sheet1.StringifyRange(sheet1.SelectionRange);

手动粘贴制表符字符串

使用 PasteFromString 方法将剪贴板中的制表符字符串粘贴到工作表。返回值 appliedRange 是最终粘贴到工作表的区域。

// 从剪贴板文本粘贴到A1单元格
var appliedRange = sheet1.PasteFromString(
    ReoGrid.CellPosition("A1"),  // 起始位置
    win.clip.read()              // 剪贴板文本
);

阻止内置剪贴板操作

当用户按下 Ctrl-C、Ctrl-V 和 Ctrl-X 时,工作表会自动处理剪贴板操作。通过处理剪贴板事件并将 IsCancelled 设置为 true 可以阻止内置操作。

剪贴板操作相关事件:

所有以 Before 开头的事件都有 IsCancelled 属性,可以阻止默认的剪贴板操作。例如:

// 阻止默认粘贴操作
sheet1.BeforePaste = function(sender, event){
    event.IsCancelled = true;
}

调用剪贴板方法

检查是否可以执行剪贴板操作的方法:

方法 描述
CanCopy() 检查是否可以将内容复制到剪贴板
CanPaste() 检查是否可以从剪贴板粘贴内容到工作表(剪贴板中存在可识别数据)
CanCut() 检查是否可以将内容剪切到剪贴板

执行剪贴板操作的方法:

sheet1.Copy();   // 复制
sheet1.Paste();  // 粘贴
sheet1.Cut();    // 剪切

示例:

// 执行复制操作
if(sheet1.CanCopy()){
    sheet1.Copy();
}

手动复制和粘贴区域

使用 GetPartialGrid 方法获取区域内容,使用 SetPartialGrid 方法将内容复制到指定区域。

// 获取A1:B2区域内容
var content = sheet1.GetPartialGrid("A1:B2");

// 将内容粘贴到C1:D2区域
sheet1.SetPartialGrid("C1:D2", content);

aardio 使用说明

  1. 剪贴板操作需要先导入 win.clip 库:
import win.clip;
  1. ReoGrid 控件的事件回调使用 aardio 函数:
sheet1.BeforePaste = function(sender, event){
    // 事件处理逻辑
}
  1. 区域操作支持 A1 表示法(如"A1:B2")和行列索引(从0开始)

  2. 剪贴板文本会自动处理编码转换,无需额外操作

  3. 对于大数据量操作,建议先检查 CanCopy/CanPaste 避免不必要的操作

Markdown 格式