aardio 文档

dotNet.ReoGrid 扩展库 - 行与列操作

追加/插入/删除操作

工作表提供了管理行和列的方法,包括追加、插入和删除:

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);  // 设置列数

23

预定义值

下表列出了工作表各种参数的初始值、最小值和最大值,以及它们的数据类型:

初始值 最小值 最大值 数据类型
行数 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);

38

或者,可以使用以下动作来调整表头大小,并支持撤销这些更改:

// 更改行的范围高度
grid.DoAction(ReoGrid.Actions.SetRowsHeightAction(0, 10, 30));
// 更改列的范围宽度
grid.DoAction(ReoGrid.Actions.SetColumnsWidthAction(0, 10, 30));

SetRowsHeightActionSetColumnsWidthAction 构造函数需要分别指定起始索引、要影响的行数或列数以及新的高度或宽度(以像素为单位)。这些动作是 ReoGrid 撤销/重做框架的一部分,允许更灵活的文档编辑。

39

自动行高

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

禁用自动调整

可以为每行更改此行为:

var rowHeader = sheet1.RowHeaders[2];
rowHeader.IsAutoHeight = false;

自动适应行高和列宽

当双击表头的分隔线时,ReoGrid 会调整行高和列宽以适应最大的单元格。

调整前:
218

调整后:
219

执行此操作的代码:

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

隐藏的行或列将显示为单一线条。
96

注意:

示例:
58
隐藏由大纲分组的行:
59
大纲将自动折叠。
60

更多细节请参考 分组与大纲

检查隐藏的表头和单元格

检查行或列是否隐藏:

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 = "表头";

117

更改行标题宽度

如果需要显示更多文本,可以更改行标题的宽度:

sheet1.RowHeaderWidth = 100;
sheet1.RowHeaders[1].Text = "行标题";

116

通过表头实例隐藏行

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

98

更改表头的宽度或高度

sheet1.RowHeaders[3].HeightInPixel = 30;   // 高度(像素)

实例调用与控制API的性能差异

某些操作可以通过表头实例调用或控制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)

仅设置单元格类型不会显示任何单元格,只有在填充单元格数据时才会显示单元格体。
110

sheet1["A1:A5"] = { false, true, false, false, true };

复选框单元格可以接受布尔值数据,表格显示如下:
111

Markdown 格式