找回密码
 立即注册

QQ登录

只需一步,快速开始

liyutong

初级会员

9

主题

33

帖子

218

积分

初级会员

积分
218

圣诞拼拼乐

liyutong
初级会员   /  发表于:2020-4-3 16:06  /   查看:4678  /  回复:5
20金币

image.png189642943.png
(spread版本10.0)
大体想要实现的效果是图中这样
要把1月和2月两组互换位置
其中的小列顺序和数据格式什么的都不变
实际代码中1月和2月两大组都包含93小列
执行Spread.Sheets(0).MoveColumn(0, 92, 93, True)要花费大概8秒的时间
速度太慢了
想问下是不是少设置了什么导致的速度这么慢呢
image.png716698302.png

最佳答案

查看完整内容

解决了就好,如果有公式,移动的时候也会影响性能。

5 个回复

倒序浏览
最佳答案
最佳答案
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-3 16:06:32
来自 6#
解决了就好,如果有公式,移动的时候也会影响性能。

评分

参与人数 1满意度 +5 收起 理由
liyutong + 5 赞一个!

查看全部评分

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-3 16:54:40
2#
请提供下您操作的模板,这个可能和模板中的公式或者数据有关系。
回复 使用道具 举报
liyutong
初级会员   /  发表于:2020-4-3 17:05:01
3#
由于项目原因 模板可能没法提供了
但是spread中没有公式  数据也只有四条 还是设计器里造的假数据
现阶段还没有关联DB
刚又发现了一个现象
还是上面的那张图
movecolumn之后合并单元格会自动解开
我通过给列头单元格columnspan属性重新赋值来再次合并单元格
MoveColumn(0, 92, 93, True)
这个最后一个布尔类型变量为true的话 执行会很慢    但是可以再次合并单元格
MoveColumn(0, 92, 93, False)的话 执行非常快  但是列头columnspan属性重新赋值也不能合并单元格
不知道是什么原因
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-4 17:41:56
4#
抱歉,还是没重现问题,建议您升级新版本测试。
另外,我没有理解你操作的目的是什么
fpSpread1.ActiveSheet.MoveColumn(0, 92, 93, true);的结果和没有移动是一样的啊,93列移动到自己之后,不还是原地。V13版本中这个操作直接会报错。我改成 fpSpread1.ActiveSheet.MoveColumn(0, 93, 93, true);并无任何卡顿
image.png582645873.png



image.png883108215.png
回复 使用道具 举报
liyutong
初级会员   /  发表于:2020-4-9 14:10:02
5#
dexteryao 发表于 2020-4-4 17:41
抱歉,还是没重现问题,建议您升级新版本测试。
另外,我没有理解你操作的目的是什么
fpSpread1.ActiveS ...

感谢版主回答
自己查了好久
原先每列都设置了过滤筛选项filter那个东西,带着这个属性移动列的话速度会很慢
我在移动列之前先clearFilter一下
移动之后再遍历每列重新赋值
这样虽然还是卡顿一些,但是比原来好太多了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部