通过代码定义命名范围

要定义命名范围,请使用 DefineNamedRange 方法:

var sheet = grid.CurrentWorksheet;

// 定义从 C3 开始到 F3 结束、包含 4 列的命名范围
sheet.DefineNamedRange("header", new RangePosition("C3:F3"));

通过指定名称将数据设置到工作表中:

// 在名为 'header' 的范围内设置标题文本
sheet["header"] = new object[] { "Name", "Age", "Birthday", "Email" };

文本将如下所示显示在 4 列中:

Named Range

您也可以通过命名范围实例设置数据。

// 定义命名范围
NamedRange namedRange = sheet.DefineNamedRange("items", "B2:E2");

// 向命名范围设置值
namedRange.Data = new object[] { 1, 3, 5, 7 };

在公式中使用名称

要在公式中按名称引用范围,直接使用名称即可:

var range = sheet.DefineNamedRange("r1", "A1:C2");

range.Data = new object[,] {
  {1, 2, 3},
  {4, 5, 6}
};

sheet["E2"] = "=SUM(r1)";

139

有关公式的更多信息,请参见公式

移除命名范围定义

要从电子表格中移除命名范围定义,请使用 UndefineNamedRange 方法。

sheet.UndefineNamedRange("myname");

自定义名称解析提供程序

即使名称未在电子表格中定义,也可以在公式中使用自定义名称:

sheet["F1"] = "=myName1 + myName2";

由于 myName1myName2 未定义为命名范围,您可以通过自定义名称解析提供程序以编程方式提供它们的值。参见自定义函数

插入/删除行列后范围的变化

插入或删除行和列会对命名范围产生以下影响:

  • 如果在命名范围之前插入行或列,命名范围会自动移动。
  • 如果在命名范围内部插入行或列,命名范围会自动扩展以包含它们。
  • 如果命名范围内部的行或列被删除,命名范围会相应缩小。如果命名范围内的所有行或列都被删除,命名范围也会被自动移除。

这些行为目前无法更改。

事件

要在定义命名范围时接收事件,请使用 NamedRangeDefined 事件。要在移除命名范围定义时接收事件,请使用 NamedRangeUndefined 事件。

在 ReoGridEditor 中定义命名范围

要在 ReoGridEditor 中定义命名范围,选择目标范围,然后选择菜单 Formula > Define Named Range

179

点击 OK,名称将出现在地址栏的下拉菜单中:

180

选择名称 ‘header’,相应的范围将被选中。

93

这篇文章对您有帮助吗?