经研发确认,这是预期行为。旧的列排序功能添加了用于排序的行映射索引,但不会实际更改单元格值。调用 GetArray 时,它会从 model 返回数据,并且不会更改值。
新的区域排序功能,正是由于值实际上移动了(相当于重新设置),所以才比较慢。
针对老的方式,如果要获取排序结果,可以考虑通过下面的办法
- SheetView sheetView = fpSpread1.Sheets[0];
- int rc = sheetView.RowCount;
- object[,] values = sheetView.GetArray(0, 0, rc, 1);
- object[,] sortedValues = new object[rc, 1];
- for (int modelRow = 0; modelRow < rc; modelRow++)
- {
- int viewRow = sheetView.GetViewRowFromModelRow(modelRow);
- sortedValues[viewRow, 0] = values[modelRow, 0];
- }
复制代码 |