# dotNet.ReoGrid 扩展库 - 使用 DataTable 填充表格

## 当前版本支持方式

ReoGrid 核心功能支持直接从 `DataTable` 读取数据，可以将 `DataTable` 直接设置到电子表格的任意位置：

```aardio
// 导入 .NET 数据访问相关库
import System.Data;

// 创建数据适配器并获取数据表
var adapter = System.Data.DataSet1TableAdapters.MyTableAdapter();
var dt = adapter.GetData();

// 将数据表直接赋值给工作表单元格（从A1开始填充）
sheet1["A1"] = dt;
```

> **aardio 说明**：在 aardio 中，可以直接将 .NET 的 DataTable 对象赋值给工作表区域，ReoGrid 会自动处理数据映射。

## 早期版本兼容方式

在早期版本中，ReoGrid 无法直接从 DataTable 读取数据，需要逐个单元格复制数据：

```aardio
// 导入 .NET 数据访问相关库
import System.Data;

// 创建数据适配器并获取数据表
var adapter = System.Data.DataSet1TableAdapters.MyTableAdapter();
var dt = adapter.GetData();

// 遍历数据表并逐个填充单元格
for(row=0;dt.Rows.Count-1;1){
    for(col=0;dt.Columns.Count-1;1){
        // 注意 aardio 数组索引从1开始，但 .NET DataTable 索引从0开始
        sheet1[row+1,col+1] = dt.Rows[row][col];
    }
}
```

> **aardio 说明**：
> 1. aardio 的 for 循环语法与 C# 不同，使用 `for(初始值;结束值;步长)` 格式
> 2. 注意 aardio 数组索引默认从1开始，而 .NET DataTable 的索引从0开始，所以需要+1调整
> 3. 现代版本的 ReoGrid 已不需要这种手动复制方式，推荐使用直接赋值的方式