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

216

工作表视图由三个部分组成:

  • 行标题视图 — 显示行号,允许行选择
  • 列标题视图 — 显示列字母,允许列选择
  • 单元格视图 — 主数据区域,用于显示和编辑单元格

管理工作表

获取当前工作表

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";

单元格实例提供了 DataFormulaStyleBody 等属性。参见单元格

注意: 访问 Cells[...] 时,如果单元格不存在,会自动创建一个新实例。如需在不创建实例的情况下检查,请使用 GetCell

var cell = sheet.GetCell("A1");  // 如果单元格不存在则返回 null

方法三:使用操作(支持撤销)

sheet.DoAction(new SetCellDataAction("A1", "hello world"));

关键属性

属性类型说明
Namestring工作表名称
WorkbookIWorkbook父工作簿
RowCount / Rowsint行数
ColumnCount / Columnsint列数
UsedRangeRangePosition包含数据的范围(只读)
MaxContentRowint包含内容的最大行号(只读)
MaxContentColint包含内容的最大列号(只读)
SelectionRangeRangePosition当前选区
FocusPosCellPosition当前焦点单元格
ScaleFactorfloat缩放级别(1.0 = 100%)
IsFrozenbool工作表是否已冻结(只读)
IsLockedbool工作表是否已锁定
IsEditingbool是否正在编辑单元格(只读)
EditingCellCell当前正在编辑的单元格(只读)
Visiblebool工作表是否可见
IndentSizefloat文本缩进大小
OptionsWorksheetOptions工作表选项对象

样式

使用 SetRangeStyles 设置单元格样式:

sheet.SetRangeStyles("A1:C3", new WorksheetRangeStyle
{
    Flag = PlainStyleFlag.TextColor,
    TextColor = Color.Green,
});

221

参见单元格样式了解所有样式选项。

边框

sheet.SetRangeBorders("A1:C3", BorderPositions.InsideHorizontal,
    new RangeBorderStyle
    {
        Style = BorderLineStyle.Dashed,
        Color = Color.Pink,
    });

222

参见边框了解所有边框选项。

行标题和列标题

访问行标题和列标题:

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);

223

参见设置了解所有设置选项。

选区行为

更改选区前进方向

// 按 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);

224

参见分页和打印了解打印详情。

重置

将工作表重置为默认状态:

sheet.Reset();           // 以默认大小重置
sheet.Reset(500, 100);   // 以 500 行 100 列重置

监听重置事件:

sheet.Resetted += (s, e) => Console.WriteLine("Worksheet was reset");

释放资源

释放工作表资源:

sheet.Dispose();

功能指南

功能文档
行/列管理、标题行、列和标题
多行列标题多行标题
范围操作范围
单元格合并合并单元格
命名范围命名范围
冻结窗格冻结窗格
选区和焦点选区
行/列分组分组和大纲
数据筛选数据筛选
条件样式条件样式
保护和锁定保护和锁定
缩放缩放
数据源绑定数据源
文本搜索文本搜索
所有事件事件
设置和选项设置
这篇文章对您有帮助吗?