解决方案 »

  1.   

    俺觉得,sheet和row都要做非null判断。数据封装处可以做非null和非""判断。
      

  2.   

    目前已经加了if(null!=row)判断还是对读到空白行放到map中
    封装到map方法大致为
    switch(cell.getCellType()){  
    case Cell.CELL_TYPE_BLANK:  
    Vouchermap.put(“键”, 某行中的某一列);
    break;  
    至于为何还是读到空白行还望赐教。
    但是选择excel空白行后清除一下数据以及删除一下行后就不会出现读取空白行的问题。
    疑问是:之前本来就是空白,为何我做了删除行后就好了。
      

  3.   

    LZ可以新建一个excel,把有用的数据行拷贝过去(别拷多了),这样试试。感觉那些被读到的行,可能是被操作过了,虽然看起来是空的,实际上不是null了另外一个解决法子,如果所有有效行保证都是非空字符串的话,那判断里增加一个条件 &&!"".equals(某行中的某一列)
      

  4.   

    跳过这样不就可以了吗?? Row row = sheet.getRow(i);
    if (row == null) {
    continue;
    }
      

  5.   


    这样是不可以的,照样有空白行读出来。
    就算是把Excel中空白行的内容全部清除了,只要有某一列被冻结,照样能读出所有的空白行,而且一直读到最大行所以,我觉得 在该方法的基础上 再用某些特定的列来判断,比如你的编号列 什么的肯定会有数据 如果是“” 就不读了
      

  6.   

    这个可能是你要实现的:http://www.cnblogs.com/interdrp/p/4019583.html
      

  7.   

    这个可能是你要实现的:http://www.cnblogs.com/interdrp/p/4019583.html 
      

  8.   

    看看这个效果:http://www.cnblogs.com/interdrp/p/4019583.html 
      

  9.   

    当遇到 .XLS  有空行时  选中那些没有数据的空行(全部选中) 然后 右键删除 选择 整行 然后保存