Spread.net表格全选功能性能问题10W行耗时8秒
本帖最后由 afei_liuge 于 2023-8-18 15:19 编辑在查询出来 的数据有128409行,39列, 时,使用方法
this.fpSpread.ActiveSheet.AddSelection(0, 0, 128409, 39); 做全选时 ,发现用时:8005ms 。
注意是一定要把 this.fpSpread.StatusBarVisible = true; 设置时才会出现。 没有复现你说的问题,给sheet绑定的是一个12W行40列的datatable,全选也是瞬间的事,并没有卡住
你得考虑其他代码影响,请提供明确的重现步骤 代码贴一下了,我这边是绑定的datatable数据 你的全选是用的哪个方法,是左上角的三角形还是自己写的代码呢? 知道你此前是绑定的datatable,所以这边也是,GetTable获取到的是40列,12万行的datatable
btn.Click += (s,e) =>
{
fpSpread.ActiveSheet.ClearSelection();
fpSpread.ActiveSheet.AddSelection(0, 0, 120000, 40);
};
fpSpread.Sheets.Count = 3;
fpSpread.Features.ExcelCompatibleKeyboardShortcuts = true;
fpSpread.ActiveSheet.DataSource = MyData.GetTable(40,120000); Richard.Ma 发表于 2023-8-18 14:13
知道你此前是绑定的datatable,所以这边也是,GetTable获取到的是40列,12万行的datatable
你好,设置一下 this.fpSpread.StatusBarVisible = true;就会重现了。 明白了,StatusBar里面的元素会统计合计,平均值,count等信息,所以选中区域变更会触发计算,
选中区域较大时,自然就慢了
这个没有什么好办法,建议
1.删除StatusBar中的元素,但是测试过即使全部删除也还需要4秒,可能还是会触发其他的一些代码
2.减少数据量,分页显示
Richard.Ma 发表于 2023-8-18 15:52
明白了,StatusBar里面的元素会统计合计,平均值,count等信息,所以选中区域变更会触发计算,
选中区域 ...
:'(:'(:'(:'(:'(:'(:'(:'(:'(:'( 或者就不要用StatusBar,里面的一些功能,比如放大缩小,自己用其他的基础控件,通过代码控制
StatusBar这块没有其他的优化办法
页:
[1]