工作表是 ReoGrid 中的主要数据容器。每个工作表提供一个由行和列组成的单元格网格,并带有行标题和列标题。

工作表视图由三个部分组成:
- 行标题视图 — 显示行号,允许行选择
- 列标题视图 — 显示列字母,允许列选择
- 单元格视图 — 主数据区域,用于显示和编辑单元格
管理工作表
获取当前工作表
var sheet = reoGridControl.CurrentWorksheet;
切换当前工作表
reoGridControl.CurrentWorksheet = anotherWorksheet;
注意:
CurrentWorksheet不能设置为null— 控件必须始终有至少一个活动的工作表。
通过索引或名称访问
var sheet = reoGridControl.Worksheets[1]; // 通过索引
var sheet = reoGridControl.Worksheets["Sheet2"]; // 通过名称
获取工作表索引
int index = reoGridControl.GetWorksheetIndex(mysheet);
修改工作表名称
sheet.Name = "Sales Data";
工作表名称在同一个工作簿中必须唯一。
标签页外观
sheet.NameBackColor = new SolidColor(Color.LightBlue); // 标签页背景色
sheet.NameTextColor = new SolidColor(Color.DarkBlue); // 标签页文字颜色
创建 / 插入 / 删除 / 移动 / 复制
参见工作簿 — 工作表管理。
单元格数据访问
方法一:工作表索引器
// 设置数据
sheet["A1"] = "hello world";
sheet[0, 0] = 10;
// 获取数据
var value = sheet["A1"];
方法二:单元格实例
var cell = sheet.Cells["A1"];
cell.Data = "hello world";
单元格实例提供了 Data、Formula、Style、Body 等属性。参见单元格。
注意: 访问
Cells[...]时,如果单元格不存在,会自动创建一个新实例。如需在不创建实例的情况下检查,请使用GetCell:var cell = sheet.GetCell("A1"); // 如果单元格不存在则返回 null
方法三:使用操作(支持撤销)
sheet.DoAction(new SetCellDataAction("A1", "hello world"));
关键属性
| 属性 | 类型 | 说明 |
|---|---|---|
Name | string | 工作表名称 |
Workbook | IWorkbook | 父工作簿 |
RowCount / Rows | int | 行数 |
ColumnCount / Columns | int | 列数 |
UsedRange | RangePosition | 包含数据的范围(只读) |
MaxContentRow | int | 包含内容的最大行号(只读) |
MaxContentCol | int | 包含内容的最大列号(只读) |
SelectionRange | RangePosition | 当前选区 |
FocusPos | CellPosition | 当前焦点单元格 |
ScaleFactor | float | 缩放级别(1.0 = 100%) |
IsFrozen | bool | 工作表是否已冻结(只读) |
IsLocked | bool | 工作表是否已锁定 |
IsEditing | bool | 是否正在编辑单元格(只读) |
EditingCell | Cell | 当前正在编辑的单元格(只读) |
Visible | bool | 工作表是否可见 |
IndentSize | float | 文本缩进大小 |
Options | WorksheetOptions | 工作表选项对象 |
样式
使用 SetRangeStyles 设置单元格样式:
sheet.SetRangeStyles("A1:C3", new WorksheetRangeStyle
{
Flag = PlainStyleFlag.TextColor,
TextColor = Color.Green,
});

参见单元格样式了解所有样式选项。
边框
sheet.SetRangeBorders("A1:C3", BorderPositions.InsideHorizontal,
new RangeBorderStyle
{
Style = BorderLineStyle.Dashed,
Color = Color.Pink,
});

参见边框了解所有边框选项。
行标题和列标题
访问行标题和列标题:
var rowHeader = sheet.RowHeaders[0];
var colHeader = sheet.ColumnHeaders[0];
var colHeader = sheet.ColumnHeaders["B"];
参见行、列和标题了解标题的全面定制方法。
显示 / 隐藏标题
sheet.SetSettings(WorksheetSettings.View_ShowRowHeader, false);
sheet.SetSettings(WorksheetSettings.View_ShowColumnHeader, false);

参见设置了解所有设置选项。
选区行为
更改选区前进方向
// 按 Enter 后向下移动(而不是向右)
sheet.SelectionForwardDirection = SelectionForwardDirection.Down;
禁用选区
sheet.SelectionMode = WorksheetSelectionMode.None;
允许/禁止调整大小
sheet.SetSettings(WorksheetSettings.Edit_AllowAdjustRowHeight, false);
sheet.SetSettings(WorksheetSettings.Edit_AllowAdjustColumnWidth, false);
参见选区了解全面的选区管理。
打印和导出
ReoGrid 提供打印和导出功能:
// 导出为 HTML
sheet.ExportAsHTML(stream);
sheet.ExportAsHTML(stream, "Page Title", exportHeader: true);

参见分页和打印了解打印详情。
重置
将工作表重置为默认状态:
sheet.Reset(); // 以默认大小重置
sheet.Reset(500, 100); // 以 500 行 100 列重置
监听重置事件:
sheet.Resetted += (s, e) => Console.WriteLine("Worksheet was reset");
释放资源
释放工作表资源:
sheet.Dispose();
功能指南
| 功能 | 文档 |
|---|---|
| 行/列管理、标题 | 行、列和标题 |
| 多行列标题 | 多行标题 |
| 范围操作 | 范围 |
| 单元格合并 | 合并单元格 |
| 命名范围 | 命名范围 |
| 冻结窗格 | 冻结窗格 |
| 选区和焦点 | 选区 |
| 行/列分组 | 分组和大纲 |
| 数据筛选 | 数据筛选 |
| 条件样式 | 条件样式 |
| 保护和锁定 | 保护和锁定 |
| 缩放 | 缩放 |
| 数据源绑定 | 数据源 |
| 文本搜索 | 文本搜索 |
| 所有事件 | 事件 |
| 设置和选项 | 设置 |