aardio 文档

dotNet.ReoGrid 扩展库 - ReoGrid 控件最佳实践

本文介绍一种典型方法:通过 ReoGridEditor 创建模板表格,并在使用 ReoGrid 控件的 .NET 应用程序中展示。

使用 Excel 文件作为模板

除了使用 ReoGridEditor,也可以使用 Microsoft Excel 制作模板表格,Excel 文件同样可以被 ReoGrid 显示。详情请参阅 Excel 文件格式

使用 ReoGridEditor 制作模板表格

当需要在 .NET 应用程序中使用 ReoGrid 显示表格时,推荐按照以下步骤操作:

步骤示意图

  1. 使用 ReoGrid Editor 设计表格模板
  2. 保存为 XML 格式
  3. 添加为项目资源
  4. 在 .NET 应用程序中加载
  5. 填充数据

1. 使用 ReoGrid Editor 设计模板

下载发布包并运行 ReoGridEditor.exe编辑器界面

使用此编辑器可以设计表格模板,包括文本模板、设置边框单元格样式,以及单元格公式合并单元格打印设置。通常用于为 ReoGrid 应用程序构建模板表格。

以下是完成后的模板示例: 模板示例

2. 保存为 XML 格式

选择菜单"文件"→"保存"或点击工具栏上的"保存"按钮,将表格保存为 ReoGrid XML 格式: 保存界面

输入文件名: 文件名输入

3. 添加资源文件

  1. 打开 aardio ,创建新工程或打开现有工程
  2. 在工程的资源目录下 ReoGrid 添加模板文件。

    aardio 工程中的任意目录如果其工程属性里『内嵌资源』为 true 就是资源目录,
    默认情况下工程里的 `/res/` 目录是一个内嵌资源目录。 
    我们可以将模板文件添加到 `/res/template.rg` (必须添加到工程目录而不仅仅是放在硬盘目录内)。
    aardio 中大多数读取文件内容的函数都直接支持资源文件路径。
    例如用 aardio 代码 string.loadBuffer("/res/template.rg")string.load("/res/template.rg") 都可以读取资源文件。

4. 加载模板文件

创建新的 Windows 窗体,在窗体程序中创建 ReGrid 控件实例,然后添加以下 aardio 代码:

// 使用 ReGrid 自资源文件加载模板文件
grid.Load("/res/template.rg", 1); // 1 表示 ReoGridFormat 格式

aardio 新版 dotNet.ReoGrid 扩展库里 grid.Load方法 已经直接支持资源文件路径。

grid.Load方法从资源二进制数据中读取模板表格的所有数据。运行应用程序后,窗体显示如下:

加载效果

5. 填充数据

继续在Form_Load事件中添加代码来填充数据:

// 获取第一个工作表实例
var sheet1 = grid.CurrentWorksheet;

// 填充记录
sheet1["B6"] = {
    { "ReoGrid", "sample", "#103, Mars", "02/05/2014", "No" },
    { "User 1", "a@b.c", "-", "01/01/2014", "Yes" },
    { "Guest", "no-email", "Unknown", "01/01/2014", "Yes" }
};

// 填充创建时间
sheet1["E2"] = "创建时间: " ++ time.now("%m/%d/%Y");

运行程序: 填充效果

预设单元格格式

可以在模板文件中指定单元格数据格式。

  1. 打开编辑器,右键点击目标单元格或区域,选择"格式单元格...": 格式菜单
  2. 选择"格式"标签,选择"DateTime",选择"7/13/1980 12:00 AM"模式: 日期格式
  3. 点击"确定"
  4. 保存模板
  5. 更新项目中的嵌入资源
  6. 运行程序

格式化后的单元格显示如下: 格式效果

定义命名区域

一个好方法是给区域定义一个名称。命名区域有助于定位要填充数据的位置。

  1. 在编辑器中选择一个区域: 选择区域
  2. 保持选中区域,选择菜单"公式"→"定义命名区域...": 定义菜单
  3. 输入'mydata'作为名称,然后点击"确定": 命名对话框
  4. 名称将显示在编辑器左上角的地址字段中: 名称显示
  5. 保存此模板,并刷新项目中的资源模板
  6. 修改代码使用命名区域来填充数据:
// 使用命名区域填充数据
sheet1["mydata"] = {
    { "ReoGrid", "sample", "#103, Mars", "02/05/2014", "No" },
    { "User 1", "a@b.c", "-", "01/01/2014", "Yes" },
    { "Guest", "no-email", "Unknown", "01/01/2014", "Yes" }
};

表格将显示如下: 命名区域效果

aardio 使用说明

  1. 在 aardio 中加载模板时,可以直接使用文件路径而无需 MemoryStream
  2. 表格数据可以直接使用 aardio 表对象(数组)赋值
  3. 时间格式化使用 aardio 的 time.now 函数,格式字符串与 .NET 略有不同
  4. 命名区域的使用方式与 C# 版本完全一致
  5. 所有操作都支持链式调用,可以更简洁地编写代码

Markdown 格式