工作表提供了管理行和列的方法,包括追加、插入和删除:
var sheet1 = grid.CurrentWorksheet;
// 在末尾追加行或列
sheet1.AppendRows(rowCount);
sheet1.AppendCols(colCount);
// 在指定位置插入行或列
sheet1.InsertRows(rowIndex, rowCount);
sheet1.InsertCols(colIndex, colCount);
// 从指定位置开始删除行或列
sheet1.DeleteRows(rowIndex, rowCount);
sheet1.DeleteCols(colIndex, colCount);
在这些方法中,第一个参数指定操作开始的从零开始的索引,第二个参数表示要影响的行数或列数。
此外,还可以使用动作来插入或删除行和列,这些动作支持撤销、重做和重复操作:
// 插入行或列
var insertRowAction = ReoGrid.Actions.InsertRowsAction(rowIndex, rowCount);
var insertColAction = ReoGrid.Actions.InsertColumnsAction(colIndex, colCount);
// 删除行或列
var removeRowAction = ReoGrid.Actions.RemoveRowsAction(rowIndex, rowCount);
var removeColAction = ReoGrid.Actions.RemoveColumnsAction(colIndex, colCount);
// 执行动作
grid.DoAction(insertRowAction);
grid.DoAction(insertColAction);
grid.DoAction(removeRowAction);
grid.DoAction(removeColAction);
要修改工作表中的行数和列数,可以使用以下方法:
// 调整行数和列数
sheet1.Resize(rowCount, colCount);
// 单独调整行数或列数
sheet1.SetRows(6); // 设置行数
sheet1.SetCols(5); // 设置列数

下表列出了工作表各种参数的初始值、最小值和最大值,以及它们的数据类型:
| 初始值 | 最小值 | 最大值 | 数据类型 | |
|---|---|---|---|---|
| 行数 | 200 | 1 | 1,048,576 | 分页索引的二维数组 |
| 列数 | 100 | 1 | 32,768 | 分页索引的二维数组 |
| 行高(像素) | 20 | 0 | 65,535 | ushort |
| 列宽(像素) | 70 | 0 | 65,535 | ushort |
要修改行高或列宽,可以使用以下方法:
// 设置所有行的高度
sheet1.SetRowsHeight(0, grid.RowCount, 10);
// 设置所有列的宽度
sheet1.SetColsWidth(0, grid.ColCount, 10);

或者,可以使用以下动作来调整表头大小,并支持撤销这些更改:
// 更改行的范围高度
grid.DoAction(ReoGrid.Actions.SetRowsHeightAction(0, 10, 30));
// 更改列的范围宽度
grid.DoAction(ReoGrid.Actions.SetColumnsWidthAction(0, 10, 30));
SetRowsHeightAction 和 SetColumnsWidthAction 构造函数需要分别指定起始索引、要影响的行数或列数以及新的高度或宽度(以像素为单位)。这些动作是 ReoGrid 撤销/重做框架的一部分,允许更灵活的文档编辑。

当通过编辑单元格更改值时,ReoGrid 会自动调整行高:

可以为每行更改此行为:
var rowHeader = sheet1.RowHeaders[2];
rowHeader.IsAutoHeight = false;
当双击表头的分隔线时,ReoGrid 会调整行高和列宽以适应最大的单元格。
调整前:

调整后:

执行此操作的代码:
sheet1["A2"] = "这是一个长文本";
sheet1.AutoFitColumnWidth(0, false);
第二个参数指示是否使用动作来执行此操作。使用动作可以通过撤销方法或按 Ctrl+Z 来撤销操作。
与 Excel 类似,ReoGrid 也支持隐藏行或列,调用以下方法来隐藏/显示行或列:
sheet1.HideRows(start, count);
sheet1.ShowRows(start, count);
sheet1.HideColumns(start, count);
sheet1.ShowColumns(start, count);
隐藏的行或列将显示为单一线条。

注意:
HideRows 和 HideColumns 会自动折叠大纲,如果任何行属于大纲的一部分已被隐藏。ShowRows 和 ShowColumns 会自动展开大纲,如果任何行属于大纲的一部分已被显示。示例:

隐藏由大纲分组的行:

大纲将自动折叠。

更多细节请参考 分组与大纲。
检查行或列是否隐藏:
var isRowHidden = sheet1.IsHiddenRow(row);
var isColHidden = sheet1.IsHiddenColumn(col);
检查单元格是否位于隐藏的行或列上:
var isCellHidden = sheet1.IsHiddenCell(row, col);
isCellHidden = sheet1.IsHiddenCell("H8");
var cell = sheet1.Cells["H8"];
isCellHidden = cell.IsHidden;
// 从表格控件获取工作表实例
var sheet1 = grid.CurrentWorksheet;
// 获取表头实例
var colHeader = sheet1.ColumnHeaders[2];
var rowHeader = sheet1.RowHeaders[3];
// 设置列标题文本
colHeader.Text = "产品";

sheet1.RowHeaders[1].Text = "表头";

如果需要显示更多文本,可以更改行标题的宽度:
sheet1.RowHeaderWidth = 100;
sheet1.RowHeaders[1].Text = "行标题";

// 隐藏第4行(从零开始)
rowHeader.IsHidden = true;

sheet1.RowHeaders[3].HeightInPixel = 30; // 高度(像素)
某些操作可以通过表头实例调用或控制API调用执行,但表头实例调用会带来性能问题。对于下面的示例,强烈建议使用方法2。
方法1:调用表头实例更改行高
sheet1.RowHeaders[2].HeightInPixel = 30;
sheet1.RowHeaders[3].HeightInPixel = 30;
sheet1.RowHeaders[4].HeightInPixel = 30;
方法2:调用控制API更改行高
sheet1.SetRowsHeight(2, 3, 30); // 从索引2开始,共3行
方法2比方法1有显著的性能优势。
可以为整列指定默认的单元格类型。
// ColumnHeaders属性返回列标题实例
// 它接受数字索引或字符串地址代码来定位列
sheet1.ColumnHeaders["A"].DefaultCellBody = ReoGrid.CellTypes.CheckBoxCell;
// 将此列上所有单元格的水平对齐方式设置为居中
sheet1.ColumnHeaders["A"].Style.HorizontalAlign = ReoGridHorAlign.Center;
// 为复选框设置小内边距(2像素), ReoGrid.PaddingValue 参数依次为(上,下,左,右),四边都一样可指定一个参数
sheet1.ColumnHeaders["A"].Style.Padding = ReoGrid.PaddingValue(2)
仅设置单元格类型不会显示任何单元格,只有在填充单元格数据时才会显示单元格体。

sheet1["A1:A5"] = { false, true, false, false, true };
复选框单元格可以接受布尔值数据,表格显示如下:
