找回密码
 立即注册

QQ登录

只需一步,快速开始

IwantU
金牌服务用户   /  发表于:2016-12-14 11:21  /   查看:6316  /  回复:11
以前初始化的时候用你给的代码可以取消设计器全部锁定
function reset(init) {
                    if (init === void 0) { init = false; }
                    if (!init) {
                        wrapper.spread.destroy();
                        element.empty();
                        wrapper.spread = null;
                    }  
                    wrapper.spread = new Sheets.Spread(element[0], { sheetCount: 1 });
                    wrapper.spreadElement = element;
                    designer.formulaBar.initFormulaBar(init);
                    designer.contextMenu.addTabStripEvents();
                    //Register F2 key to enter editing status.
                    for (var i = 0; i < wrapper.spread.getSheetCount(); i++) {
                        var sheet = wrapper.spread.sheets;
                        sheet.addKeyMap(113, false, false, false, false, function () {
                            if (!this.isEditing()) {
                                this.startEdit();
                            }
                        });
                        //新增
                        //set sheet detault lock false
                        var defaultSheetStyle = sheet.getDefaultStyle() || new Sheets.Style();
                        defaultSheetStyle.locked = false;
                        sheet.setDefaultStyle(defaultSheetStyle);
                    }


导入后为什么不能了呢
var excelIo = new GC.Spread.Excel.IO();
           var excelFile = document.getElementById("fileSelector2").files[0];
           excelIo.open(excelFile,function(json){
                   json.version = "9.40.20161.0";
               for(var sheetProp  in json.sheets){
                   var sheet = json.sheets[sheetProp];
                   if(sheet.floatingObjects){
                       for(var foProp in sheet.floatingObjects){
                           var fo = sheet.floatingObjects[foProp]
                           fo.floatingObjectType = fo.typeName
                       }
                   }
                   if(sheet.protectionOptions){
                       sheet.protectionOption = sheet.protectionOptions;
                   }
               }
               var spread2 = $("#ss").data("spread");
               spread2.fromJSON(json);
               jsonStrflag = 1;
               maxaddandrow(spread2);
               layer.alert("<center>导入成功!</center>");

               for (var i = 0; i < spread2.getSheetCount(); i++) {
                   var sheet = spread2.sheets;
                   sheet.addKeyMap(113, false, false, false, false, function () {
                       if (!this.isEditing()) {
                           this.startEdit();
                       }   
                   });
                   //新增
                   //set sheet detault lock false
                   var defaultSheetStyle = sheet.getDefaultStyle() || new Sheets.Style();
                   defaultSheetStyle.locked = false;
                   sheet.setDefaultStyle(defaultSheetStyle);
               }


11 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-14 15:29:03
沙发
var sheet = spread2.sheets;
应该是这样吧  var sheet = spread2.sheets[i];
回复 使用道具 举报
IwantU
金牌服务用户   /  发表于:2016-12-14 15:50:27
板凳
我是这样写的,粘错了,还是不行的
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-14 16:45:40
地板
那就要看你导入的excel 是否给单元格设置过locked了,default style的优先级是最低的,如果cell设置了锁定,那么这个就不起作用了
回复 使用道具 举报
IwantU
金牌服务用户   /  发表于:2016-12-15 10:07:21
5#
本地excel默认全部锁定呀,只能让用户全选取消锁定吗?没有通过代码的方式吗?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-15 10:34:24
6#
可以通过代码实现,但是您怎么确定是用户本身希望锁定的还是默认的锁定。
spreadjs的默认行为是和Excel一致的,之前讨论过,说用户如果需要所有单元格不锁定,需要全选单元格去设置的。
回复 使用道具 举报
IwantU
金牌服务用户   /  发表于:2016-12-15 10:48:27
7#
我这边应该是默认不锁定的,上次那个代码不是设置默认选定的吗?怎么就不行了呢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-15 12:34:21
8#
您发下你的excel。
回复 使用道具 举报
IwantU
金牌服务用户   /  发表于:2016-12-15 13:13:47
9#
234.xlsx (6.08 KB, 下载次数: 118)
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-15 13:49:22
10#
可以看到您Excel的单元格 是locked 的。在Excel中单元格都是Locked,需要用户全选以后设置的。

blob361007689.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部