找回密码
 立即注册

QQ登录

只需一步,快速开始

假如明天会来临

注册会员

9

主题

24

帖子

93

积分

注册会员

积分
93
假如明天会来临
注册会员   /  发表于:2024-7-19 16:01  /   查看:599  /  回复:10

下面代码画边框线的线条,业务画面有两种模式,模式1 单元格只读没有验证器, 模式2  单元格可编辑,有验证器
模式1加载只了0.03秒, 模式2加载用了3-4秒,原因可能出在哪里?


const lineBorder=new GC.Spread.Sheets.LineBorder("#7FFFD4",GC.Spread.Sheets.LineStyle.dashDot)
sheet.getRange(0,0,40,1,GC.Spread.Sheet.SheetArea.rowHeader).borderLeft(lineBorder)

sheet.getRange(0,0,1,23,GC.Spread.Sheet.SheetArea.colHeader).borderTop(lineBorder)

10 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-19 17:43:48
沙发
您好,请问您这边具体使用的是哪个版本呢?根据您描述的情况来看无法判断原因,需要在相应的版本测试一下看看。
回复 使用道具 举报
假如明天会来临
注册会员   /  发表于:2024-7-22 10:21:00
板凳
Joestar.Xu 发表于 2024-7-19 17:43
您好,请问您这边具体使用的是哪个版本呢?根据您描述的情况来看无法判断原因,需要在相应的版本测试一下看 ...

我的Spread版本: 17.0.4
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-22 17:32:51
地板
了解了,我这边尝试用您的代码进行测试,但是在17.0.4中的表现如下:

image.png726819457.png

看上去边框没有成功应用到行头列头上。

另外您说的“模式2  单元格可编辑,有验证器”,这个验证器具体是在哪里呢?是整个Sheet都有?还是某几个单元格呢?
回复 使用道具 举报
假如明天会来临
注册会员   /  发表于:2024-7-22 18:00:21
5#
Joestar.Xu 发表于 2024-7-22 17:32
了解了,我这边尝试用您的代码进行测试,但是在17.0.4中的表现如下:

这是在表头的左边和上边画线。
1. 加这一句把表格偏移一下,sheet.options.sheetAreaOffset{left:4, top:4 }
2.大概800个单元格(20条记录,40个项目)
模式2 是所有单元格都设定,根据定义文件,会对单元格设定各种验证器(出错会变红的那种)
数字,日期,下拉框,字符等等
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-23 10:00:30
6#
了解了,我这边做了一个简单的Demo测试了一下。

image.png911749572.png

在模式一下:

image.png836248779.png

在模式二下:

image.png452581481.png

二者的时间虽有差异,但没有很明显的差异,综上未能复现出您的问题,需要您提供一个可以复现此问题的Demo,这边帮您调研一下看看。
回复 使用道具 举报
假如明天会来临
注册会员   /  发表于:2024-7-24 10:09:11
7#
本帖最后由 假如明天会来临 于 2024-7-24 10:15 编辑
Joestar.Xu 发表于 2024-7-23 10:00
了解了,我这边做了一个简单的Demo测试了一下。

你例子里模式2的入力规则只设置了一个单元格,复选几百个以后,都设置同样的规则。然后再运行一下,速度就会慢不少。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-24 14:08:07
8#
您好,请问您说的“入力规则”指的是数据验证吗?

我在之前的代码中为sheet中存在的20行40列都设置上了数据验证:

image.png674944762.png
回复 使用道具 举报
假如明天会来临
注册会员   /  发表于:2024-7-24 14:47:50
9#
Joestar.Xu 发表于 2024-7-24 14:08
您好,请问您说的“入力规则”指的是数据验证吗?

我在之前的代码中为sheet中存在的20行40列都设置上了 ...

不好意思,我看到了,入力规则就是数据验证
模式2  单元格有入力规则的时候,我在画线前后加了下面两句性能就提升很多,
我看你代码没有,性能都差不多。
sheet.supendPaint()
sheet.resumePaint()
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-24 17:33:40
10#
好的,您可以使用supendPaint和resumePaint来提高绘制性能,或者提供一个能够复现问题的具体的Demo,这边帮您调研一下看看是不是其他地方影响了性能。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部