找回密码
 立即注册

QQ登录

只需一步,快速开始

Chinaiss

注册会员

7

主题

14

帖子

57

积分

注册会员

积分
57
Chinaiss
注册会员   /  发表于:2017-1-22 11:41  /   查看:3776  /  回复:4
代码如下
_gcSpread.ActiveSheet.Protect = true;
            _gcSpread.ActiveSheet.DefaultStyle.Locked = false;
            for (int i = 0; i < _gcSpread.ActiveSheet.Rows.Count; i++)
            {
                _gcSpread.ActiveSheet.Rows[i].Locked = true;
            }
            _gcSpread.InvalidateSheet();

4 个回复

倒序浏览
Chinaiss
注册会员   /  发表于:2017-1-22 11:59:11
沙发
            //无效-行锁定
            _gcSpread.ActiveSheet.Protect = true;
            _gcSpread.ActiveSheet.DefaultStyle.Locked = false;
            _gcSpread.ActiveSheet.Rows[0].Locked = true;
            _gcSpread.InvalidateSheet();
      
        //有效-单元格锁定
            _gcSpread.ActiveSheet.Protect = true;
            _gcSpread.ActiveSheet.DefaultStyle.Locked = false;
            _gcSpread.ActiveSheet.Cells[0, 0].Locked = true;
            _gcSpread.InvalidateSheet();
      
        //无效-列锁定
            _gcSpread.ActiveSheet.Protect = true;
            _gcSpread.ActiveSheet.DefaultStyle.Locked = false;
            _gcSpread.ActiveSheet.Columns[0].Locked = true;
            _gcSpread.InvalidateSheet();
        
回复 使用道具 举报
Chinaiss
注册会员   /  发表于:2017-1-22 15:27:22
板凳
附上demo
加一问题:为什么单元格Locked默认是true?除了循环行或列方式设为false,是否还有其他高效方式默认值设为false

GcSpreadSheet.zip

78.8 KB, 下载次数: 139

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-1-22 15:39:36
地板
您好,单元格locked默认为true是Excel的规则。

您的问题我已经重现,Row和Column上的Locked没有生效的原因需要调查一下。

现在临时解决方案是,您循环列给列设置locked false。这样效率比给所有cell设置高些。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-1-23 10:31:55
5#
您好,这个确认是产品一个bug

现在临时的解决方案是在设置row locked = true之前先设置 false。

代码看起来很奇怪但是是有效的。您注释里写清楚,等产品升级bug fix了在修改。

  1.            for (int i = 0; i < gcSpreadSheet1.ActiveSheet.Rows.Count; i++)
  2.             {
  3.                 gcSpreadSheet1.ActiveSheet.Rows[i].Locked = false; //bug临时解决方案
  4.                 gcSpreadSheet1.ActiveSheet.Rows[i].Locked = true;
  5.             }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部