找回密码
 立即注册

QQ登录

只需一步,快速开始

qiangzai

注册会员

12

主题

39

帖子

109

积分

注册会员

积分
109
qiangzai
注册会员   /  发表于:2017-8-16 15:24  /   查看:2942  /  回复:5
版主您好!我首先在渲染完excel后锁定了单元格不可编辑
blob798694762.png

然后根据我的配置,进行循环遍历单元格设置其可编辑。如下图


blob290371093.png
c8-p27这个区域是可编辑的,其他都不可编辑
blob940270080.png
但是现在出现了我鼠标选中区域(Q19)也可编辑。请问这是为什么呢?
另,在设置可编辑时,因为是一个一个单元格设置的,在加载的时候非常慢,添加了spread.suspendPaint();也没有用,请问有什么方法可解决?

5 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-16 18:01:05
沙发
这个需要您提供一下具体demo,我们需要具体看一下,才能知道是什么原因导致。
加载非常慢的问题,您可以通过getRange获取一片区域然后统一进行设置
回复 使用道具 举报
qiangzai
注册会员   /  发表于:2017-8-16 18:47:51
板凳
问题demo已上传。请查收。请问除了一片区域设置外,有其他更高效办法吗?因为我要设置可编辑的格子,不一定是连续的。谢谢

demo.rar

1.24 MB, 下载次数: 78

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-17 17:11:42
地板
qiangzai 发表于 2017-8-16 18:47
问题demo已上传。请查收。请问除了一片区域设置外,有其他更高效办法吗?因为我要设置可编辑的格子,不一定 ...

您好:
问题是这样的,您locked时候传入的row和col是字符串类型,不是一个数字类型,所以导致了该问题。
解决办法是这样:将
sheet.getCell(row,col, GC.Spread.Sheets.SheetArea.viewport).locked(false);
改为sheet.getCell(parseInt(row),parseInt(col), GC.Spread.Sheets.SheetArea.viewport).locked(false);
就行了,或者可以在您认为适当的地方进行类似这样的转换。
希望能够帮到您。
回复 使用道具 举报
qiangzai
注册会员   /  发表于:2017-8-18 17:45:55
5#
ClarkPan 发表于 2017-8-17 17:11
您好:
问题是这样的,您locked时候传入的row和col是字符串类型,不是一个数字类型,所以导致了该问题。 ...

好的。谢谢版主
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-18 17:53:12
6#

不客气,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部