华盛信息 发表于 2020-10-13 10:55:37

关于cell取值

cell为空,希望判断cell值为空,sheet.getText(i,0)==""和 sheet.getValue(i,0) =="" 都达不到效果,如何判断呢

Derrick.Jiao 发表于 2020-10-13 10:55:38

本帖最后由 DerrickJiao 于 2020-10-14 10:13 编辑

华盛信息 发表于 2020-10-13 14:31
将附件中的表格复制到控件中,然后再getValue(i,0)测试,看为true还是false
问题已复现,这边测试了两种情况,一种是导入Excel文件,这种情况下空的cell判断为false这是正常的。

另一种情况就是您说的,复制过去空的cell在有框线的情况下多了一个空格,导致判断为true

第二种情况我们会做进一步调研,有进展将在本贴更新,帖子给您改为保留处理状态。(6094)

Derrick.Jiao 发表于 2020-10-13 11:06:02

您好,您可以用sheet.getValue(0,0) == null判断

华盛信息 发表于 2020-10-13 11:16:03

sheet.getValue(i,0) != null 就是判断非空串了?

华盛信息 发表于 2020-10-13 11:20:56

       for(var i=0; i<memNameArr.length;i++){
               if(sheet.getValue(i,0) != null && sheet.getValue(i,3) != "小组长"){
                       console.log(sheet.getValue(i,0)+"=="+sheet.getValue(i,3));
                       alert("===小组名称、小组长不在同一行or 小组中没有小组长===");
                       return false;
               }
       }


Derrick.Jiao 发表于 2020-10-13 11:22:31

华盛信息 发表于 2020-10-13 11:16
sheet.getValue(i,0) != null 就是判断非空串了?

可以用sheet.getValue(0,0) != null判断非空

华盛信息 发表于 2020-10-13 11:23:42

按你的说法,第二行就不应该进入if(){}中,但目前就是进入了,这种判断不对

华盛信息 发表于 2020-10-13 11:33:28

for(var i=0; i<memNameArr.length;i++){
               if(sheet.getValue(i,0) != null && sheet.getValue(i,3) != "小组长"){
                         console.log(sheet.getValue(i,0)+"=="+sheet.getValue(i,3));
                         alert("===小组名称、小组长不在同一行or 小组中没有小组长===");
                         return false;
               }
         }


请帮解决上述问题

华盛信息 发表于 2020-10-13 11:40:46

console.log((sheet.getValue(i,0) != null));这是我验证的代码,虽然单元格是空,但结果验证结果是true,这是为什么?

Derrick.Jiao 发表于 2020-10-13 13:46:10

华盛信息 发表于 2020-10-13 11:40
console.log((sheet.getValue(i,0) != null));这是我验证的代码,虽然单元格是空,但结果验证结果是true, ...

sheet.getValue(i,0) != null这句判断(i,0)这个单元格是否为非空,我这边测试空的单元格是false。

另外您的 if(sheet.getValue(i,0) != null && sheet.getValue(i,3) != "小组长")这句代码在i=0的时候两个条件都为true,则自然进入if里面。

如果还没解决您的问题麻烦您提供一下能复现问题的demo,能有效提高沟通的效率
页: [1] 2
查看完整版本: 关于cell取值