aardio 文档

dotNet.ReoGrid 扩展库 - 入门指南

参考链接: 🅰 aardio 文档 - .NET 调用指南 📄 ReoGrid 文档增强检索

本文档 适用 aardio v40.21 以上版本,dotNet.ReoGrid 扩展库 v2.9 以上版本。

ReoGrid 介绍

在 aardio 中使用 dotNet.ReoGrid 扩展库

1. 安装扩阿展库

✅ 在 aardio 中直接运行包含 import dotNet.ReoGrid 语句的代码也会自动安装扩展库。

2. 导入 ReoGrid 名字空间

import dotNet.ReoGrid 语句会导入 dotNet.ReoGrid 以及 ReoGrid 名字空间, ReoGrid 与 dotNet.ReoGrid 都指向 .NET 里的 unvell.ReoGrid 名字空间,在代码中应当使用更简洁的 ReoGrid 名字空间。

dotNet.ReoGrid 也会导入 ReoScript 名字空间,用于支持 ReoGrid 脚本相关的功能。

要特别注意 aardio 的 import 语句与 C# 的 using 语句存在区别:

aardio 中访问 .NET 对象要写完整名字空间,示例:

//引入名字空间
import dotNet.ReoGrid; 

//创建 Actcion
var action = ReoGrid.Actions.SetRowsHeightAction(1,1,100);

aardio 不能像 C# 那样用 SetRowsHeightAction 代替 ReoGrid.Actions.SetRowsHeightAction , 必须指定完整的名字空间。

但是在 aardio 里名字空间或者类都可以通过赋值语句指定更短的名称,例如:

//用局部变量指向类
var SetRowsHeightAction = ReoGrid.Actions.SetRowsHeightAction;

//直接使用类创建对象
var action = SetRowsHeightAction(1,1,100);

注意在 aardio 中构造类的实例不需要使用 new 关键字。

ReoGrid 快速入门示例

🅰 示例:

import win.ui;
/*DSG{{*/
var winform = win.form(text="ReoGrid 入门")
/*}}*/

//导入扩展库
import dotNet.ReoGrid; 

/*
在界面线程中创建并显示控件参数 @1 必须指定宿主窗口(或者 custom 控件)。
在工作线程中只能创建不需要显示的 ReoGridControl 控件(不必指定参数)。
*/
var grid = ReoGrid.ReoGridControl(winform);

//获取当前工作表
var sheet1 = grid.CurrentWorksheet;

//存取行列值
sheet1[0, 0] = time.now(); 

// 设置单元格数据
sheet1["A1"] = " 欢迎使用 ReoGrid"; // A1 格式下标
sheet1[1, 0] = 123.45;  //数值下标,0 为起始索引,表示 B2 单元格
sheet1.Cells["A1"].Data = "测试"; //也可以通过 Cells 集合获取单元格对象,然后通过 Data 字段赋值

//构造表示单元格位置的 CellPosition
var pos = ReoGrid.CellPosition("A10")
sheet1[pos] = "我是 A10"; //也可以这样写

// 设置区域数据,直接显示 aardio 字符串数组(一次性设置一个数组比循环设置数据快很多)
sheet1["B2:D4"] = [
    ["产品", "单价", "数量"],
    ["苹果", 5.8, 10],
    ["香蕉", 3.5, 20]
];

//调用函数设置列数据,参数(行索引、列索引,数据),注意 .NET 起始下标为 0
sheet1.SetCellData(5, 2, "hello world");

winform.show();
win.loopMessage();

本文档中所有示例代码都基于上面的程序,并使用相同的变量命名:

创建表格时 var grid = ReoGrid.ReoGridControl(winform) 这里的 winform 参数也可以更换为其他控件窗口。如果我们只希望在窗体的一部分区域显示表格,就可以先在窗口上放一个 static 或 custom 控件,然后以该控件窗口作作为 ReoGrid.ReoGridControl 的构造参数创建表格实例。

ReoGrid 组件概述

215

常用对象:

常用事件:

工作簿与工作表

ReoGrid 控件本身也是一个工作簿,一个控件(工作簿)可以包含多个工作表。

161

调用控件(工作簿)API:

// 获取表格控件实例
var grid = ReoGrid.ReoGridControl(winform);
// 调用控件方法
grid.method();

调用工作表 API :

// 获取当前活动工作表
var sheet1 = grid.CurrentWorksheet;
// 调用工作表方法
sheet1.method();

访问工作表( worksheet )

工作表提供了许多方法来管理单元格数据、样式、边框、轮廓、区域和公式计算等。以下示例演示如何通过调用工作表API来设置单元格数据。

使用工作表索引属性设置单元格数据:

// 获取当前活动工作表实例
var sheet1 = grid.CurrentWorksheet;
// 设置单元格数据
sheet1["A1"] = "hello world";  // 使用A1表示法
sheet1[2, 1] = 10;  // 使用行列索引(从0开始)

或者调用SetCellData方法:

// 设置指定位置的单元格数据
sheet1.SetCellData(2, 1, "hello world");  // aardio中直接传行列索引,不需要 ReoGrid.CellPosition 对象

了解更多关于工作表的内容。

通过执行操作访问

操作 (actions) 是 ReoGrid 核心提供的撤销框架,许多操作可以通过执行操作来完成。通过操作完成的操作可以通过调用控件的Undo方法撤销。使用操作执行操作的步骤:

1. 获取 Action:

所有 Actvion 都在 ReoGrid.Actions 名字空间下。

var SetRowsHeightAction = ReoGrid.Actions.SetRowsHeightAction;

2. 调用表格控件的 DoAction 方法:

创建 Action 并调用 grid.DoAction 执行操作:


// 创建 Action,不需要使用 new 关键字
var setRowsHeight = SetRowsHeightAction(1,1,100);

// 执行 Actvion
grid.DoAction(grid.CurrentWorksheet,setRowsHeight );

撤销或重做操作:

// 撤销操作
grid.Undo();

// 重做操作
grid.Redo();

重复执行最后一个操作,应用到另一个区域:

// 重复最后操作到新区域
grid.RepeatLastAction( ReoGrid.RangePosition(2, 3, 5, 5) );

注意 aardio 里要写为 ReoGrid.RangePosition(2, 3, 5, 5) 而不是 C# 那样写为 new RangePosition(2, 3, 5, 5),aardio 里不要省略名字空间前缀并且需要移除多余的 new 关键字。

用户应用程序可以扩展脚本函数和对象以提供自定义脚本功能,详见自定义函数。

aardio 使用说明

  1. aardio 的数组索引是自 1 开始, 访问 .NET 对象时如果使用 netObject[1] 这样的单值索引的下标 aardio 会自动将索引减 1 ,但如果使用其他方式传索引时不会减 1。例如 ReoGrid 访问单元格需要指定多项索引,则行列索引从 0 开始,例如在 aardio 中同样要用 sheet1[0, 0] 访问第一个单元格。
  2. 可以直接使用 A1 表示法或行列索引访问单元格,例如 sheet1.Cells["A1"].Data = "测试"。
  3. 导入 dotNet.ReoGrid 以后会自动导入 ReoGrid 名字空间,其他由同一个程序集加载的 ReoGrid 下面的其他子名字空间不需要再导入,aardio 会自动处理。但访问名字空间内的对象要写全称,例如 ReoGrid.RangePosition(2, 3, 5, 5) , 而不是 RangePosition(2, 3, 5, 5),除非先将 ReoGrid.RangePosition 赋值到名称更短的变量。
  4. 可以直接调用 ReoGrid 的属性与方法,无需额外设置。

Markdown 格式