找回密码
 立即注册

QQ登录

只需一步,快速开始

1225932566

金牌服务用户

46

主题

116

帖子

474

积分

金牌服务用户

积分
474
1225932566
金牌服务用户   /  发表于:2017-11-17 10:08  /   查看:3458  /  回复:1
本帖最后由 1225932566 于 2017-11-17 10:10 编辑
  1. TypeError: Cannot read property 'validator' of undefined
  2.     at I (gc.spread.sheets.all.10.3.1.min.js:27)
  3.     at H.fromJSON (gc.spread.sheets.all.10.3.1.min.js:27)
  4.     at ca (gc.spread.sheets.all.10.3.1.min.js:36)
  5.     at pa.fromJSON (gc.spread.sheets.all.10.3.1.min.js:37)
  6.     at ta.fromJSON (gc.spread.sheets.all.10.3.1.min.js:38)
  7.     at Object.success (budgetFill.js?1.21:850)
  8.     at fire (jquery-2.0.2.js:2939)
  9.     at Object.fireWith [as resolveWith] (jquery-2.0.2.js:3051)
  10.     at done (jquery-2.0.2.js:7413)
  11.     at XMLHttpRequest.<anonymous> (jquery-2.0.2.js:7835)
复制代码
  1. var spread = GC.Spread.Sheets.findControl($('#ss')[0]);

  2. var tempSpread = new GC.Spread.Sheets.Workbook();
  3. tempSpread.fromJSON(JSON.parse(json));
  4. var tplSheetsCount = tempSpread.getSheetCount();

  5. for (var i = 0; i < tplSheetsCount; i++) {
  6.         var tplSheet = tempSpread.getSheet(i);
  7.         var sheetName = tplSheet.name();
  8.         if (!spread.getSheetFromName(sheetName)) {
  9.                 spread.addSheet(i, tplSheet);
  10.         }
  11. }
复制代码



1 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-17 14:49:57
沙发
您好:

原因应该是添加sheet的index是顺序的,中间不能有间隔。举个例子:
spread中当前有1个sheet那么目前的index是0,添加一个新的index就应该是1
您的代码中有一个去掉重复的表格的逻辑,那么如果有一个重复index就应该是i-1而不是i
您可以把for循环更改一下,里面设置一个重复计数器,最后addsheet时的index 用i 减去计数器的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部