使用 CreateColumnFilter 方法在指定列上创建过滤器:
// 将数据数组放入工作表
sheet1["C1:C5"] = { "A", "B", "C", "D", "E" };
// 创建内置列过滤器
var filter = sheet1.CreateColumnFilter("C", 0);
第二个参数指定工作表中存在多少标题行,此示例中没有标题行所以传入0(默认值为1)。
默认情况下,列过滤器会在每个指定列上添加下拉按钮:

点击下拉按钮,会显示包含候选列表的弹出菜单:

要创建不带GUI的过滤器,可将第四个参数 AutoColumnFilterUI 设为 NoGUI:
var filter = sheet1.CreateColumnFilter("C", "C", 0, AutoColumnFilterUI.NoGUI);
要更改可选择和显示在工作表中的项,可以在指定列的过滤器中添加或移除文本项:
// 选择项
filter.Columns["C"].SelectedTextItems.AddRange({ "A", "C", "D" });
然后应用过滤器:
// 执行过滤
filter.Apply();
结果:

准备工作表数据:
sheet1["C1:C6"] = { "标题", "A", "B", "C", "D", "E" };
由于第一行是标题行,不应包含在过滤和排序范围内,选择第二行并通过菜单"Sheet"->"Filter"创建过滤器。选择范围添加过滤器时,标题行不会包含在过滤和排序范围内:

选择菜单"Sort Z-A":

标题行不会改变:

使用 SortColumn 方法对指定列的数据进行排序:
// 对"C"列排序
sheet1.SortColumn("C", false);
第二个参数为true表示升序排序,false表示降序排序。
可以对某列数据进行排序,但只移动指定范围内的其他数据:
// 将数据放入工作表
sheet1["A1"] = {
{ "1", "A", "D" }, { "2", "B", "E" }, { "3", "C", "F" }, { "4", "D", "G" }, { "5", "E", "H" },
};
对"B"列排序,但只移动A和B列,C 列不会改变。
sheet1.SortColumn(1, ReoGrid.RangePosition("A1:B5"), false);
结果:
