javaPOI 导入现在做判断为空操作                     HSSFSheet sheet = wb.getSheetAt(0);
   int rows=sheet.getPhysicalNumberOfRows();
   //HSSFRow  EXCEL的行
   for(int i=1;i<rows;i++){
         HSSFRow row=sheet.getRow(i);
 HSSFCell barCode=row.getCell((short) 0);
 if(barCode==null){
 //这里该怎么写啊?????
 }意思就是如果barCode为空了,我改怎么给他赋值?barCode.setCellValue("kong");我这样写的  报空指针错误

解决方案 »

  1.   

    if (value == null) {
    value = "";
    }
    cell.setCellType(HSSFCell.CELL_TYPE_STRING);
    cell.setCellValue(new HSSFRichTextString(value));
      

  2.   

    以后要养成好习惯 :if(barCode==null){
    //这里该怎么写啊?????
    }
    这样的写法如果 barCode 为空就为报空指针错误以后记得这样写就一切OK,
    if(null==barCode){
    //这里该怎么写啊?????
    }
    不要小看这点区别哦,,  
      

  3.   

    if(null==barCode){
     newBarCode=new HSSFCell();
     ....
    }
      

  4.   

    barCode都为null了,你还给它setCellValue("kong"),不报空指针才怪。
      

  5.   

    HSSFRow row=sheet.getRow(i);
    HSSFCell barCode=row.getCell((short) 0);检查这两行 看是否有问题   比如 row  正常走应该不为空的
      

  6.   

    [Quote=引用 9 楼 liuyuhua0066 的回复:]
    barCode都为null了,你还给它setCellValue("kong"),不报空指针才怪。
      

  7.   

    你做的是导入,应该是想把excel里面的值赋给Java对象吧,那你为什么还要操作barCode对象?这个barCode.setCellValue("kong")完全看不懂你是想做什么!
      

  8.   

    if(null==barCode){
    }你这样写,肯定就不是报空指针错误了,,那报的什么错,,你贴出来看哈
      

  9.   

    我这有个jxl的例子。POI好久没用了。
      

  10.   

    首先说明一点:if(barCode==null) 等价于 if(null==barCode)回复楼主问题:
    if(barCode==null){
    barCode.setCellValue("kong");
    }
    如果这样写,当barCode为null时,你调用其任何方法都会报空指针异常。改成如下即可:
    if(barCode==null){
    barCode = new HSSFCell();
    }希望对你有所帮助。
      

  11.   

     我简单的查了一下 这个类在使用的时候 根本就不是实例化来用的    而是像楼主那样 用其它类来实例化 如果这个类为空 所以我怀疑你的row有问题
      

  12.   

    那如果为空了需要做怎样的处理啊? 值set非空的可以么?
    if(barCode != null){
        //setter...
    }另外 barCode == null  和 null == barCode 是一样的。 4楼要注意了。 你已经有误区了。
      

  13.   

    HSSFCell barCode=row.getCell((short) 0);
    if(barCode==null){   barCode=row.getCell((short) 0, Row.CREATE_NULL_AS_BLANK);// a new cell will be created.   barCode.set.....}