找回密码
 立即注册

QQ登录

只需一步,快速开始

qnsh

初级会员

14

主题

27

帖子

261

积分

初级会员

积分
261
qnsh
初级会员   /  发表于:2017-6-20 11:36  /   查看:3207  /  回复:1
本帖最后由 qnsh 于 2017-6-20 11:38 编辑

在获取修改值时如果表格内存在 #DIV/0! 将会把所有的#DIV/0! 单元格显示为脏数据。如何过滤掉这部分内容,只获取修改的单元格。
  1. var json = JSON.stringify(spread.toJSON());
  2.                 var dirty = [];
  3.                 for(var i=0;i<spread.getSheetCount();i++){                        
  4.                         var dirtyCells = spread.sheets[i].getDirtyCells();
  5.                         for(var j=0;j<dirtyCells.length;j++){
  6.                                 var obj = {};
  7.                                 obj['modifysheet'] = i;
  8.                                 obj['modifycol'] = dirtyCells[j].col;
  9.                                 obj['modifyrow'] = dirtyCells[j].row;
  10.                                 obj['oldvalue'] = dirtyCells[j].oldValue;
  11.                                 obj['newvalue'] = dirtyCells[j].newValue;
  12.                                 dirty.push(obj);
  13.                         }
  14.                 }
复制代码
版本:10.0.1

1 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-6-20 12:19:41
沙发
首先#DIV/0表示公式计算错误,说明您spreadjs中有用到公式进行计算,而公式应该是依赖您修改的值的,所以也会跟着变化,产品本身没办法判断是您修改的单元格还是公式影响的单元格,您只能通过手动循环dirtyCells自行进行判断,并筛选。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部