在 ReoGrid 中创建多行列头,可以通过工作表的 ExtensionColumnHeader 属性实现。这允许您垂直扩展列标题区域以容纳多行表头,最多可支持10行。这些表头行中的单元格可以水平或垂直合并,并且您可以自由自定义表头文本和样式。
获取扩展列头引用:首先从工作表中获取扩展列头的引用。
var extensionHeader = sheet1.ExtensionColumnHeader;
设置行数:定义列标题的行数。可以使用 RowCount 属性或 SetRowCount 方法实现。
extensionHeader.SetRowCount(3); // 设置表头为3行
效果如下图所示。
多行表头中的单元格与工作表中的单元格类似,其原点坐标(0,0)位于左上角。
要合并多行表头中的单元格,请使用 MergeCells 方法。您可以设置要合并的行和列作为参数。
extensionHeader.MergeCells(startRow, startColumn, rowSpan, columnSpan)
创建以下代码:
// 合并第一个单元格 (0, 0)
extensionHeader.MergeCells(0, 0, 3, 1);
// 从第0行第2列开始合并 (0, 1)
extensionHeader.MergeCells(0, 1, 1, 4);

extensionHeader[0, 0].Text = "No.";
extensionHeader[0, 1].Text = "大分类";

重复 MergeCells 和文本设置以创建多行表头:
extensionHeader.MergeCells(0, 0, 3, 1);
extensionHeader.MergeCells(0, 1, 1, 4);
extensionHeader.MergeCells(1, 1, 1, 2);
extensionHeader.MergeCells(1, 3, 1, 2);
extensionHeader.MergeCells(0, 5, 3, 1);
extensionHeader.MergeCells(0, 6, 1, 4);
extensionHeader.MergeCells(1, 6, 2, 1);
extensionHeader.MergeCells(1, 8, 2, 2);
extensionHeader[0, 0].Text = "No.";
extensionHeader[0, 1].Text = "大分类";
extensionHeader[1, 1].Text = "中分类";
extensionHeader[1, 3].Text = "中分类";
extensionHeader[0, 6].Text = "大分类";
extensionHeader[2, 1].Text = "小分类";
extensionHeader[2, 2].Text = "小分类";
extensionHeader[2, 3].Text = "小分类";
extensionHeader[2, 4].Text = "小分类";
extensionHeader[0, 5].Text = "对象";
效果如下。
您可以使用 UnmergeCells 方法取消合并单元格。
extensionHeader.UnmergeCells(0, 7);
无论单元格是否水平合并,多行表头始终可以选择单个列。选中的列会以高亮颜色显示。
如果选择了合并单元格的部分列,这些单元格将显示为高亮颜色。
如果将列设置为隐藏,隐藏列的位置会出现一条粗线。
多行表头可以像普通列头一样与工作表冻结功能配合使用。如果工作表被滚动,部分列会被隐藏,如下图所示。
多行表头可以像普通列头一样与大纲功能配合使用。如果列被折叠,表头单元格将被隐藏。