找回密码
 立即注册

QQ登录

只需一步,快速开始

18744279242

初级会员

13

主题

33

帖子

254

积分

初级会员

积分
254

微信认证勋章

18744279242
初级会员   /  发表于:2017-10-10 09:48  /   查看:4245  /  回复:6
本帖最后由 18744279242 于 2017-10-10 12:27 编辑

获取有公式合并的单元格都是0单元格的公式为:=IF(O93=0,"",I93-AD93)。
  1. //验证可编辑区域单元格是否有指定内容
  2. function checkCellContent(sheet, content) {
  3.         var rowCount = sheet.getRowCount(); // 总行数
  4.         for(var j = jlTotalRowNum; j < rowCount; j ++) {
  5.                 for(var k = 0; k < jlTotalColNum; k ++) {
  6.                         var cell = sheet.getCell(j, k);
  7.                         var spans= sheet.getSpans(cell);
  8.                         //合并单元格
  9.                         if (spans.length > 0) {
  10.                                 //单元格是合并单元格,并且该单元格不是合并单元格的左上角,则跳过本次循环。
  11.                                 if ((j != spans[0].row || k != spans[0].col) && (spans[0].rowCount > 1 || spans[0].colCount > 1)) {
  12.                                         continue;
  13.                                 }
  14.                                 //单元格是合并单元格,该单元格是合并单元格的左上角,只判断合并单元格左上角的值。
  15.                                 if ((j == spans[0].row && k == spans[0].col) && (spans[0].rowCount > 1 || spans[0].colCount > 1)) {
  16.                                         var val = sheet.getValue(spans[0].row, spans[0].col);
  17.                                         if(_.isEqual(cell.tag(), editAreaTags) && (val == null || val === '' || val == '#VALUE!' || (val + '').trim() == '')) {
  18.                                                 var cellType = sheet.getCellType(j,k,GC.Spread.Sheets.SheetArea.viewport);
  19.                                                 if(!(cellType instanceof GC.Spread.Sheets.CellTypes.CheckBox)) {
  20.                                                         if (val != content) {
  21.                                                                 alert(sheet.getValue(spans[0].row, spans[0].col));
  22.                                                                 alert(sheet.getCell(spans[0].col, spans[0].col).value());
  23.                                                                 return false;
  24.                                                         }
  25.                                                 }
  26.                                         }
  27.                                 }
  28.                         }
  29.                         //普通单元格
  30.                         if(_.isEqual(cell.tag(), editAreaTags) && ( sheet.getCell(j, k).value() == null || sheet.getCell(j, k).value() == null || sheet.getCell(j, k).value() === '' || sheet.getCell(j, k).value() == '#VALUE!' ||  (sheet.getCell(j, k).value() + '').trim() == '')) {
  31.                                 var cellType = sheet.getCellType(j,k,GC.Spread.Sheets.SheetArea.viewport);
  32.                                 if(!(cellType instanceof GC.Spread.Sheets.CellTypes.CheckBox)) {
  33.                                         if (sheet.getCell(j, k).value() != content) {
  34.                                                 alert(j + "," + k  + '       '+ sheet.getCell(j, k).value());
  35.                                                 return false;
  36.                                         }
  37.                                 }
  38.                         }
  39.                 }
  40.         }
  41.         return true;
  42. }
复制代码


捕获.PNG

79B5A452876C42678CFEF7BFFE13DCE0.zip

35.64 KB, 下载次数: 166

6 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-10 12:15:29
沙发
您好,您能否提供相关demo或者ssjson,便于我们重现问题,只提供部分代码,我们这边是没办法重现问题的。
回复 使用道具 举报
18744279242
初级会员   /  发表于:2017-10-10 12:28:34
板凳
ClarkPan 发表于 2017-10-10 12:15
您好,您能否提供相关demo或者ssjson,便于我们重现问题,只提供部分代码,我们这边是没办法重现问题的。

ssjson提上去了。
回复 使用道具 举报
18744279242
初级会员   /  发表于:2017-10-10 12:28:40
地板
本帖最后由 18744279242 于 2017-10-10 12:34 编辑

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-10 15:41:54
5#
您好,您取值应该是用sheet.getValue(92,39)而不是97,39
回复 使用道具 举报
18744279242
初级会员   /  发表于:2017-10-10 16:43:38
6#
ClarkPan 发表于 2017-10-10 15:41
您好,您取值应该是用sheet.getValue(92,39)而不是97,39

抱歉,单元格画错了。红色线画的单元格取值为0
捕获.PNG
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-10 17:17:12
7#
sheet.getValue(96,39)不是97,39 坐标的index是从0开始的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部