排序后,GetArray方法获取的数据的顺序跟排序后不一致
当点击表头排序后,GetArray方法获取的数据的顺序跟排序后不一致。如ID列为第0列 , fpSpreadSheet.GetArray(0, 0, this.fpSpreadSheet.Rows.Count, 1) 获取后的数据 ,与排序 后的数据顺序不一样。 这个要怎么处理才可以是一致的?
经研发确认,这是预期行为。旧的列排序功能添加了用于排序的行映射索引,但不会实际更改单元格值。调用 GetArray 时,它会从 model 返回数据,并且不会更改值。
新的区域排序功能,正是由于值实际上移动了(相当于重新设置),所以才比较慢。
针对老的方式,如果要获取排序结果,可以考虑通过下面的办法
SheetView sheetView = fpSpread1.Sheets;
int rc = sheetView.RowCount;
object[,] values = sheetView.GetArray(0, 0, rc, 1);
object[,] sortedValues = new object;
for (int modelRow = 0; modelRow < rc; modelRow++)
{
int viewRow = sheetView.GetViewRowFromModelRow(modelRow);
sortedValues = values;
} 需要调研一下,明天给你结果 Richard.Ma 发表于 2023-11-1 18:33
需要调研一下,明天给你结果
你好,Richard.Ma ,现在有结果吗? 你好,这个问题目前更像是产品的bug,已经提交给了研发,等待研发那边的调研结果
SPNET-34927,
临时的解决办法的话,建议通过for循环,遍历单元格,通过getValue来取值
页:
[1]